@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%;
    overflow-x: hidden;
    visibility: visible;
  opacity: 1;

    /* スムーススクロール */
}

.pc {
    display: none !important;
}

body {
    width: 100%;
    font-size: 1.5rem;
    line-height: 22.5px;
    color: #202020;

    margin: auto;

    font-family: var(--japanese-font);
    font-optical-sizing: auto;
    font-weight: 400;

    position: relative;
    font-feature-settings: "palt";
    letter-spacing: 1px;
    overflow-x: hidden;

}

body.loading {
    width: 100%;
    overflow-x: hidden;
  }



/* フォント */

/*ボタン*/
.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 {
    margin: auto;

    background-attachment: fixed;
    background-size: cover;
    background-position: center;


}

ul {
    list-style: none;
}

.pc {
    display: none;
}







.header-btn-entry {}

.header-btn-entry dl {}

.header-btn-entry dl dt img {
    width: 35px;
}

.header-btn-entry dl dd {
    color: var(--white-color);
}

/* 共通 */

section {}

a {
    color: #333333;
}

a:hover {
    opacity: 0.5;
}

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

section h2 span {
    font-family: var(--japanese-font);
    color: var(--black-color);
    font-size: 1.4rem;
    font-style: normal;
    margin-left:0px;
    margin-top: 10px;
}

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;
}



/* フォント */





body .body-inner {

    margin: auto;

    background-attachment: fixed;
    background-size: cover;
    background-position: center;


}

ul {
    list-style: none;
}

h2 img {
    zoom: .5;
}

img {
    zoom: .5;
}





/* ローディング画面 */
#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;
  }
  
  /* 画像はバーの上に表示して、バーと100px空ける */
  .loader-image {
    width: 30px;
    position: absolute;
  left: 0;
  top: -100px; /* バーの上、100px空ける */
  height: 40px;
  transition: left 0.1s;
  z-index: 1001;
  }

  .progress-text {
    width: auto;
    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;
      text-align: center;
    }

    #mainContent.fade-in {
      display: block;
      opacity: 1;
      transform: translateY(0);
    }


   





/* ヘッダー */
header {
    
    position: relative;
    background-color: var(--white-color);
    z-index: 10;
  }
  



  .site-header {
    width: 100%;
    position: fixed;
    z-index: 10;
  }
  
  /* ハンバーガー */

.hamburger  {
    width: 25%;
    width: fit-content;
  position: relative;
  z-index: 11;
  margin: auto;

}

  .hamburger dl {
    width: 100%;
    display: flex;
        align-items: center;
        cursor: pointer;
        justify-content: center;
  }
  
  .hamburger .bar {
    width: 25px;
    height: 2px;
    background-color: var(--main-color);
    margin: 4px 0;
    transition: 0.3s ease;
    transform-origin: center; 
  }


  .hamburger .label {
    font-size: 14px;
    font-weight: bold;
    margin-left: 10px;
    color:  var(--main-color);
    transition: 0.3s ease;
  }
  
 
/* アニメーション：開いたときのバツ */
.hamburger.active .top {
    transform: rotate(45deg);
    position: relative;

  }
  
  .hamburger.active .bottom {
    transform: rotate(-45deg);
    position: relative;
    
  }
  
  .hamburger span {
    margin-left: 10px;
    font-size: 14px;
    font-weight: bold;
    color: var(--main-color);
  }


  /* アニメーション用 */
.hamburger.active .top {
    transform: rotate(45deg) translateY(3px);
    top: 1.5px;
  }
  
  .hamburger.active .bottom {
    transform: rotate(-45deg) translateY(-3px);
  }
  
  
  /* ナビメニュー */
  .nav {
    position: absolute;
    top: -600px;
    left: 0;
    right: 0;
    background-color: var(--white-color);
    border-bottom: 1px solid;
    transition: top 0.3s ease;
    z-index: 9;
    font-style: normal;
  }
  
  .nav ul {
    list-style: none;
    margin: 0;
    padding: 10px 20px;
    background-color: var(--black-color);
  }
  
  .nav li {
    margin: 10px 0;
    text-align: center;
    display: block;
    border-bottom: 1px solid;
    border-color: var(--border-color);
    padding-bottom: 10px;
  }
  
  .nav a {
    text-decoration: none;
    color: var(--white-color);
    font-weight: 600;
    
  }
  
  /* 表示状態 */
  .nav.show {
    top: 60px;
  }
  






