@charset "utf-8";

:root {
    --main-color: rgb(1, 53, 109);
    --point-color: #00a0e9;
    --sub-color: rgb(216, 241, 255);
}

html {
    scroll-behavior: smooth;
    /* ページ内リンクを押した時、スムーズに画面をスクロールする */
    scroll-padding-top: 90px;
    /* ヘッダーの高さ */
}

body {
    /* font-family: "Work Sans", serif, "Zen Old Mincho", serif; */
    /* font-family: "Kaisei Tokumin", serif; */
    font-family: "Zen Kaku Gothic New", sans-serif;
    color: rgb(40, 40, 40);
    line-height: 1.4;
    text-align: justify;
}

img {
    width: 100%;
    height: 100%;
    vertical-align: bottom;
}

.bg_blue {
    background:  rgba(255, 255, 255, 55%);
    padding-block: 2rem;
}

#wrapper{
    background-color: #fff;
}

.bg_normal {
    max-width: 800px;
    margin-inline: auto;
    padding-inline: 1rem;
}

.bg_gray {
    background: var(--sub-color);
    padding: 2rem 0 5rem;
}

#first,
#licenseinfo,
#soudaninfo,
#partner {
    max-width: 800px;
    margin-inline: auto;
    padding-inline: 1rem;
}

/* #wrapper {
    max-width: 800px;
    margin-inline: auto;
    padding-inline: 1rem;
} */

.header {
    position: fixed;
    /* 固定位置 */
    top: 0;
    left: 0;
    right: 0;
    background-color: rgb(255, 255, 255);
    /* 初期は不透明 */
    padding: 10px 20px;
    /* 内側の余白 */
    z-index: 1000;
    /* 他の要素の上に表示 */
    transition: background-color 0.3s;
    /* 背景色の変化をスムーズに */
}

.header.transparent {
    background-color: rgba(255, 255, 255, 0.5);
    /* 半透明 */
}

/* main {
    margin-top: 60px; /* ヘッダーの高さ分だけ上の余白を作る */
/* } */

.header_all {
    display: flex;
    justify-content: space-between;
    margin-inline: auto;
}

.header_all h1 {
    height: 60px;
    width: 150px;
    margin-left: -1.2rem;
}

.header_all h1 img {
    object-fit: contain;

}

.header_all .contact {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}








/* ===== 背景パララックス（ヒーロー） ===== */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

/* 背景画像 Ken Burns */
.hero::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: url(../images/bg.jpg) 45% center/cover no-repeat;
  animation: kenburns 12s ease-in-out 1 forwards;
  filter: blur(10px);
  z-index: -1;
}

/* キーフレーム Ken Burns */
@keyframes kenburns {
  0% { transform: scale(1) translate(0,0); filter: blur(10px); }
  30% { filter: blur(0); }
  80% { transform: scale(1.13) translate(0, 0); filter: blur(0); }
  100% { transform: scale(1.13) translate(0, 0); filter: blur(0); }
}

/* タイトル */
.hero .title {
  position: relative;
  left: 10vw;
  top: 63%;
  /* transform: translateY(-50%); */
  font-size: clamp(24px, 5vw, 48px);
  font-weight: bold;
  color: white;
  text-shadow: 2px 2px 6px #041411;
  max-width: 80%;
  z-index: 1;
}











#topimage {
    background-image: url(../images/bg.jpg);
    background-position: 45% bottom;
    background-repeat: no-repeat;
    background-size: cover;
    height: 90vh;
    max-width: 100%;
    margin-top: 80px;
}




#topimage .topimageunner {
    /* max-width: 700px; */
    padding-inline: 1rem;
    margin-inline: auto;
    display: block;
    flex-direction: column;
    height: 90vh;
    justify-content: center;
}

#topimage .topimageunner h2 {
    padding-top: 50px;
    margin-bottom: 1rem;
    line-height: 1.6;
    text-align: center;
    font-size: clamp(1.1em, 3vw, 1.3rem);
    /* margin-inline: 1rem; */
}

#topimage .topimageunner h2:nth-child(2) {
    padding-top: 0px;
    padding-block-end: 20px;
}

#topimage .topimageunner h2 br {
    display: none;
}



#topimage .topimageunner {
    align-items: flex-end;
    margin-bottom: 1rem;
}

#topimage .topimageunner h5 a {
    background-color: var(--main-color);
    color: white;
    max-width: 500px;
    padding-block: 1rem;
    display: block;
    text-align: center;
    margin-block: 1rem;
    border-radius: 50px;
    font-size: 1.2rem;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 3s ease 2s, transform 3s ease 0.5s;
    margin-inline: auto;
}

