@charset "utf-8";



/* カスタムプロパティ */
:root {
    /* 色の定義 */
    --main-color: #D04042;
    --sub-color: #F6D9D9;
    --black-color: #333333; 
    --white-color: #ffffff;
    --sporotsone-color: #01A0E2;
    --border-color: #A8A8A8;
    --bg-color: #F4F4F4;
    --dammy-color: #818181;
    --mainbg-color: #f4f4f4;





    /* フォントファミリーの定義 */
    --japanese-font: 'Noto Sans JP', sans-serif;
    --english-font: 'Roboto', sans-serif;

    /* フォントサイズの定義 */
    --base-font-size: 1.6rem;
    --heading-font-size: 2.5em;
    --small-font-size: 0.9em;

    /* 行高の定義 */
    --line-height-body: 1.6;
    --line-height-heading: 1.2;

}

/* CSS Document */
html {
    scroll-behavior: smooth;
    font-size: 62.5%;
    /* スムーススクロール
    visibility: visible;
  opacity: 1;
  
  touch-action: none;  */
}



body {
    width: 100%;
    min-width: 800px;
    font-family: var(--japanese-font);
    font-size: var(--base-font-size);
    ;
    line-height: 140%;
    color: var(--black-color);
    background-color: var(--bg-color);
    height: 100%;       /* 高さを100%にして画面いっぱいに */
  margin: 0;          /* デフォルトマージンリセット */
  padding: 0;         /* デフォルトパディングリセット */
  overflow-x: hidden; /* 横スクロール防止 */
}

a {
    color: var(--black-color);
}

/* 

a:hover {
    opacity: 0.5;
}
    */





/* 共通 */

img {
    zoom: .5;
}


section {}



section h2 {
    font-family: var(--english-font);
    color: var(--main-color);
    font-size: 5.0rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
    display: flex;
    align-items: center;
    margin-bottom: 40px;
}

section h2 span {
    font-family: var(--japanese-font);
    color: var(--black-color);
    font-size: 1.7rem;
    font-style: normal;
    margin-left: 20px;
}

section h3 {
    width: 100%;
    color: var(--white-color);
    font-size: 1.8rem;
    font-weight: 600;
    padding: 10px 0;
    background-color: var(--main-color);
    text-align: center;
    margin-top: 30px;
    margin-bottom: 10px;
}

.block-inner {

    padding-top: 70px;
    padding-left: 30px;
    padding-right: 30px;
    padding-bottom: 70px;

}



/*ボタン*/
.btn--red,
a.btn--red {
    color: var(--white-color);
    background-color: var(--main-color);
}

.btn--red:hover,
a.btn--red:hover {
    color: var(--white-color);
    background: var(--black-color);
}

a.btn--radius {
    border-radius: 100vh;
}







body .body-inner {}

ul {
    list-style: none;
}




.sp {
    display: none !important;
}


.pc_main {

    width: 100%;
    /*min-height: 100vh;*/
    display: flex;
  flex-direction: row;
  margin: 0;
  height: 100vh;
  overflow: hidden; /* body自体はスクロールしない */
}


#mainContent {
    display: none; /* 最初は非表示 */
    opacity: 0;
    transition: opacity 1s ease;
  }

  #mainContent.fade-in {
    opacity: 1;
  }

  /* ローディングスクリーンを初期表示 */
  #loadingScreen {
    display: block;
  }



/* ローディング画面 */

body.no-scroll {
    overflow: hidden;
    width: 100%;
    height: 100%;
  }


  #loadingScreen {
    display: flex;
    justify-content: center;
    align-items: center;
  
    height: 100vh;
    background-color: var(--black-color);
    flex-direction: column;
    text-align: center;
    position: relative;
    z-index: 1000;
  }

  .loader-container {
    position: relative;
    width: 80%;
    max-width: 600px;
    height: 2px;
    background-color: var(--white-color);
    border-radius: 15px;
    overflow: hidden;
    margin: 0 auto; /* 横中央寄せ */
  }
  
  .loader-bar {
    height: 100%;
    width: 0%;
    background-color: var(--main-color);
    transition: width 0.1s;
    border-radius: 15px;
  }
  

  .loader-image {
    width: 30px;
    position: absolute;
  left: 0;
  top: -100px; /* バーの上、100px空ける */
  height: 40px;
  transition: left 0.1s;
  z-index: 1001;
  }


