/* ========================================
base
======================================== */

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    color: #222;
    background: #fff;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.05em;

    overflow-x: hidden;

    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
    font-feature-settings: "palt";
}

.history-year {
    font-family: "Bahnschrift", "Noto Sans JP", sans-serif;
}

.mincho {
    font-family:
        "Shippori Mincho B1",
        serif;
}

/* ========================================
img
======================================== */

img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

/* ========================================
link
======================================== */

a {
    color: inherit;
    text-decoration: none;
    transition: .3s;
}

a:hover {}

/* ========================================
button
======================================== */

button {
    border: none;
    background: transparent;
    cursor: pointer;
}

/* ========================================
form
======================================== */

input,
textarea,
select,
button {
    font: inherit;
}

/* ========================================
list
======================================== */

ul,
ol {
    list-style: none;
}

/* ========================================
table
======================================== */

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* ========================================
media
======================================== */

video,
iframe {
    width: 100%;
    display: block;
}

video.drone-movie {
    width: 100%;
    display: block;
    margin: auto;
    min-width: 250px;
}

/* ========================================
layout
======================================== */

section {
    position: relative;
}

figure {
    margin: 0;
}

/* ========================================
common
======================================== */

.container {
    width: 100%;
    padding-inline: 20px;
}



/* =========================
hamburger
========================= */

.hamburger {
    position: relative;
    width: 40px;
    height: 40px;
    z-index: 1001;
}

.hamburger span {
    position: absolute;
    left: 5px;
    width: 30px;
    height: 2px;
    margin: 0;
    transition: .3s;
}

.hamburger span:nth-child(1) {
    top: 10px;
}

.hamburger span:nth-child(2) {
    top: 19px;
}

.hamburger span:nth-child(3) {
    top: 28px;
}

/* =========================
hamburger
========================= */

.hamburger span {
    display: block;
    width: 30px;
    height: 2px;
    background: #000;
    margin: 7px auto;
    transition: .3s;
}

.hamburger.active span:nth-child(1) {
    top: 19px;
    transform: rotate(45deg);
    background-color: #FFF;
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    top: 19px;
    transform: rotate(-45deg);
    background-color: #FFF;
}

.menu-overlay {
    position: fixed;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    z-index: 999;
}

.menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

.sp-nav {
    position: fixed;
    top: 0;
    right: -200px;
    width: 200px;
    height: 100vh;
    background: rgba(0, 0, 0, .7);
    transition: .3s;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-nav.active {
    right: 0;
}

.sp-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}

.sp-nav li+li {
    margin-top: 10px;
}

.sp-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 16px;
}



/* =========================
menu
========================= */
.header-nav-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0;
    margin: 0;
    list-style: none;
    text-align: center;
}

/* スマホ時は紺背景なので文字を「白」に変更 */
.header-nav-item a {
    color: #fff;
    text-decoration: none;
    font-size: 18px;
    font-weight: 700;
    display: block;
    padding: 10px 20px;
    /* タップしやすい領域を確保 */
}

/* スマホ用の背景スクロール固定（JSでbodyに付与） */
body.is-fixed {
    overflow: hidden;
}

/* =========================
ヘッダー
========================= */
.header-logo {
    max-width: 194px;
    width: 80%;
}

.header-inner {
    padding: 15px;
    display: flex;
    justify-content: space-between;
}

header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: #ffffffdc;
}

#message,
#history,
#plan,
#seminar {
    scroll-margin-top: 100px;
}

/* ========================================
ベース
======================================== */
.base-inner {
    width: calc(100% - 40px);
    margin: auto;
    max-width: 1000px;
}

.section-heading {
    margin-bottom: 30px;
}