#topimage .topimageunner h5:nth-of-type(2) a {
    background-color: #00997e;
}

#topimage h5 a.visible {
    opacity: 1;
    transform: translateY(0);
}

#topimage h5 a:hover {
    background-color: var(--sub-color);
    color: var(--main-color);
    transition: all 0.5s linear;
}

#topimage h5:nth-of-type(2) a:hover {
    background-color: var(--sub-color);
    color: #00997e;
    transition: all 0.5s linear;
}


#first,
#seminarinfo,
#archive,
#licenseinfo,
#soudaninfo,
#service,
#aboutus,
#gosoudan,
#qa {
    margin-bottom: 5rem;
}

h2 {
    font-size: 1.3rem;
    margin-bottom: 1rem;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 3s ease, transform 3s ease;
}

h2.visible {
    opacity: 1;
    transform: translateY(0);
}

h3 {
    font-size: clamp(3.5rem, 10vw, 4rem);
    margin-bottom: 2.5rem;
    color: var(--main-color);
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 3s ease, transform 3s ease;

}

h3.visible {
    opacity: 1;
    transform: translateY(0);
}

.pfont {
    /* font-size: 1.1rem; */
    text-align: justify;
    padding-bottom: 1rem;
}

.pfont,
p,
li,
dt,
dd {
    word-break: break-word;
    overflow-wrap: break-word;
}

h4 {
    text-align: center;
    margin-bottom: 2rem;
    color: var(--main-color);
    font-size: 1.5rem;
    margin-top: 80px;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 3s ease, transform 3s ease;
    font-weight: bold;
}

h4.visible {
    opacity: 1;
    transform: translateY(0);
}

h5,
.map-link {
    word-break: break-word;
    overflow-wrap: break-word;
}

#first {
    line-height: 2;
}

#first p{
  text-shadow: 3px 0px 3px rgba(255, 255, 255, 1);

}


#first .point span {
    font-size: 2rem;
    color: gold;

}

#first ul {
    display: block;
    width: fit-content;
    margin-inline: auto;
    margin-bottom: 2rem;
    list-style-type: disc;
    /* ・マークを表示（デフォルト） */
    padding-left: 1.5em;
    /* インデントを調整 */
}

#first h4 br {
    display: none;
}

#first .yorisou_img {
    margin-inline: auto;
    background-image: url(../images/yorisou_logo_0806re.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    aspect-ratio: 1 / 0.6;
}

#seminarinfo h2 {
    font-size: 1.3rem;
    margin-top: 2rem;
    margin-bottom: 0;
    opacity: 1;
    transform: none;
    transition: none;
    color: rgb(40, 40, 40);
    text-align: center;
    padding-block: 1rem;
    position: relative;
    /* ← 念のためつけておくと安心 */


}

#seminarinfo h2::before {
    content: "";
    display: block;
    width: 150px;
    height: 6px;
    background-color: gold;
    margin: 0 auto 1.5rem auto;
}

#seminarinfo h2.new::after {
    content: "NEW";
    /* ← お好きな3文字 */
    display: inline-block;
    background-color: #d10000;
    color: #fff;
    font-size: 0.8rem;
    padding: 0.2em 0.6em;
    margin-left: 0.5em;
    vertical-align: middle;
}

#seminarinfo p {
    margin-bottom: 2rem;
}

/* テーブル共通 */
#seminarinfo .semidate {
    border-collapse: collapse;
    table-layout: fixed;
    /* ← これが必須！ */

    width: 100%;
    margin-bottom: 20px;
    /* text-align: center; */
    font-size: 0.8rem;
    line-height: 1.4;

}

#seminarinfo .semidate th {
    /* text-align: center; */
    background-color: var(--sub-color);
    font-size: 1em;
}

/* th と td 共通スタイル */
#seminarinfo .semidate th,
#seminarinfo .semidate td {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    padding: 0.75em;
    vertical-align: middle;
    font-weight: normal;
}

/* ul のマージン調整 */
#seminarinfo .semidate ul {
    margin: 0.3em 0 0 1em;
    padding: 0;
}

#seminarinfo h5 a,
#licenseinfo h5 a,
#soudaninfo h5 a {
    background-color: var(--point-color);
    color: white;
    max-width: 800px;
    padding-block: 1rem;
    display: block;
    text-align: center;
    margin-block: 1rem;
    border-radius: 50px;
    font-size: 1.2rem;
}