.progress-text {
    font-size: 2.6rem;
    font-family: var(--english-font);
    color: var(--white-color);
    margin-top: 10px;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
}

/* トップ画面 */
#mainContent {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease, transform 1s ease;
    display: none;
  }
  
  #mainContent.fade-in {
    display: block;
    opacity: 1;
    transform: translateY(0);
  }


/* ヘッダー */

header {
    width: calc((100% - 540px) / 2);
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    background-image: url(../img/bg_hed.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right bottom;
    padding-top: 40px;


}

h1 {
    width: auto;
    margin: auto;
    padding-right: 40px;
    margin-left: 5vw;



}

h1 img {
    width: 500px;
    margin: auto;
    text-align: left;
    max-width: 100%;

}

/* メニュー */
nav {
    margin-top: 60px;
    margin-left: 5vw;
}


nav ul#header-menu li {

    display: block;
    font-size: 1.7rem;
    font-weight: 600;
    color: var(--black-color);

}

nav ul #header-menu li a {}



nav#menu li.btn_line img {}


/* メニュー */
.block_menu {
    position: fixed;
    bottom: 5%;
    right: 40px;
    z-index: 100;
}

.block_menu .inner {
    background-image: url(../img/contact_btnbg@2x.png);
    background-size: 310px;
    background-size: contain;
    background-repeat: no-repeat;
    width: 310px;
    height: 310px;
}

.block_menu .inner .cont01 {
    margin-bottom: 10px;
    padding-top: 100px;
    text-align: center;
}

.block_menu .inner .cont02 {

    text-align: center;
}

.block_menu .cont_close {
    position: absolute;
    top: 28px;
    right: 12px;
}



.block_menu .js_close {
    display: none;
    position: absolute;
    right: 400px;
}


/* メニューホバー */

.hover-link {
    position: relative;
    display: inline-block;
    padding: 10px 8px;
    color: var(--black-color);
    font-weight: 600;
    text-decoration: none;
    overflow: hidden;
    transition: color 0.4s ease;
}

.hover-link::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 120%;
    background-color: var(--main-color);
    z-index: -1;
    transition: left 0.4s ease;

}

.hover-link:hover::before {
    left: 0;
}

.hover-link:hover {
    color: var(--white-color);
}

/* メイン */

main {
    max-width: 540px;
    background-color: var(--mainbg-color);
    overflow-y: auto;
    margin: 0 auto;
    position: relative;
    

   

}

.main-img {
    width: 100%;
    position: relative;
    background-image: url(../img/main@2x.png);
    background-size: contain;


}

.slide-fade {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  }

  .slide-fade.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ローディング後に全体をフェードイン */
.fade-in {
    animation: fadeIn 1s ease-in-out;
  }
  
  @keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
  }


.main-img p {

    position: absolute;
    top: 0;
    left: 0;
    font-family: var(--english-font);

    color: var(--white-color);
    font-size: 8.1rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
    line-height: 90%;

}

.main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* フェードイン＋上昇アニメーション */


#text {
    opacity: 0;
    animation: fadeIn 0.3s ease-out forwards;
}

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

@keyframes fadeUp {
    from {
        transform: translateY(20px);
        opacity: 1;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.move-up {
    animation: fadeUp 0.4s ease-out forwards;
}





/* くるくるエントリーボタン */

.main-entry {
    position: absolute;
    bottom: 300px;
    right: 10px;
    font-family: var(--english-font);
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
}

.rotating-text {
    fill: var(--white-color);

}

.button-container {
    position: relative;
    width: 200px;
    height: 200px;
    overflow: hidden;
    font-family: var(--english-font);
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
}

.center-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border: none;
    background: var(--main-color);
    color: var(--white-color);

    font-weight: 600;
    border-radius: 50%;
    width: 130px;
    height: 130px;
    font-size: 1.5rem;
    z-index: 2;
    cursor: pointer;
}

.button--txt {
    font-family: var(--english-font);
    color: var(--main-color) !important;
    fill:var(--main-color) ;
    letter-spacing: 0.01em;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
}

.rotating-text {
    position: absolute;
    top: 0;
    left: 0;
    animation: rotate 10s linear infinite;
}

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}