.plan .section-heading,
.seminar .section-heading {
    /* 上下のボーダーを 2px solid に設定 */
    border-top: 2px solid;
    border-bottom: 2px solid;
    /* グラデーションの指定（1 は引き伸ばしの設定です） */
    border-image: linear-gradient(to right, transparent, #000 50%, transparent) 1;
    padding: 20px 0;
    text-align: center;
}

h2.section-heading-title {
    font-size: 26px;
    font-family: "Shippori Mincho B1", serif;
    line-height: 1.3;
    margin-bottom: 7px;
}

.section-heading-title span {
    display: inline-block;
}

.section-heading-en {
    font-size: 12px;
}


.color-gold {
    color: #8e5913;
}

.color-black {
    color: black;
}

.color-white {
    color: white;
}

.color-navy {
    color: #003764;
}


.plan-button,
.seminar-button {
    display: block;
    color: #fff;
    width: 80%;
    max-width: 260px;
    height: 55px;
    line-height: 55px;
    text-align: center;
    background: linear-gradient(to bottom right, #cd2a00, #9a0000);
    border-radius: 30px;
    margin: auto;
    transition: 0.3s;
}

.plan-button:hover,
.seminar-button:hover {
    filter: brightness(1.15);
    box-shadow: 0 10px 20px #96000042;
    letter-spacing: 2px;
}

.history,
.plan,
.message,
.seminar {
    margin-bottom: 120px;
}

.section-heading.pdg-left {
    text-align: left;
    padding-left: 25px;
}

.dsp-pc {
    display: none;
}

.dsp-sp {
    display: block;
}

/* ========================================
ファーストビュー
======================================== */

.fv {
    position: relative;
    overflow: hidden;
}

.fv-bgimg {
    width: 100%;
    height: auto;
    /* はみ出た画像を非表示にする（必須） */
    overflow: hidden;
}

.fv-bgimg img {
    width: 100%;
    height: auto;
    display: block;
    /* アニメーションの指定（10秒かけてゆっくり、一定の速度でループ） */
    animation: zoomOutFade 15s linear infinite;
    will-change: transform, opacity; /* opacityも追加 */
}

.fv-bgimg .dsp-sp {
    min-width: 400px;
}

/* --- アニメーションの定義 --- */
@keyframes zoomOutFade {
    0% {
        transform: scale(1); /* 初期サイズ */
        opacity: 0;         /* 完全に表示 */
    }
    10% {
        transform: scale(1); /* 初期サイズ */
        opacity: 1;         /* 完全に表示 */
    }
    /* アニメーション全体の 80% までの時間をかけて拡大 */
    90% {
        transform: scale(1.3); /* 拡大サイズ */
        opacity: 1;           /* まだ表示 */
    }
    /* 残りの 20% の時間（80%〜100%）でフェードアウト */
    100% {
        transform: scale(1.5); /* さらに少し拡大（動きを止めないため） */
        opacity: 0;          /* 完全に透明 */
    }
}

.fv-bgimg .dsp-sp {
    display: block;
}

.fv-bgimg .dsp-pc {
    display: none;
}

.fv-10thflag {
    position: absolute;
    top: 0;
    left: 20px;
    width: 68px;
    z-index: 1;
}

/* タイトル中央配置 */
.fv-ttl {
    position: absolute;
    z-index: 2;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    width: 90%;
    max-width: 900px;
}

/* 下部フェード */
.fv-bgimg::after {
    content: "";
    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 35%;

    background: linear-gradient(to bottom,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0) 40%,
            rgba(255, 255, 255, 1) 100%);

    pointer-events: none;
}

/* ========================================
代表挨拶
======================================== */

.message {
    padding-top: 30px;
}

.section-heading {}

.message-flex {}

.message-content {
    max-width: 1000px;
}

.message-text {
    text-align: justify;
    width: 100%;
    margin-bottom: 20px;
}

.message-profileBox {
    display: flex;
    justify-content: center;
    gap: 15px;
}

.message-profilePhoto {
    width: 100%;
    max-width: 120px;
}

.message-profile {
    width: 155px;
    height: auto;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.message-katagaki {
    font-size: 14px;
    line-height: 1.5;
}

.message-name {
    font-size: 18px;
    line-height: 1;
    margin: 10px 0 5px;
}

.message-name-en {
    font-size: 12px;
    line-height: 1.2;
}

.message-name-en span,
.message-katagaki span {
    display: inline-block;
}




/* ========================================
ヒストリー
======================================== */
.history {}

.history-box {
    position: relative;
    background-color: #003764D9;
    max-width: 1000px;
    width: 100%;
    padding: 60px 0;
    margin: auto;
}

.history-10thflag {
    max-width: 70px;
    position: absolute;
    top: 0;
    right: 10px;
}

.history-10thflag img {
    width: 100%;
}

.history-list .history-item:nth-last-child .history-title {
    font-size: 120%;
}

.history-item {
    display: flex;
    gap: 10px;
    padding: 30px 25px 0px 15px;
    position: relative;
    justify-content: center;
}

.history-item:first-child {
    padding-top: 0;
}

.history-item-end .history-card-list {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 0px;
}

.history-content {
    width: 100%;
}

.history-line {
    width: 20px;
    position: relative;
    flex-shrink: 0;
}

.history-line::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 25px;
    bottom: -30px;

    transform: translateX(-50%);

    border-left: 5px dotted rgba(255, 255, 255, 0.7);
}

.history-line::after {
    content: "";
    position: absolute;

    top: 5px;
    left: 50%;

    width: 23px;
    height: 23px;

    border-radius: 50%;
    background: #ffffff;

    transform: translate(-50%, 0);
}

.history-year {
    color: #FFF;
    width: auto;
    height: 40px;
    text-align: left;
    margin-bottom: -2px;
}

.history-year img {
    width: auto;
    height: 100%;
}

.history-card-list {
    background-color: #FFF;
    padding: 0px 20px 20px;
}


.history-title {
    display: block;
    margin: 0px auto;
    padding: 30px 0 5px;
    line-height: 1.5;
    text-align: center;
}

.history-title span {
    display: inline-block;
}

.history-image img {
    border-radius: 5px;
}

.history-images-logo {
    margin: 10px 0;
}

/* ========================================
プラン
======================================== */

.section-heading-title.color-gold {
    text-align: center;
}

.section-heading-en.color-gold {
    text-align: center;
}

.plan-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(3vw + 30px);
    margin-bottom: calc(3vw + 30px);
}