#seminarinfo h5 a:after,
#licenseinfo h5 a:after {
    font-family: "Material Icons";
    content: "\e89e";
}


#seminarinfo h5 a:hover,
#licenseinfo h5 a:hover,
#soudaninfo h5 a:hover {
    background-color: #fff;
    color: var(--main-color);
    transition: all 0.5s linear;
}

#seminarinfo .seminar-archive p {
    font-size: 0.7rem;
    text-align: right;
}

#seminarinfo h5 a.disabled {
    background-color: gray;
    pointer-events: none;
    color: white;
    text-decoration: none;
    cursor: default;
}



/* ▼ 非表示状態（空白が残らない） */
.seminar-archive .toggle-content {
    display: none;
}

/* ▼ 表示状態（tableを正しく表示） */
.seminar-archive .toggle-content.active2 {
    display: table;
    /* ← tableとして正しく表示 */
    width: 100%;
    /* 横幅100％を明示 */
    border-collapse: collapse;
    /* tableの見た目を整える */
}

/* ▼ 見出し（クリックボタン） */
.seminar-archive .toggle-btn {
    cursor: pointer;
    transition: background 0.3s;
    position: relative;
    /* アイコンの位置決め用 */
}

/* h2の右端に三角アイコン */
.seminar-archive .toggle-btn::after {
    content: " ▼";
    /* 下三角 */
    position: absolute;
    padding-left: 1rem;
    transition: transform 0.3s;
    /* 回転アニメーション */
}

/* 開いた状態で回転 */
.seminar-archive .toggle-btn.active3::after {
transform: rotatex(180deg);
    /* 上向き三角に */
}


#licenseinfo p{
    text-align: center;
}



#archive p {
    text-align: center;
    background-color: rgb(240, 240, 240);
    padding-block: 2rem;
}

#partner .partnerall {
    display: flex;
    flex-wrap: nowrap;
    /* 折り返さず横並び維持 */
    gap: 1rem;
    /* ロゴ同士の間隔 */
    justify-content: space-between;
    align-items: center;
}

#partner .partnerall img {
    max-height: 80px;
    /* PCでの高さ */
    height: auto;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

#service .card_wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 2rem;

}

#service .card {
    flex-basis: calc(50% - 1rem);
    display: flex;
    flex-direction: column;
    border: 1px solid gray;
    /* border-radius: 0.5rem; */
    padding: 1rem;

}

#service .card .card_img {
    aspect-ratio: 16/9;
}

#service .card .card_img img {
    object-fit: cover;
    /* border-radius: 0.5rem; */

}

#service .card h4 {
    text-align: center;
    margin-block: 1rem;
}

#service .card p {
    text-align: justify;
}

/* テーブル共通 */
#aboutus .history,
#aboutus .cp {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 80px;
}

/* colspan=2 見出し */
#aboutus .history th[colspan="2"],
#aboutus .cp th[colspan="2"] {
    text-align: center;
    background-color: var(--sub-color);
    font-size: 1.2em;
}

/* th と td 共通スタイル */
#aboutus .history th,
#aboutus .history td,
#aboutus .cp th,
#aboutus .cp td {
    border-block: 1px solid #ccc;
    padding: 0.75em;
    vertical-align: top;
    font-weight: normal;
}

/* 左列の th */
#aboutus .history th,
#aboutus .cp th {
    width: 7em;
    text-align: left;
    background-color: #f7f7f7;
}

/* ul のマージン調整 */
#aboutus .history ul,
#aboutus .cp ul {
    margin: 0.3em 0 0 1em;
    padding: 0;
}

/* テキストをコピーできないように */
#aboutus .nocopy {
    user-select: none;
    /* 必要に応じてベンダープレフィックスを追加 */
    -webkit-user-select: none;
    /* Safari用 */
    -moz-user-select: none;
    /* Firefox用 */
    -ms-user-select: none;
    /* Internet Explorer/Edge用 */
}


#aboutus .aumain {
    background-color: var(--sub-color);
    padding-inline: 10%;
    padding-bottom: 2rem;
}


#aboutus .aboutusdown1 {
    display: flex;
    /* text-align: end; */
    justify-content: space-between;
    /* border-top: 1px solid var(--main-color); */
    /* padding-top: 3rem; */
    gap: 1rem;
}

#aboutus .aboutusdown1 .aboutusleft {
    flex-basis: 55%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
}

#aboutus .aboutusdown1 .aboutusleft p {
    text-align: justify;
}