.scroll_wrap {
    width: 100%;
    overflow: hidden;
}

.scroll_cont {

    display: grid;
    place-content: center;
    flex-shrink: 0;
    min-width: 22vw;
    aspect-ratio: 1 / 1;
    border-radius: 20px;
    -moz-border-radius: 20px;
    -webkit-border-radius: 20px;

}




/* 開催概要 */

.kaisai-block {
    margin: auto;
    width: 80%;
    background-color: var(--white-color);
    margin-top: -300px;
    position: relative;
    padding-top: 30px;
    margin-bottom: 70px;
}

.kaisai-card {

    padding-right: 30px;
    padding-bottom: 0px;
    padding-left: 30px;

    margin: auto;

}

.kaisai-card dl {
    text-align: center;

}

.kaisai-card dl dt {
    background-color: var(--black-color);
    color: var(--white-color);
    font-weight: 600;
    padding: 10px;
    margin-bottom: 10px;
}

.kaisai-card dl dd {
    font-family: var(--japanese-font);
    color: var(--black-color);
    font-weight: 600;
    padding: 10px;
    line-height: 1;
    margin-bottom: 10px;
}

.kaisai-card dl dd span.txt-nen {
    font-family: var(--english-font);
    color: var(--main-color);
    font-size: 3.2rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
}

.kaisai-card dl dd span.txt-gatu {
    font-family: var(--english-font);
    color: var(--main-color);
    font-size: 4.3rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;

}


.kaisai-card a.btn {
    width: 180px;
    padding: 15px;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    display: block;
    margin: auto;
}

.kaisai-card a.btn--red img {

    height: 40px;
    margin-right: 10px;

}

.kaisai-count {
    display: flex;
    justify-content: center;
    background-color: var(--sub-color);
    margin-top: 30px;
    align-items: center;
    padding: 30px;

}

.kaisai-count--txt {
    color: var(--black-color);
    font-weight: 600;
    margin-right: 20px;
}

/* カウントダウン
 */

#countdown {
    display: flex;
    /* 全体をFlexコンテナにする */
    gap: 8px;
    /* セグメント間のスペース */
    font-size: 3.2rem;
    /* 全体的な数字のサイズ */
    text-align: center;
    font-family: var(--english-font);
    font-size: 3.2rem;
    color: var(--white-color);
    
}

.countdown-segment {
    display: flex;
    /* 日、時などのセグメントをFlexコンテナにする */
    align-items: flex-end;
    /* した揃え */
    gap: 8px;
    /* 数字ブロックとラベル間のスペース */
}

.countdown-segment-label {
    font-size: 1.4rem;
    font-weight: 600;
    /* ラベルのフォントサイズ */
    color: var(--black-color);
    /* ラベルの色 */
    letter-spacing: 1px;
    /* 文字間隔 */
    font-style: normal;
}

.countdown-numbers {
    display: flex;
    /* 数字のブロックをFlexコンテナにする */
    gap: 5px;
    /* 各数字間のスペース */
    padding: 3px 0;
    /* 数字ブロックの内側の余白 */
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;


}

.countdown-number-box {
    background-color: var(--main-color);
    /* 各数字の背景色 */
    color: var(--white-color);
    /* 各数字の文字色 */
    padding: 14px 0px;
    /* 各数字の内側の余白 */
    min-width: 32px;
    /* 各数字の最小幅を確保 (2桁表示を想定) */
    text-align: center;
    line-height: 1;
    /* 行の高さを詰める */

}



/* カウントダウン終了時のスタイル */
#countdown.expired {
    color: #e74c3c;
    /* 終了時の文字色 */
    font-size: 3em;
    /* 終了時のフォントサイズ */
    background: none;
    box-shadow: none;
    flex-direction: row;
    /* 中央に表示するため */
    justify-content: center;
    align-items: center;
}

/* 終了時は背景などを非表示にする */
#countdown.expired .countdown-segment,
#countdown.expired .countdown-numbers,
#countdown.expired .countdown-number-box,
#countdown.expired .countdown-segment-label {
    background: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
}