.plan-badge {
    max-width: 310px;
    margin: auto;
    margin-bottom: 0.5em;
}

.plan-title,
.seminar-title {
    font-size: 24px;
    color: #be0000;
    text-align: center;
    line-height: 1.3;
    margin-bottom: 0.6em;
}

.plan-title span,
.seminar-title span {
    display: inline-block;
}

.plan-text {
    margin-bottom: calc(3vw + 30px);
}

.plan-item {}

.img-caption {
    margin-top: 10px;
    line-height: 1.5;
}


/* ========================================
福島ドローンスクール講習紹介
======================================== */

.seminar-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(3vw + 45px);
    margin-bottom: calc(3vw + 80px);
}

.seminar-item {}

.seminar-imgtxtBox {
    margin-bottom: 25px;
}

.img-caption {
    margin-bottom: 0px;
}


/* ========================================
ドローンスクール挨拶
======================================== */

.message-bottom {
    margin: 0px auto 80px;
}

.message-bottom .section-heading {
    display: flex;
    justify-content: center;
    align-items: center;
}

.message-bottom .section-heading-title {
    writing-mode: vertical-rl;
    font-size: 24px;
    font-family: "Yu Mincho", "游明朝", serif;
    letter-spacing: 0.2em;
    line-height: 1.8;
}

.message-bottom-text-large {
    font-size: 24px;
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: bold;
    margin: .6em auto .5em;
    line-height: 1.5;
    text-align: center;
}

.message-bottom-text-large span {
    display: inline-block;
}

.message-bottom-logo {
    width: 100%;
    margin: 50px auto;
}

.fds-msgbtm-logo {
    width: 100%;
    max-width: 343px;
    margin: 0 auto 30px;
}