#aboutus .aboutusdown1 .aboutusleft strong {
    font-size: 1.2rem;
}

#aboutus .aboutusdown1 .watanabe {
    background-image: url(../images/watanabesan_image.png);
    background-position: 100% 20%;
    background-repeat: no-repeat;
    background-size: 75%;
    flex-basis: 45%;
    aspect-ratio: 2 / 1.5;
}

#nagare {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

#nagare .nagarecard {
    text-align: center;
    flex-basis: calc(25%);
    border: 1px solid #ccc;
    padding: 1rem;
    border-radius: 5px;

}

#nagare .nagarecard h5 {
    margin-bottom: 1.5rem;
    font-weight: bold;
    color: var(--main-color);

}

#nagare .nagarecard p {
    text-align: justify;
}

#gosoudan h5 a {
    background-color: var(--main-color);
    color: white;
    max-width: 800px;
    padding-block: 1rem;
    display: block;
    text-align: center;
    margin-block: 1rem;
    border-radius: 50px;
    font-size: 1.2rem;
}

#gosoudan h5 a:hover {
    background-color: var(--sub-color);
    color: var(--main-color);
    transition: all 0.5s linear;
}

#gosoudan h5.mail {
    border: solid 1px var(--main-color);
    /* background-color: var(--main-color); */
    color: var(--main-color);
    max-width: 800px;
    padding-block: 1rem;
    display: block;
    text-align: center;
    margin-block: 1rem;
    border-radius: 50px;
    font-size: 1.2rem;
    display: flex;
    margin-inline: auto;
    justify-content: center;
    gap: 0.5rem;


}

#gosoudan h5 span.mail-img {
    background-image: url(../images/mail_hover.webp);
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    height: 1.6rem;
    width: 233.9487px;
    background-position: 0 2px;
}



#subimage {
    background-image: url(../images/subimage.jpeg);
    height: 500px;
    max-width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
}

#qa dd {
    margin-bottom: 1.5rem;
    text-align: justify;
}


#service {
    background-color: rgb(240, 240, 240);
    padding-inline: 10%;
    padding-bottom: 2rem;
}

/* --------------- ローディング画面 --------------- */
.loading-screen {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    transition: all 1s linear;
    /* ここから下はデザイン用 */
    background-color: var(--sub-color);
    display: flex;
    justify-content: center;
    align-items: center;
    color: aliceblue;
}

/* HTML: <div class="loader"></div> */
.loader {
    width: 40px;
    height: 26px;
    --c: no-repeat linear-gradient(#000 0 0);
    background: var(--c) 0 100%, var(--c) 50% 100%, var(--c) 100% 100%;
    background-size: 8px calc(100% - 4px);
    position: relative;
}

.loader:before {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #000;
    left: 0;
    top: 0;
    animation: l3-1 1.5s linear infinite alternate,
        l3-2 0.75s cubic-bezier(0, 200, 0.8, 200) infinite;
}

@keyframes l3-1 {
    100% {
        left: calc(100% - 8px);
    }
}

@keyframes l3-2 {
    100% {
        top: -0.1px;
    }
}

/* JSで付与するクラス。これによってクラスloading_bgが指定されている要素が消える */
.active {
    opacity: 0;
    visibility: hidden;
}

/* loaderここまで */
/* ------------------------------ */

/* --------------- TOPに戻るボタン --------------- */
.topbtn {
    width: 80px;
    height: auto;
    border-radius: 50%;
    position: fixed;
    bottom: 20px;
    right: 20px;
    opacity: 0;
    /* サイトが読み込まれた瞬間、一瞬画面にボタンが出てきてしまう現象を防ぐため */
    z-index: 10000;
    transition: all 0.5s linear;
}

.topbtn a {
    display: block;
    padding: 25px 0;
    text-align: center;
    background-color: var(--main-color);
    color: white;
    border-radius: 50%;
    border: 1px solid white;
}

/* --------------- drawerButton --------------- */

#drawerButton {
    display: none;
    /* PCでは見えない状態にする */
}

header nav ul {
    max-width: 800px;
    margin-inline: auto;
    display: flex;
    justify-content: space-between;
}

header nav ul li a {
    padding: 1rem 0.5rem;
    display: block;
    transition: all 0.5s linear;
    text-align: center;
}

header nav ul li a:hover {
    color: var(--sub-color);
}

/* JavaScriptで付け外しするクラス  */
.change01 {
    background-color: darkkhaki;
}

.change02,
#jsButton03.change02 {
    background-color: thistle;
}