/* なにわ淀川マラソンとは */

.block-about {
    background-color: var(--white-color);
    position: relative;
    z-index: 0;
}


.block-about .block-inner {

    padding-top: 70px;
    padding-left: 30px;
    padding-right: 30px;
    padding-bottom: 30px;

}

.block-about::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 282px;
    background-color: var(--main-color);
    z-index: 1;
}

section.block-about h2 {
    color: var(--white-color);
    position: relative;
    z-index: 100;
}

section.block-about h2 span {
    color: var(--white-color);
}

.movie-block {
    position: relative;
    z-index: 2;
    text-align: center;
}


.movie-block iframe {
    width: 100%;
    height: 240px;
    text-align: center;
}


.movie-block p {
    text-align: center;
    color: var(--main-color);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 33.75px;
    padding: 20px 0;
}

.youtube-lite {

}




.block-about ul li {
    margin-bottom: 2px;
}

.feature-block {
    width: 100%;
    height: 257px;
    color: var(--white-color);
    background-image: url(../img/bg_feature01.jpg);
    background-size: cover;

}

.feature-block02 {
    width: 100%;
    height: 257px;
    color: var(--white-color);
    background-image: url(../img/bg_feature02.jpg);
    background-size: cover;

}

.feature-block03 {
    width: 100%;
    height: 257px;
    color: var(--white-color);
    background-image: url(../img/bg_feature03.jpg);
    background-size: cover;

}

.feature-block04 {
    width: 100%;
    height: 257px;
    color: var(--white-color);
    background-image: url(../img/bg_feature04.jpg);
    background-size: cover;

}

.feature-card {
    width: 70%;
    display: block;
    padding: 30px;

}

.feature-card-right {
    margin-left: 30%;
    width: 60%;
    display: block;
    padding: 30px 0;
}

.feature--tit {
    display: flex;
    margin-bottom: 15px;
    align-items: center;
}

.feature--tit p {
    display: flex;
    font-size: 2.2rem;
    font-weight: 600;
}


dl.feature--number {
    display: flex;
    align-items: center;
    justify-content: center;
}




dl.feature--number dt {
    width: 68px;
    height: 60px;
    background-image: url(../img/feature_no.svg);
    background-size: cover;
    position: relative;
}

dl.feature--number dt p {
    position: absolute;
    top: 50%;
    right: 10%;
    transform: translateY(-50%);
    font-family: var(--english-font);
    font-size: 3.6rem;
    line-height: 1;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;

}

dl.feature--number dd {
    font-size: 2.2rem;
    line-height: 1;
    /* 行の高さを調整して余白を減らす */
    margin-left: 10px;
    font-weight: 600;
}

.feature--txt {
    line-height: 120%;
}


/* エントリーをお考えの方へ */

.forentry-block {
    background-color: var(--white-color);

}



.forentry--table {}

.forentry--table ul li {
    margin-bottom: 20px;

}

.forentry--table ul li dl {}

.forentry--table ul li dl dt {
    font-weight: 600;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-color: var(--border-color);
    padding: 10px 0;

}

.forentry--table li dl dd {
    padding: 10px 0;

}

.forentry--table li dl dd.two {
    display: flex;
    padding: 10px 0;
    justify-content: space-between;
}

.forentry--table li dl dd .forentry--table-cell {
    width: 45%;
    background-color: var(--bg-color);
    padding: 10px;
}

.forentry--table li dl dd p {
    color: var(--main-color);
    margin-bottom: 8px;
    font-weight: 600;
}


.forentry--card {
    border: 1px solid;
    border-color: var(--main-color);
    margin-bottom: 20px;
}



.forentry--card dl dt {
    background-color: var(--main-color);
    color: var(--white-color);
    padding: 10px;
    text-align: center;
}

.forentry--card dl dd {

    padding: 10px;

}

.forentry--card dl dd p {
    color: var(--main-color);
    margin-bottom: 8px;
    font-weight: 500;
}

/* 参加費 */

.price-block {
    background-color: var(--white-color);
}