.fds10th-msgbtm-logo {
    width: 100%;
    max-width: 75px;
    margin: auto;
}


/* ========================================
フッター
======================================== */
.footer {
    padding: 50px 0 10px;
    position: relative;
}

.footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(60, 140, 182);
    mix-blend-mode: multiply;
    z-index: -1;
}

.footer-inner {
    padding: 0 30px 20px;
}

.footer-logo-box {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 25px;
}

.ftr-sp1-logo {
    width: 100%;
    max-width: 261px;
    margin-bottom: 15px;
}

.ftr-fds-logo {
    width: 100%;
    max-width: 203px;
}

.footer-address,
.footer-tel {
    font-size: 16px;
    line-height: 1.3;
    color: #FFF;
    margin-bottom: 10px;
    border-left: 6px solid #FFF;
    padding-left: 8px;
}

.footer-address span {
    display: inline-block;
}

.footer-tel {
    color: #FFF;
    font-size: 25px;
    font-weight: bold;
    line-height: 1.3;
    white-space: nowrap;
}

.footer-tel span {
    font-size: 18px;
    font-weight: bold;
    margin-right: 5px;
}

.copyright {
    font-size: 12px;
    color: #fff;
    line-height: 1.3;
    text-align: center;
    padding: 0 10px;
}

small span {
    display: inline-block;
}

/* 背景画像を全体共有 */
.footer-bgimg {
    isolation: isolate;

    background:
        url(images/footer-bgimg.webp) center bottom / 1920px no-repeat;
}

/* footer本体 */
.footer {
    position: relative;
    overflow: hidden;
}

/* 青オーバーレイ */
.footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 80, 160, .75);
    mix-blend-mode: multiply;
    pointer-events: none;
    z-index: 0;
}

/* 文字を前面へ */
.footer-inner,
.copyright {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

.history-title.font-large {
    font-size: 120%;
    font-weight: bold;
}

.history-title.font-large2 {
    font-size: 28px;
    font-weight: bold;
    color: #003764;
}

.message-bottom-video {
    width: 100%;
    min-width: 250px;
    margin: auto;
    transition: 0.3s ease;
    filter: none;
}

/*.message-bottom-video:hover {
    filter: brightness(0.9);
}*/

.movie-figcap {
    font-size: 14px;
    line-height: 1.3;
    margin: 5px 0 0;
}


/*戻るボタン*/
.pagetop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    width: 70px;
}

.pagetop.show {
    opacity: 1;
    visibility: visible;
}

/* ========================================
スマホ
======================================== */

@media screen and (min-width: 480px) {}


/* ========================================
タブレット
======================================== */

@media screen and (min-width: 650px) {
    .fv-10thflag {
        width: calc(8vw + 30px);
    }

    h2.section-heading-title {
        font-size: 38px;
        text-align: center;
    }

    .section-heading-en {
        text-align: center;
    }

    .history-card-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 15px;
    }

    .history-title span {
        display: block;
    }

    .history-title.font-large2 {
        font-size: 35px;
    }

    .plan-list,
    .seminar-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 20px;
    }

    .seminar-item {
        display: flex;
        flex-direction: column;
    }

    .seminar-title {
        min-height: 2.8em;

        display: flex;
        align-items: center;
        justify-content: center;
    }

    .seminar-title span {
        display: block;
    }

    .seminar-imgtxtBox {
        flex: 1;
    }

    .seminar-button {
        margin-top: auto;
    }

}