.change03 {
    background-color: darksalmon;
}

.spchange {
    background-color: gold;
}


/* footer------------------------------------------------------- */

footer {
    max-width: 100%;
    background-color: var(--main-color);
    color: whitesmoke;
    padding-block: 3rem;
}

footer .f_all {
    max-width: 800px;
    /* display: flex; */
    justify-content: space-between;
    margin-inline: auto;
    margin-block: 2rem;
    flex-wrap: wrap;
    padding-inline: 1rem;

}


footer .f_all .map iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
}

footer address {
    line-height: 2;
    max-width: 800px;
    margin-inline: auto;
    padding-inline: 1rem;
    word-break: break-word;
    overflow-wrap: break-word;
}

footer address p {
    font-size: clamp(0.9rem, 4.2vw, 1rem);
}


footer address p:nth-child(1) {
    font-size: clamp(0.8rem, 3.9vw, 1.2rem);

}

footer address .map-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: #d93025;
    /* Google Mapsっぽい赤 */
    font-size: 16px;
    gap: 0.5em;
}

footer address .map-link i {
    font-size: 1.2em;
}

footer address .mail {
    display: flex;
    height: 5px;
}

footer h5 span.mail-img {
    background-image: url(../images/mail.webp);
    background-size: contain;
    background-repeat: no-repeat;
    display: inline-block;
    height: 19px;
    width: 233.9487px;
    margin: 6px 0 0 7px;

}


footer .copy {
    text-align: center;
    padding: 10rem 0 0;
}








/* --------Media Query-------- */

/* drawerButton */
@media screen and (max-width: 766px) {

    #drawerButton {
        position: fixed;
        top: 0;
        right: 0;
        width: 70px;
        height: 80px;
        /* background-color: var(--main-color); */
        display: block;
        z-index: 1000000000;
        /* border-radius: 0 0 0 8px; */
    }

    #drawerButton span {
        width: 60%;
        height: 4px;
        display: block;
        background-color: var(--main-color);
        position: absolute;
        left: 20%;
        transition: all 0.3s linear;
    }

    #drawerButton span:nth-child(1) {
        top: 22px;
    }

    #drawerButton span:nth-child(2) {
        top: 38px;
        /* 上下中心の位置 */
    }

    #drawerButton span:nth-child(3) {
        bottom: 22px;
    }

    /* 3本線のアニメーションにはクラスの付け外しでアニメを作る。
    CSSのセレクターは、HTMLに今現在存在していないクラスやIDも先にデザインを作っておくことができます。 */
    /* .closeを作っておいて、
    JavaScriptでこのクラスをつけ外ししてButtonを変更する */
    #drawerButton.close span:nth-child(1) {
        transform: rotate(-45deg);
        top: 38px;
        /* 上下中心の位置 */
    }

    #drawerButton.close span:nth-child(2) {
        transform: scale(0);
    }

    #drawerButton.close span:nth-child(3) {
        transform: rotate(45deg);
        bottom: 38px;
        /* 上下中心の位置 */
    }

    .header {
        padding: 10px 20px;
        /* 内側の余白 */
    }

    header nav ul {
        display: block;
        position: fixed;
        width: 120%;
        height: 100%;
        top: -100vh;
        left: -10vw;
        transition: all 0.5s linear;
        background-color: rgba(255, 255, 255, 0.9);
    }

    header nav #menu.open {
        top: 0;
    }

    #topimage .topimageunner h2 br {
        display: block;
    }

    main {
        margin-top: 0;
        /* ヘッダーの高さ分だけ上の余白を作る */
    }

    #first h4 br.br1 {
        display: block;
    }


    #service .card_wrap {
        flex-direction: column;
    }

    #aboutus {
        /* padding-inline: 1rem; */
        padding-bottom: 1rem;
    }

    #aboutus .aboutusdown1 {
        flex-direction: column-reverse;
    }

    #aboutus .aboutusdown1 .aboutusleft p,
    #aboutus .aboutusdown1 .aboutusleft ul {
        text-align: center;
    }

    #aboutus .aboutusdown1 .watanabe {
        background-position: center 15%;
        background-size: 75%;
        flex-basis: 45%;
        aspect-ratio: 2 / 1;
    }

    #nagare {

        flex-direction: column;
    }


    section:nth-child(1) {
        margin-block: 0;
        margin-bottom: 5rem;
    }

}

@media screen and (max-width: 509px) {
    #first h4 br.br2 {
        display: block;
    }


}