.accordion {
    max-width: 1000px;
    margin-bottom: 10px;

    .accordion_ttl {
        position: relative;
        background: #fff;
        font-weight: bold;
        font-size: 1.8rem;
        line-height: 32.7px;
        padding: 15px 20px;
        border: 1px solid;
        border-color: var(--border-color);
        cursor: pointer;
        border-radius: 12px;
        -moz-border-radius: 12px;
        -webkit-border-radius: 12px;




        &:before,
        &:after {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            right: 30px;
            transform: translate(0, -50%);
            width: 16px;
            height: 2px;
            background: var(--main-color);
            transition: 0.2s ease transform;
        }

        &:after {
            transform: translate(0, -50%) rotate(-90deg);
        }

        &.active {
            &:after {
                transform: translate(0, -50%) rotate(0deg);
            }

        }

    }

    .accordion_ttl span {
        color: var(--main-color);
        font-size: 1.6rem;
        margin-left: 10px;

    }

    .accordion_ttl.active {
        border-top-left-radius: 12px;
        border-top-right-radius: 12px;
        border-bottom-right-radius: 0px;
        border-bottom-left-radius: 0px;
    }


    .accordion_ttl img {
        margin-right: 50px;
    }

    .accordion_cnt {
        background-color: var(--white-color);
        line-height: 1.5;
        max-height: 0;
        overflow: hidden;
        transition: 0.2s ease max-height;
        border-top-left-radius: 0px;
        border-top-right-radius: 0px;
        border-bottom-right-radius: 12px;
        border-bottom-left-radius: 12px;
        margin-top: -1px;




        p {
            margin-bottom: 15px;
        }
    }

    .accordion_cnt--card {
        padding: 20px 15px;
        border: 1px solid;
        border-color: var(--border-color);
        border-top-left-radius: 0px;
        border-top-right-radius: 0px;
        border-bottom-right-radius: 12px;
        border-bottom-left-radius: 12px;
    }
}

.accordion_cnt--card img {
    width: 100%;
}

.accordion_cnt--card .btn--red {
    background-color: var(--main-color);
    border-radius: 50vh;
    width: 200px;
    margin: auto;
    padding: 4px;
    font-weight: 600;
    margin-top: 20px;
    margin-bottom: 20px;

}