@media screen and (min-width: 768px) {
    .dsp-pc {
        display: block;
    }

    .dsp-sp {
        display: none;
    }

    .fv-bgimg .dsp-sp {
        display: none;
    }

    .fv-bgimg .dsp-pc {
        display: block;
    }

    .fv-ttl {
        width: 75%;
        max-width: 900px;
    }

    .message-flex {
        display: flex;
        justify-content: space-between;
        flex-flow: row-reverse;
    }

    .message-content {
        width: calc(100% - 200px - 5%);
    }

    .message-text {
        text-align: justify;
        width: 100%;
        margin-bottom: 20px;
    }

    .message-profileBox {
        display: flex;
        justify-content: start;
        gap: 15px;
        flex-direction: column;
    }

    .message-profilePhoto {
        width: 100%;
        max-width: 200px;
    }

    /* ナビゲーションの初期化（横並びの通常ヘッダーへ） */
    .header-nav {
        position: static;
        /* fixedを解除 */
        width: auto;
        height: auto;
        background: transparent;
        /* 背景の紺色を消す */
        transition: none;
    }

    /* メニューリストを横並びにする */
    .header-nav-list {
        flex-direction: row;
        gap: 32px;
        /* PC時のメニュー間隔（お好みで変更してください） */
    }

    /* PC時は文字色を通常カラー（#333など）に戻す */
    .header-nav-item a {
        color: #333;
        font-size: 16px;
        /* PC用のサイズ */
        padding: 0;
    }

    .header-nav-item a:hover {
        opacity: 0.7;
        /* ホバー時の演出（任意） */
    }
}

/* ========================================
pc
======================================== */

@media screen and (min-width: 900px) {
    .fv {
        margin-bottom: 100px;
    }

    .fv-10thflag {
        width: 120px;
    }

    .plan {
        margin-bottom: 150px;
    }

    .history {
        margin-bottom: 180px;
    }

    .container {
        max-width: 1200px;
        margin-inline: auto;
        padding-inline: 40px;
    }

    .plan-list,
    .seminar-list {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: 30px;
    }

    .msg-history {
        position: relative;
    }

    .msg-hstry-bgimg {
        position: absolute;
        top: 4%;
        left: 0;
        width: 100%;
        z-index: 0;
        overflow: hidden;
        pointer-events: none;
    }

    .msg-hst_bgimg-base {
        width: 1920px;
        background-repeat: no-repeat;
        background-position: center top;
        background-size: 100% auto;
    }

    /* 1920 × 1000 */
    .msg-hst_bgimg-bg1 {
        aspect-ratio: 1920 / 1000;
        background-image: url("images/history-drone-bgimg_01.webp");
    }

    .msg-hst_bgimg-bg2 {
        aspect-ratio: 1920 / 1000;
        background-image: url("images/history-drone-bgimg_02.webp");
    }

    .msg-hst_bgimg-bg3 {
        aspect-ratio: 1920 / 1000;
        background-image: url("images/history-drone-bgimg_03.webp");
    }

    .msg-hst_bgimg-bg4 {
        aspect-ratio: 1920 / 1000;
        background-image: url("images/history-drone-bgimg_04.webp");
    }

    /* 1920 × 618 */
    .msg-hst_bgimg-bg5 {
        aspect-ratio: 1920 / 618;
        background-image: url("images/history-drone-bgimg_05.webp");
    }

    .msg-history-inner {
        position: relative;
        z-index: 1;
    }

    .history-card-list {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: 30px;
    }

    .history-item.history-item-first .history-card-list {
        display: grid;
        grid-template-columns: 1fr;
        column-gap: 30px;
        padding: 20px;
    }

    .history-item.history-item-first .history-card-list .history-card {
        display: grid;
        grid-template-columns: 1fr 2fr;
        column-gap: 30px;
    }

    .history-item.history-item-first .history-card-list .history-card .history-images {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 30px;
        align-items: stretch;
    }

    .history-item.history-item-first .history-title {
        margin: auto;
        padding: 0;
    }

    .message-bottom-text {
        text-align: center;
    }

    .footer-inner {
        display: flex;
        height: 50px;
        box-sizing: content-box;
        justify-content: center;
    }

    .footer-address,
    .footer-tel {
        margin-left: 20px;
    }

    .footer-logo-box {
        width: auto;
        flex-direction: row;
        column-gap: 20px;
        margin-bottom: 0px;
    }
}

@media screen and (min-width: 1400px) {
    .fv-ttl {
        top: calc(34vh + 10%);
    }
}