section {
    padding-top: 70px;
    padding-bottom: 70px;

}


.block-inner {
    margin: auto;
    padding: 0 20px;
}



/* ヘッダー */
header {
        height:60px;
        display: flex;
        position: relative;
        align-items: center;
        position: fixed;
        top: 0;
        right: 0;
        font-family: var(--english-font);
        font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    font-variation-settings: "wdth" 75;
    }



.header-btn-entry {
    background-color: var(--main-color);
    width: 25%;
    padding: 19px 0;
}

.header-btn-entry a {
    
}


.header-btn-entry a dl {
    display: flex;
    color: var(--white-color);
    justify-content: center;
    gap: 10px;
}


h1 {
    width: 50%;
    text-align: center;
}

h1 img {

    width: 90%;
}










/* メイン */

main {
    padding-top: 60px;
    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: 6.1rem;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: italic;
    line-height: 90%;

}

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






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

.main-entry {
    position: absolute;
    bottom: 150px;
    right: 0;
    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;
    
}

.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(--white-color) !important;
    fill: var(--main-color);
    letter-spacing: 0.11em;
    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: -150px;
    position: relative;
    

    margin-bottom: 70px;
}

.kaisai-card {
    padding-top: 20px;
    padding-right: 20px;
    padding-bottom: 0px;
    padding-left: 20px;

    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;
    
}

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

.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;
    margin-top: 10px;
}

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

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

}

.kaisai-count {
    background-color: var(--sub-color);
    margin-top: 20px;
    align-items: center;
    padding :10px;

}

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

/* カウントダウン
 */

#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);
    justify-content: center;
   
}

.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;
    /* 文字間隔 */
}

.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::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: 220px;
    text-align: center;
}

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

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

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

}

.feature-block02 {
    width: 100%;
    height: 200px;
    color: var(--white-color);
    background-image: url(../img/bg_feature02.jpg);
    background-size: contain;/*文字中央に*/
    background-position:right;

}

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

}

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

}

.feature-card {
    display: block;
    padding: 20px;

}

.feature-card-right {
    display: block;
    padding: 20px;
}

.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: 10px;

}

.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;
    gap: 10px;
    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.7rem;
        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.4rem;
        letter-spacing: -0.02em;

    }

    .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);
            justify-content: space-between;
}

.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 {
    width: 60%!important;
    background: var(--bg-color);
    font-weight: bold;
}



/* 当日の流れ */

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


.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: 10px;
    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: 8px;

  }

  .tab-buttons button {
    flex: 1 1 35%;
    font-size: 1.4rem;
    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;
  }
  .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-color: 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 {
    bottom: -130px;
    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 auto;
}

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

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

.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;
}

.guest---sns ul li dl{
    display: block;
}

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

}


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





.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: 200px;/*なにわ親衛隊表示時削除*/
}


.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;
            flex-direction: column;
            text-align: center;
        }

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

}

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

.entry--card dl dd{
    margin-top: 10px;
   
}
.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;
    bottom: 0;

    background-color: var(--main-color);

    background-image: url(../img/bg_img02.svg);
    background-repeat: no-repeat;
    background-size: 472px;
    background-position: top 20px right;
}



.foot-entry {
    width: 100%;
    height: 50%;
    background-size: cover;
    background-image: url(../img/bg_entry.svg);
    background-repeat: no-repeat;
    background-position-x: center;
    background-position-y: top;
    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: 15px;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    display: block;
    margin: auto;
}

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;

}

.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);
}