.accordion_cnt--card a dl {
    border-radius: 50vh;
    padding: 10px;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.accordion_cnt--card a dl img {
    width: 40px;
}



.accordion_cnt--card a dl dd {
    color: var(--white-color);
}



.accordion_ttl dl {
    display: flex;
    align-items: center;
}


.accordion_ttl .active {
    border: 1px solid;
    border-color: var(--border-color);
}


.table {
    width: 100%;
    display: flex;
    flex-direction: column;
    border-left: 1px solid;
    border-top: 1px solid;
    border-right: 1px solid;
    border-color: var(--border-color);
    font-family: sans-serif;
}

.table-row {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid;
    border-color: var(--border-color);
}

.table-cell {
    flex: 1;
    /* 均等に横幅を配分 */
    padding: 12px;
    border-right: 1px solid;
    border-color: var(--border-color);
    box-sizing: border-box;
}

.table-cell:last-child {
    border-right: none;
    text-align: end;
    background-color: var(--white-color);
}

.table-header {
    background: #f2f2f2;
    font-weight: bold;
}



/* 当日の流れ */

.flow-block {
    background-color: var(--white-color);
}

.flow-block p {
    text-align: center;
}

.flow--txt {
    background-color: var(--bg-color);
    padding: 20px;
    margin-bottom: 20px;
}

.flow--txt span {
    color: var(--main-color);
}

.flow--txt dl {
    display: flex;
}

.flow--card {
    border: 1px solid;
    border-color: var(--main-color);
    padding: 20px;
    margin-bottom: 10px;
}

.flow--card dl {
    display: flex;
    align-items: center;
    gap: 10px;
}

.flow--card dl dt {
    font-family: var(--english-font);
    color: var(--main-color);
    font-size: 4.0rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings: "wdth" 75;
    line-height: 100%;
    width: 10%;
    text-align: center;
}

.flow--card dl dd {}


/* 当日の流れ */

.guide-block {
    background-color: var(--white-color);



    .tabs {
        max-width: 600px;
        margin: 20px auto;
    }

    .tab-buttons {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;

    }

    .tab-buttons button {
        flex: 1 1 40%;
        font-size: 1.6rem;
        font-weight: 600;
        border: 1px solid;
        border-color: var(--main-color);
        padding: 10px 15px;
        background-color: var(--white-color);
        cursor: pointer;
        border-radius: 100vh;
        transition: background-color 0.3s, border-color 0.3s;
        color: var(--main-color);

        /* 高さを固定（2行分想定） */
        height: 4.8rem;
        /* フォントサイズ × 行数 × 行間の目安 */
        line-height: 1.4;

        /* テキストの折返しは許可 */
        white-space: normal;
    }

    .tab-buttons button.active {
        background-color: var(--main-color);
        color: var(--white-color);
    }

    .tab-content {}

    .tab-panel {
        display: none;
    }

    .tab-panel.active {
        display: block;
    }

}

.tab-content--card {}

.tab-content--card img {
    width: 100%;
}


/* アクセス */

.access-block {
    background-color: var(--white-color);
}

.access-block p {
    text-align: center;
    padding: 15px 0;
}

.access-block ul li {
    margin-bottom: 10px;
}

.red {
    color: var(--main-color);
}


/* ゲスト/MC */
.guest-block {
    padding-top: 40px;
    background: var(--bg-color);
    position: relative;


}

.guest-block .block-inner {
    padding-top: 160px;
    padding-bottom: 0px;

}


.clip-top,
.clip-bottom {
    position: absolute;
    left: 0;
    width: 100%;
    height: 150px;
    /* 高さはお好みで */
    z-index: 1;
    background: inherit;
    /* 背景と同じにする */
}

/* 上部：通常のpolygon */
.clip-top {
    top: 0;
    clip-path: polygon(0 0%, 100% 0%, 100% 40%, 0% 100%);
    background-color: var(--white-color);

}

/* 下部：反転させたpolygon */
.clip-bottom {
    clip-path: polygon(0 0%, 100% 0%, 100% 100%, 0% 60%);
    background-color: var(--bg-color);
    z-index: 1;


}



.guest---img {
    margin: auto;
    text-align: center;
    padding: 10px 0;
    /* ダミー設定 */
    background-color: var(--dammy-color);
    width: 203px;
    height: 203px;
}

.guest---img p {
    color: var(--white-color);
    font-weight: 600;
    margin-top: 45%;
}

.guest---prof {}

.guest---prof p {
    text-align: center;

}

.guest---prof p.red {
    color: var(--main-color);
    font-weight: 600;
    font-size: 1.7rem;
    margin-bottom: 10px;

}

.guest---prof p.name {
    font-weight: 600;
    font-size: 3.0rem;

}

.guest---prof ul {
    margin: 20px 80px;
}

.guest---prof ul li dl {
    display: flex;
    flex-direction: row;
}

.guest---prof ul li dl dt {
    width: 30%;
}

.guest---prof ul li dl dd {}


.guest---txt {
    margin: 20px 0;
}

.guest---messe {
    padding: 12px;
    background-color: var(--white-color);
    border-radius: 20px;

}

.guest---sns ul {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.guest---sns ul li {
    text-align: center;
    width: 30%;
}

.guest---sns ul li dl {
    display: flex;
    flex-direction: column;
    align-items: center;


}

.guest---sns ul li dl dt {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    background-color: var(--white-color);
    /* 白背景 */
    border-radius: 50%;
    /* 丸背景 */


}


.guest---sns ul li dl dt img {
    width: 60px;
    object-fit: contain;
}

.guest---sns ul li dl dd img {
    font-size: 1.4rem;
}


.answer {
    display: flex;
    margin-bottom: 60px;
    margin-left: 8px;
}

.answer img {
    margin-right: 50px;
}

.answer span {
    font-weight: bold;
    font-size: 2.0rem;
}



/*pagetop*/


.page_box {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1000;
}

.page_box img {
    width: 200px;
}

.svgicon-left-blue {
    transform: scaleX(-1);
}





/*なにわ親衛隊*/
.ssnaniwa-block {
    background-color: var(--white-color);
    padding-top: 130px;

}

.ssnaniwa-slider-container {
    margin: 50px auto;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
}

.ssnaniwa-slider-wrapper {
    overflow: hidden;
}

.ssnaniwa-slides {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.ssnaniwa-slide {
    flex: 0 0 35%;
    margin-right: 2.5%;
    padding: 14px;
    background-color: var(--white-color);
    border: 1px solid;
    border-color: var(--border-color);
    border-radius: 10px;
    text-align: center;
    font-size: 1em;
}




.circle-image {
    width: 200px;
    /* 幅（必要に応じて調整） */
    height: 200px;
    /* 高さ（画像を正方形に） */
    object-fit: cover;
    /* はみ出した部分をトリミング */
    border-radius: 50%;
    /* 丸くする */
}

.ssnaniwa--sns ul {
    display: flex;
    justify-content: center;
}

.ssnaniwa--prof p {
    font-size: 1.8rem;
    font-weight: 600;
    margin: 10px 0;

}

.ssnaniwa--sns ul li {
    padding: 10px;
    margin-top: 10px;
}


.ssnaniwa--sns img {
    width: 80px;
}

.ssnaniwa-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;

}


.ssnaniwa-arrow {
    background-color: var(--main-color);
    color: var(--white-color);
    border-radius: 50%;
    padding: 10px;
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: block;
    text-align: center;
    margin: auto;
}

.ssnaniwa-arrow svg {
    height: auto;
    width: 14px;
}

svg.ssnaniwa-arrow--prev {
    transform: scaleX(-1);
}



.ssnaniwa-progress-wrapper {
    flex-grow: 1;
    margin: 0 15px;
    height: 5px;
    background: #eee;
    border-radius: 3px;
    overflow: hidden;
}

.ssnaniwa-progress-bar {
    height: 100%;
    background-color: var(--main-color);
    width: 0%;
    transition: width 0.3s ease;
}







/*お客さまの声*/
.voice-block {
    background-color: var(--white-color);
    padding-top: 130px;/*なにわ親衛隊表示時削除*/
}


.voice-slider-container {
    margin: 50px auto;
    position: relative;
    overflow: hidden;


}

.voice-slides {
    display: flex;
    transition: transform 0.5s ease-in-out;


}

.voice-slide {
    min-width: 100%;
    border-radius: 8px;
    background-color: var(--bg-color);


}

.voice-slide p {
    padding: 20px;

}

/* コントロールエリア：矢印 + バー */
.voice-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;
}

.voice-arrow {
    background-color: var(--main-color);
    color: var(--white-color);
    border-radius: 50%;
    padding: 10px;
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: block;
    text-align: center;
    margin: auto;
}

.voice-arrow svg {
    height: auto;
    width: 14px;
}

svg.voice-arrow--prev {
    transform: scaleX(-1);
}

.voice-progress-wrapper {
    flex-grow: 1;
    margin: 0 15px;
    height: 5px;
    background: #eee;
    border-radius: 3px;
    overflow: hidden;
}

.voice-progress-bar {
    height: 100%;
    background-color: var(--main-color);
    width: 0%;
    transition: width 0.3s ease;
}





/*エントリー*/
.entry-block {
    background-color: var(--black-color);
}



.entry-block h2 {
    color: var(--white-color);
}

.entry-block h2 span {
    color: var(--white-color);
}

.entry--card {
    background-color: var(--white-color);
    margin-bottom: 10px;
}


.entry---day {
    background-color: var(--bg-color);
    padding: 8px;
    text-align: center;
}

.entry--card dl {
    display: flex;
    padding: 20px;
    justify-content: space-between;
    align-items: center;
}

.entry--card dl dt {
    font-weight: 600;

}

.entry--card dl dt p {
    font-size: 2.0rem;

}

.entry--card dl dd {}

.entry--card dl dd a {
    display: block;
    width: 120px;
    padding: 14px;
    text-align: center;
    font-weight: 600;
}

.entry--link {
    color: var(--white-color);
}

.entry--link p {
    text-align: center;
    margin: 20px 0;
}

.entry--link ul li {
    display: flex;
    font-weight: 600;
    margin-bottom: 8px;
}

.entry--link ul li dl {
    display: flex;
}

.entry--link a {
    color: var(--white-color);
}

.entry--link svg {
    width: 20px;
    margin-right: 10px;
}





/*協賛*/
.sponsors-block {
    background-color: var(--bg-color);
}

.sponsors--card01 ul {
    margin-bottom: 16px;
}

.sponsors--card01 ul li {
    display: block;
    width: 100%;
    height: 174px;
    /*画像を入れた際表示がおかしい場合はautoに*/
    background-color: var(--dammy-color);
    /*画像を入れた際後は削除*/
}

.sponsors--card02 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 16px;
}

.sponsors--card02 ul li {
    display: block;
    flex-basis: calc(50% - 8px);
    height: 110px;
    /*画像を入れた際はautoに*/
    background-color: var(--dammy-color);
    /*画像を入れた際後は削除*/
}

.sponsors--card03 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sponsors--card03 ul li {
    display: block;
    flex: 1 1 calc(33.333% - 10.66px);
    height: 82px;
    /*画像を入れた際はautoに*/
    background-color: var(--dammy-color);
    /*画像を入れた際後は削除*/
}


/*総合トップへ戻る*/

.link-sougou {
    border-top: 1px solid;
    border-color: var(--border-color);
}

.link-sougou a {
    display: block;
    padding: 20px;
}

.link-sougou a dl {
    display: flex;
    justify-content: center;
    align-items: center;
}


.link-sougou svg {
    width: 20px;
    margin-right: 10px;
}

/*アイコン*/
.cls-1 {
    fill: var(--sporotsone-color);
}

.cls-1,
.cls-2 {
    stroke-width: 0px;
}

.cls-2 {
    fill: var(--white-color);
}


/*フッター*/

.block-fot {
    background-color: var(--sporotsone-color);
    color: var(--white-color);
    text-align: center;
}


.block-fot .block--card {
    padding: 30px;
    border-bottom: 1px solid;
    border-color: var(--white-color);
}

.block-fot ul li {}

.block-fot ul li a {
    display: block;
    color: var(--white-color);
    border-bottom: 1px solid;
    border-color: var(--white-color);
    padding: 15px 0;
}

p.copy {
    font-size: 1.3rem;
    padding: 30px;
}


/*右サイド*/
footer {
    width: calc((100% - 540px) / 2);
    height: 100vh;
    position: fixed;
    right: 0;
        top: 0;

    background-image: url(../img/bg_fot@2x.png);
    background-repeat: no-repeat;
    background-size: cover;
    /*background-size: 472px;*/
}



.foot-entry {
    width: 100%;
    height: 50%;
    
    
    margin-top: 50%;
    position: absolute;
    bottom: 0;

}


.foot-entry h2 {
    font-family: var(--english-font);
    color: var(--white-color);
    font-size: 5.0rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings:
        "wdth" 75;
    margin-bottom: 40px;
    text-align: center;
}

.foot-entry h2 p {
    line-height: 100%;
}

.foot-entry h2 span {
    font-family: var(--japanese-font);
    color: var(--white-color);
    font-size: 1.7rem;
    font-style: normal;
}



ul.foot-entry--btn {}

.foot-entry a.btn {
    max-width: 280px;
        padding: 12px 16px;
        font-size: 1.8rem;
        font-weight: 800;
        text-align: center;
        display: block;
        margin: auto;
        background-color: var(--white-color);
        border: 2px solid;
        border-color: var(--main-color);
        color: var(--main-color);
        box-shadow: 0 4px 0 rgba(51, 51, 51, 0.2);;
}

.foot-entry a.btn:hover {
    color: var(--white-color);
    background: var(--black-color);
        
}


ul.foot-entry--btn li {
    margin-bottom: 10px;

}


ul.foot-entry--btn li a {
    border: 1px solid;
    border-color: var(--white-color);

}

ul.foot-entry--btn li a dl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;


}

ul.foot-entry--btn li a dl dd svg {
    width: 14px;

}

ul.foot-entry--btn li a dl dd svg .cls-2 {
    fill: var(--main-color);
}

.foot-entry--txt {
    text-align: center;
    color: var(--white-color);
}

.foot-entry--txt p {
    font-size: 1.7rem;
    font-weight: 600;
    padding: 10px;
}

.cls-2 {
    fill: var(--white-color);
}