@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Sawarabi+Mincho&display=swap");
* {
  font-family: "M PLUS Rounded 1c", sans-serif;
}

img {
  width: 100%;
}

/*------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*---------------------- max-width: 767px ----------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .btn-pdf {
    display: inline-block;
    background-color: #5ABC9B; /* アクセントカラー */
    color: #fff;
    width: 60%; /* ボタンの横幅を固定（お好みの長さに調整してください） */
    padding: 16px 0; /* 左右のpaddingは0にし、widthで幅を制御します */
    text-align: center; /* 固定した幅の中で文字を中央に寄せる */
    text-decoration: none;
    border-radius: 50px; /* 角丸ボタン */
    font-weight: bold;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(69, 151, 125, 0.3);
    margin: 2rem auto;
  }
  .btn-pdf:hover {
    background-color: #4da589; /* ホバー時は少しだけ濃く */
    transform: translateY(-2px); /* 少し浮き上がる演出 */
    box-shadow: 0 6px 20px rgba(69, 151, 125, 0.4);
  }
  .eventtitle {
    width: 40%;
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .time {
    width: 35%;
    position: absolute;
    top: -130%;
    right: 5%;
    transform: translate(-50%, -30%);
    animation: floating-y 2s ease-in-out infinite alternate-reverse;
  }
  .time2 {
    width: 60%;
    position: absolute;
    top: -180%;
    right: 5%;
    transform: translate(-50%, -30%);
    animation: floating-y 1.6s ease-in-out infinite alternate-reverse;
  }
  @keyframes floating-y {
    0% {
      transform: translateY(-10%);
    }
    100% {
      transform: translateY(10%);
    }
  }
  header {
    background: url(img/head-bk.png) top no-repeat;
    background-size: 160%;
    padding: 0 0 50px 0;
  }
  header #header-contents {
    width: 90%;
    margin: 0 auto;
    position: relative;
  }
  header #header-contents h1 {
    width: 17%;
  }
  header #header-contents h2 {
    width: 73%;
    margin: -5rem 0 0 5rem;
  }
  header #header-contents p {
    text-align: center;
    margin-top: 1.3rem;
    font-size: 1.7rem;
    font-weight: 500;
    letter-spacing: 0.1rem;
    line-height: 0.8;
    color: #fff;
  }
  header #header-contents p .date-small {
    font-size: 1rem;
  }
  header #header-contents #head-place {
    width: 40%;
    position: absolute;
    right: -6%;
    bottom: -4rem;
  }
  #intro {
    background: url(img/intro-bk.png) top no-repeat;
    background-size: 120%;
  }
  #intro #intro-contents {
    width: 90%;
    margin: 0 auto;
    padding-top: 2rem;
  }
  #intro #intro-contents h3 {
    font-size: 1.4rem;
    font-weight: 300;
    text-align: center;
    letter-spacing: 0.2rem;
    line-height: 2;
  }
  #intro #intro-contents p {
    margin-top: 2rem;
    text-align: center;
    font-size: 0.9rem;
    line-height: 2.7;
  }
  #intro #intro-pres {
    width: 70%;
    margin: 0 auto;
    padding-top: 1rem;
  }
  #intro #intro-pres .intro-pres-box {
    margin-bottom: 1rem;
  }
  #event {
    margin-top: 3rem;
  }
  #event .ev-pic {
    width: 40%;
  }
  #event #event1 {
    background-image: linear-gradient(45deg, rgba(160, 216, 198, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event1 .border-ev1 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #4da589;
    position: relative;
  }
  #event #event1 #event1-contents {
    width: 95%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 3rem auto 1rem;
  }
  #event #event1 #event1-contents #left {
    order: 1;
    width: 48%;
  }
  #event #event1 #event1-contents #right {
    order: 2;
    width: 48%;
  }
  #event #event1 #event1-contents #center {
    order: 3;
    margin: 1.6rem auto 0;
  }
  #event #event1 #event1-contents #center h2 {
    width: 90%;
    margin: 2rem auto 0;
  }
  #event #event1 #event1-contents #center h3 {
    width: 60%;
    margin: 43px auto 0;
  }
  #event #event1 #event1-contents #center #thema {
    width: 80%;
    margin: 1.5rem auto 0;
  }
  #event #event1 #event1-contents #center #discri {
    font-size: 0.8rem;
    margin-top: 1rem;
  }
  #event #event1 #event1-contents p {
    text-align: center;
    letter-spacing: 0.13rem;
  }
  #event #event1 #event1-contents p .spon {
    padding-bottom: 0.2rem;
    border-bottom: solid 0.06rem #000;
  }
  #event #event1 #event1-contents p span#shimane {
    font-size: 1.1rem;
  }
  #event #event2 {
    background-image: linear-gradient(45deg, rgba(240, 142, 112, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event2 .border-ev2 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #f08e70;
    position: relative;
  }
  #event #event2 #event2-contents {
    width: 95%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 2rem 0 0 0;
  }
  #event #event2 #event2-contents #left {
    order: 2;
    background: url(img/event2-bk.png) center no-repeat;
    background-size: 100%;
    margin: 0 auto;
  }
  #event #event2 #event2-contents #left h2 {
    width: 90%;
    margin: 1.5rem auto 0;
  }
  #event #event2 #event2-contents #left h3 {
    width: 90%;
    margin: 1rem auto 0;
  }
  #event #event2 #event2-contents #left p {
    margin-top: 42px;
    padding-bottom: 20px;
    text-align: center;
    font-size: 0.8rem;
  }
  #event #event2 #event2-contents #right {
    order: 1;
    width: 60%;
    margin: 1rem auto 0;
  }
  #event #taiken {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.5), rgba(214, 211, 231, 0.5));
    padding: 80px 0 70px;
  }
  #event #taiken .border-taiken {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #ee969f;
    position: relative;
  }
  #event #taiken #taiken-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 4rem;
    padding: 0 0 20px 0;
  }
  #event #taiken #taiken-contents #left {
    order: 2;
    width: 90%;
    margin: 0 auto;
    margin-top: 1rem;
  }
  #event #taiken #taiken-contents #right {
    order: 1;
    width: 90%;
    margin: 0 auto;
  }
  #event #taiken #taiken-contents #right h2 {
    margin: 0 auto;
  }
  #event #taiken #taiken-contents #right p {
    margin-top: 36px;
    font-size: 0.9rem;
    text-align: center;
    letter-spacing: 0.01rem;
  }
  #vender {
    background-image: linear-gradient(45deg, rgba(129, 186, 192, 0.5), rgba(255, 247, 157, 0.5));
    padding: 80px 0 90px;
  }
  #vender .border-shutten {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #81bac0;
    position: relative;
  }
  #vender #vender-contents {
    width: 90%;
    margin: 0 auto;
    padding: 100px 0 20px;
  }
  #vender #vender-contents h2 {
    width: 80%;
    margin: 0 auto;
  }
  #vender #vender-co {
    margin-top: 45px;
  }
  #vender #vender-co .vender-box {
    width: 90%;
    margin: 0 auto 1rem;
  }
  #vender #vender-detail {
    width: 70%;
    margin: 3rem auto 0;
  }
  /*  --- 協賛セクション ---  */
  .kyosan {
    padding: 70px 0;
    text-align: center;
  }
  .br-tablet, .br-mobile {
    display: none; /* PCでは改行タグを無効にする */
  }
  .kyosan h3 {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }
  .kyosan-container {
    width: 80%;
    margin: 1rem auto 0;
  }
  .kyosan-tier {
    padding: 30px 0;
  }
  .kyosan-divider {
    border: none;
    border-top: 1px solid #ccc; /* 画像に合わせた細いグレーの線 */
    margin: 0;
  }
  .tier-l {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .tier-l a {
    width: 45%;
  }
  .tier-m {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .tier-m a {
    width: 30%;
  }
  .tier-s {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .tier-s .kyosan-item {
    width: 22%;
    margin-bottom: 0.5rem;
  }
  .chushaku {
    width: 90%;
    margin: 0 auto;
    font-size: 0.9rem;
    line-height: 1.4;
  }
  #access {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.3), rgba(233, 183, 119, 0.3), rgba(96, 190, 160, 0.3));
    padding: 6rem 0 5rem;
    position: relative;
  }
  #access #access-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #access #access-contents #access-left {
    order: 2;
    text-align: center;
  }
  #access #access-contents #access-left h2 {
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.1rem;
    position: absolute;
    top: 2rem;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  #access #access-contents #access-left h3 {
    margin-top: 1rem;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0.1rem;
  }
  #access #access-contents #access-left p {
    margin: 27px 0 0;
    font-weight: 300;
  }
  #access #access-contents #access-left #access-map {
    width: 70%;
    order: 1;
    margin: 2rem auto 0;
  }
  #access #access-contents #access-right {
    width: 100%;
  }
  #event-concept {
    background: url(img/nayami-bk.jpg) no-repeat;
    background-size: 100%;
    padding: 8rem 0 3rem;
  }
  #event-concept #event-concept-contents {
    width: 90%;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h2 {
    width: 90%;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h3 {
    margin-top: 4rem;
    font-family: "Sawarabi Mincho", serif;
    font-weight: 300;
    text-align: center;
    font-size: 1.4rem;
    letter-spacing: 0.2rem;
  }
  #event-concept #event-concept-contents p {
    margin-top: 2rem;
    font-size: 0.9rem;
    line-height: 2;
    text-align: center;
  }
  #event-concept #event-concept-contents .consultation-btn-area {
    text-align: center;
  }
  #event-concept #event-concept-contents #sns {
    width: 20%;
    display: flex;
    justify-content: space-between;
    margin: 4rem auto 0;
  }
  #event-concept #event-concept-contents #sns .sns-icon {
    width: 48%;
    margin-left: -30px;
  }
  #contact {
    margin-top: 4rem;
  }
  #contact #contact-contents {
    width: 90%;
    margin: 0 auto;
  }
  #contact #contact-contents h2 {
    text-align: center;
    font-weight: 500;
    font-size: 1.4rem;
    letter-spacing: 0.1rem;
  }
  #contact {
    /* --- 1. お問い合わせセクション全体 --- */
  }
  #contact .contact {
    padding: 50px 0 0;
    text-align: center; /* タイトル、住所を中央へ */
  }
  #contact {
    /* タイトルを中央に固定 */
  }
  #contact .contact .section-title {
    display: block;
    text-align: center;
    width: 100%;
    margin-bottom: 30px;
  }
  #contact {
    /* 住所の斜体解除 */
  }
  #contact .contact-address {
    font-style: normal;
    margin-bottom: 15px;
  }
  #contact {
    /* --- ロゴエリア --- */
  }
  #contact .contact-logos-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 0;
    margin-bottom: 20px;
  }
  #contact .contact-logo img, #contact .josei-logo img {
    height: auto;
    display: inline-block;
    vertical-align: middle;
  }
  #contact .contact-logo img {
    width: 250px;
  }
  #contact .josei-logo img {
    width: 80px;
  }
  #contact {
    /* ---  TEL / MAIL エリア（ここがポイント！） --- */
  }
  #contact .contact-list {
    margin-top: 10px;
    display: block; /* 塊を中央に配置 */
    text-align: center; /* 中身のテキストを中央揃えに */
  }
  #contact .contact-item {
    display: block; /* flexを解除。これで各行が独立して中央に寄ります */
    margin-bottom: 10px;
  }
  #contact {
    /* TEL/MAILのラベルと数字を「文字」として扱う */
  }
  #contact .contact-list dt,
  #contact .contact-list dd {
    display: inline; /* 横並びを保ちつつ文字として中央に寄せる */
  }
  #contact .contact-list dt {
    font-weight: bold;
    color: #5ABC9B;
    font-size: 1rem;
    margin-right: 8px;
  }
  #contact .contact-list dd a {
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    text-decoration: none;
  }
  #spons {
    width: 90%;
    margin: 0 auto;
    margin-top: 4rem;
  }
  #spons h2 {
    text-align: center;
    font-weight: 500;
    font-size: 1.4rem;
    letter-spacing: 0.1rem;
  }
  #spons p {
    margin-top: 2rem;
    font-size: 1rem;
    text-align: center;
  }
  footer {
    background-image: linear-gradient(45deg, rgb(238, 150, 159), rgb(233, 183, 119), rgb(96, 190, 160));
    margin-top: 102px;
    padding: 42px 0;
    text-align: center;
  }
  footer p {
    color: #fff;
  }
  /* --- 上に戻るボタン全体のスタイル --- */
  .back-to-top {
    position: fixed;
    right: 10%; /* SCROLL表示と同じ位置 */
    bottom: 50px;
    z-index: 99;
    opacity: 0; /* 最初は隠しておく */
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s, transform 0.3s ease;
  }
  /* 表示された時の状態 */
  .back-to-top.is-show {
    opacity: 1;
    visibility: visible;
  }
  /* ボタンのデザイン（円形に細い矢印） */
  .back-to-top a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #666;
  }
  /* 矢印（細い線で描く） */
  .back-to-top .arrow {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(102, 102, 102, 0.3); /* 薄い円の枠 */
    border-radius: 50%;
    position: relative;
    margin-bottom: 8px;
    background: rgba(255, 255, 255, 0.8); /* 背景を少し白くして視認性を上げる */
    transition: background 0.3s;
  }
  .back-to-top .arrow::before {
    content: "";
    width: 12px;
    height: 12px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .back-to-top .text {
    font-size: 0.8rem;
    letter-spacing: 0.15em;
  }
  /* ホバー時に少し浮く演出（PCのみ） */
  .back-to-top a:hover .arrow {
    background: #fff;
    border-color: #666;
  }
  .back-to-top a:hover {
    transform: translateY(-5px);
  }
}
/*------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*---------------------- max-width: 1279px ----------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .sp {
    display: none;
  }
  .btn-pdf {
    display: inline-block;
    background-color: #5ABC9B; /* アクセントカラー */
    color: #fff;
    width: 320px; /* ボタンの横幅を固定（お好みの長さに調整してください） */
    padding: 16px 0; /* 左右のpaddingは0にし、widthで幅を制御します */
    text-align: center; /* 固定した幅の中で文字を中央に寄せる */
    text-decoration: none;
    border-radius: 50px; /* 角丸ボタン */
    font-weight: bold;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(69, 151, 125, 0.3);
  }
  .btn-pdf:hover {
    background-color: #4da589; /* ホバー時は少しだけ濃く */
    transform: translateY(-2px); /* 少し浮き上がる演出 */
    box-shadow: 0 6px 20px rgba(69, 151, 125, 0.4);
  }
  .eventtitle {
    width: 192px;
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .time {
    width: 25%;
    position: absolute;
    top: -160%;
    right: 10%;
    transform: translate(-50%, -30%);
    animation: floating-y 2s ease-in-out infinite alternate-reverse;
  }
  .time2 {
    width: 40%;
    position: absolute;
    top: -130%;
    right: 0%;
    transform: translate(-50%, -30%);
    animation: floating-y 1.6s ease-in-out infinite alternate-reverse;
  }
  @keyframes floating-y {
    0% {
      transform: translateY(-10%);
    }
    100% {
      transform: translateY(10%);
    }
  }
  header {
    background: url(img/head-bk.png) bottom no-repeat;
    background-size: cover;
    padding: 0 0 50px 0;
  }
  header #header-contents {
    width: 90%;
    margin: 0 auto;
    position: relative;
  }
  header #header-contents h1 {
    width: 12%;
  }
  header #header-contents h2 {
    width: 70%;
    margin: -4rem auto 0;
  }
  header #header-contents p {
    margin-top: 1rem;
    font-size: 3rem;
    text-align: center;
    font-weight: 800;
    letter-spacing: 0.2rem;
    line-height: 0.8;
    color: #fff;
  }
  header #header-contents p .date-small {
    font-size: 1.4rem;
  }
  header #header-contents #head-place {
    width: 33%;
    position: absolute;
    bottom: -4rem;
    right: 0;
  }
  #intro {
    background: url(img/intro-bk.png) top center no-repeat;
    background-size: 100%;
  }
  #intro #intro-contents {
    width: 90%;
    margin: 0 auto;
    padding-top: 70px;
  }
  #intro #intro-contents h3 {
    font-size: 1.8rem;
    font-weight: 300;
    text-align: center;
    letter-spacing: 0.2rem;
  }
  #intro #intro-contents p {
    margin-top: 5rem;
    font-size: 1.3rem;
    text-align: center;
    line-height: 2.7;
  }
  #intro #intro-pres {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
  }
  #intro #intro-pres .intro-pres-box {
    width: 31.8%;
  }
  #event {
    margin-top: 100px;
  }
  #event .ev-pic {
    width: 325px;
  }
  #event #event1 {
    background-image: linear-gradient(45deg, rgba(160, 216, 198, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event1 .border-ev1 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #4da589;
    position: relative;
  }
  #event #event1 #event1-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    align-items: center;
    margin: 70px auto 30px;
  }
  #event #event1 #event1-contents #left {
    order: 1;
    width: 40%;
  }
  #event #event1 #event1-contents #right {
    order: 2;
    width: 40%;
  }
  #event #event1 #event1-contents #center {
    order: 3;
    margin-top: 4rem;
  }
  #event #event1 #event1-contents #center h2 {
    width: 80%;
    margin: 2rem auto;
  }
  #event #event1 #event1-contents #center h3 {
    width: 50%;
    margin: 3rem auto 0;
  }
  #event #event1 #event1-contents #center #thema {
    width: 70%;
    margin: 40px auto 0;
  }
  #event #event1 #event1-contents #center #discri {
    margin-top: 2rem;
    font-size: 1.1rem;
    letter-spacing: 0.2rem;
    line-height: 2;
  }
  #event #event1 #event1-contents p {
    text-align: center;
    letter-spacing: 0.13rem;
  }
  #event #event1 #event1-contents p .spon {
    padding-bottom: 0.2rem;
    border-bottom: solid 0.06rem #000;
  }
  #event #event1 #event1-contents p span#shimane {
    font-size: 1.1rem;
  }
  #event #event2 {
    background-image: linear-gradient(45deg, rgba(240, 142, 112, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event2 .border-ev2 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #f08e70;
    position: relative;
  }
  #event #event2 #event2-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    padding: 55px 0 0 0;
  }
  #event #event2 #event2-contents #left {
    order: 2;
    background: url(img/event2-bk.png) center bottom no-repeat;
    background-size: 100%;
    margin: 2rem auto;
  }
  #event #event2 #event2-contents #left h3 {
    width: 80%;
    margin: 40px auto 0;
  }
  #event #event2 #event2-contents #left p {
    margin-top: 42px;
    padding-bottom: 20px;
    text-align: center;
    font-size: 1.1rem;
    letter-spacing: 0.1rem;
    line-height: 2;
  }
  #event #event2 #event2-contents #right {
    order: 1;
    width: 45%;
    margin: 2rem auto 0;
  }
  #event #taiken {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.5), rgba(214, 211, 231, 0.5));
    padding: 80px 0 70px;
  }
  #event #taiken .border-taiken {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #ee969f;
    position: relative;
  }
  #event #taiken #taiken-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 90px;
    padding: 0 0 20px 0;
  }
  #event #taiken #taiken-contents #left {
    order: 2;
    width: 100%;
    margin-top: 2rem;
  }
  #event #taiken #taiken-contents #right {
    order: 1;
  }
  #event #taiken #taiken-contents #right h2 {
    width: 55%;
    margin: 0 auto;
  }
  #event #taiken #taiken-contents #right p {
    margin-top: 36px;
    font-size: 1.1rem;
    letter-spacing: 0.1rem;
    line-height: 2;
    text-align: center;
  }
  #vender {
    background-image: linear-gradient(45deg, rgba(129, 186, 192, 0.5), rgba(255, 247, 157, 0.5));
    padding: 80px 0 90px;
  }
  #vender .border-shutten {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #81bac0;
    position: relative;
  }
  #vender #vender-contents {
    width: 90%;
    margin: 0 auto;
    padding: 100px 0 20px;
  }
  #vender #vender-contents h2 {
    margin: 0 auto;
  }
  #vender #vender-co {
    display: flex;
    justify-content: space-between;
    margin-top: 45px;
  }
  #vender #vender-co .vender-conta {
    width: 49%;
  }
  #vender #vender-co .vender-box {
    margin-bottom: 13px;
  }
  #vender #vender-detail {
    width: 50%;
    margin: 60px auto 0;
  }
  /*  --- 協賛セクション ---  */
  .kyosan {
    padding: 70px 0;
    text-align: center;
  }
  /* メッセージ部分のベタ塗り設定 */
  .kyosan-title {
    display: block;
    padding: 25px 0; /* ベタ塗りの上下左右の余白 */
    font-size: 1.2rem; /* 文字の大きさ */
    font-weight: 500;
    margin-bottom: 50px; /* 下に並ぶロゴとの間隔 */
    border-radius: 4px; /* 角を少し丸く */
    margin: 0 calc(50% - 50vw);
  }
  .br-tablet, .br-mobile {
    display: none; /* PCでは改行タグを無効にする */
  }
  .kyosan h3 {
    font-size: 1.6rem;
    letter-spacing: 0.1em; /* 文字の間隔を少し広げる */
  }
  /* 協賛セクション全体のコンテナ */
  .kyosan-container {
    width: 90%;
    margin: 0 auto;
    margin: 0 auto;
    padding: 20px 0;
  }
  /* 階層ごとの共通設定 */
  .kyosan-tier {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 40px 0;
  }
  /* 区切り線のデザイン */
  .kyosan-divider {
    border: none;
    border-top: 1px solid #ccc; /* 画像に合わせた細いグレーの線 */
    margin: 0;
  }
  /* --- サイズ別の個別設定 --- */
  /* 大：2枚並びを想定 */
  .tier-l .kyosan-item {
    width: 45%;
  }
  /* 中：3〜4枚並びを想定 */
  .tier-m .kyosan-item {
    width: 240px;
  }
  .tier-b {
    width: 405px;
    margin: 0 auto;
  }
  .tier-s {
    display: flex;
    flex-wrap: wrap;
  }
  .tier-s .kyosan-item {
    width: 15%;
  }
  .chushaku {
    width: 90%;
    margin: 0 auto;
    font-size: 1.1rem;
    line-height: 1.4;
  }
  #access {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.3), rgba(233, 183, 119, 0.3), rgba(96, 190, 160, 0.3));
    padding: 3rem 0;
  }
  #access #access-contents {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  #access #access-contents #access-left {
    width: 45%;
  }
  #access #access-contents #access-left h2 {
    font-size: 2.1rem;
    font-weight: 500;
    letter-spacing: 0.1rem;
  }
  #access #access-contents #access-left h3 {
    margin-top: 52px;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0.1rem;
  }
  #access #access-contents #access-left p {
    margin: 27px 0 0;
    font-weight: 300;
    font-size: 1.1rem;
    letter-spacing: 0.1rem;
    line-height: 2;
  }
  #access #access-contents #access-left #access-map {
    width: 70%;
    margin: 2rem auto 0;
  }
  #access #access-contents #access-right {
    width: 55%;
  }
  #event-concept {
    background: url(img/nayami-bk.jpg) no-repeat;
    background-size: 100%;
    padding: 130px 0;
  }
  #event-concept #event-concept-contents {
    width: 90%;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h2 {
    width: 453px;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h3 {
    margin-top: 88px;
    font-family: "Sawarabi Mincho", serif;
    font-weight: 300;
    text-align: center;
    font-size: 2.5rem;
    letter-spacing: 0.4rem;
  }
  #event-concept #event-concept-contents p {
    margin-top: 60px;
    text-align: center;
    font-size: 1.1rem;
    letter-spacing: 0.1rem;
    line-height: 2;
  }
  #event-concept #event-concept-contents .consultation-btn-area {
    margin-top: 3rem;
    text-align: center;
  }
  #event-concept #event-concept-contents #sns {
    width: 134px;
    display: flex;
    justify-content: space-between;
    margin: 70px auto 0;
  }
  #event-concept #event-concept-contents #sns .sns-icon {
    width: 40px;
    margin-left: -30px;
  }
  #contact {
    margin-top: 100px;
  }
  #contact #contact-contents {
    width: 90%;
    margin: 0 auto;
  }
  #contact #contact-contents h2 {
    text-align: center;
    font-weight: 500;
    font-size: 2.1rem;
    letter-spacing: 0.1rem;
  }
  #contact {
    /* --- 1. お問い合わせセクション全体 --- */
  }
  #contact .contact {
    padding: 50px 0 0;
    text-align: center; /* タイトル、住所を中央へ */
  }
  #contact {
    /* タイトルを中央に固定 */
  }
  #contact .contact .section-title {
    display: block;
    text-align: center;
    width: 100%;
    margin-bottom: 30px;
  }
  #contact {
    /* 住所の斜体解除 */
  }
  #contact .contact-address {
    font-style: normal;
    margin-bottom: 15px;
  }
  #contact {
    /* --- ロゴエリア --- */
  }
  #contact .contact-logos-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 0;
    margin-bottom: 20px;
  }
  #contact .contact-logo img, #contact .josei-logo img {
    height: auto;
    display: inline-block;
    vertical-align: middle;
  }
  #contact .contact-logo img {
    width: 250px;
  }
  #contact .josei-logo img {
    width: 80px;
  }
  #contact {
    /* ---  TEL / MAIL エリア（ここがポイント！） --- */
  }
  #contact .contact-list {
    margin-top: 10px;
    display: block; /* 塊を中央に配置 */
    text-align: center; /* 中身のテキストを中央揃えに */
  }
  #contact .contact-item {
    display: block; /* flexを解除。これで各行が独立して中央に寄ります */
    margin-bottom: 10px;
  }
  #contact {
    /* TEL/MAILのラベルと数字を「文字」として扱う */
  }
  #contact .contact-list dt,
  #contact .contact-list dd {
    display: inline; /* 横並びを保ちつつ文字として中央に寄せる */
  }
  #contact .contact-list dt {
    font-weight: bold;
    color: #5ABC9B;
    font-size: 1rem;
    margin-right: 8px;
  }
  #contact .contact-list dd a {
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    text-decoration: none;
  }
  #spons {
    margin-top: 113px;
  }
  #spons h2 {
    text-align: center;
    font-weight: 500;
    font-size: 2.1rem;
    letter-spacing: 0.1rem;
  }
  #spons p {
    margin-top: 43px;
    text-align: center;
  }
  footer {
    background-image: linear-gradient(45deg, rgb(238, 150, 159), rgb(233, 183, 119), rgb(96, 190, 160));
    margin-top: 102px;
    padding: 42px 0;
    text-align: center;
  }
  footer p {
    color: #fff;
  }
  /* --- 上に戻るボタン全体のスタイル --- */
  .back-to-top {
    position: fixed;
    right: 200px; /* SCROLL表示と同じ位置 */
    bottom: 50px;
    z-index: 99;
    opacity: 0; /* 最初は隠しておく */
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s, transform 0.3s ease;
  }
  /* 表示された時の状態 */
  .back-to-top.is-show {
    opacity: 1;
    visibility: visible;
  }
  /* ボタンのデザイン（円形に細い矢印） */
  .back-to-top a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #666;
  }
  /* 矢印（細い線で描く） */
  .back-to-top .arrow {
    width: 60px;
    height: 60px;
    border: 1px solid rgba(102, 102, 102, 0.3); /* 薄い円の枠 */
    border-radius: 50%;
    position: relative;
    margin-bottom: 8px;
    background: rgba(255, 255, 255, 0.8); /* 背景を少し白くして視認性を上げる */
    transition: background 0.3s;
  }
  .back-to-top .arrow::before {
    content: "";
    width: 15px;
    height: 15px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .back-to-top .text {
    font-size: 0.9rem;
    letter-spacing: 0.15em;
  }
  /* ホバー時に少し浮く演出（PCのみ） */
  .back-to-top a:hover .arrow {
    background: #fff;
    border-color: #666;
  }
  .back-to-top a:hover {
    transform: translateY(-5px);
  }
}
/*------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*----------------------- min-width: 1281px -------------------------------------*/
/*------------------------------------------------------------------------------------*/
@media screen and (min-width: 1280px) {
  .sp {
    display: none;
  }
  .btn-pdf {
    display: inline-block;
    background-color: #5ABC9B; /* アクセントカラー */
    color: #fff;
    width: 320px; /* ボタンの横幅を固定（お好みの長さに調整してください） */
    padding: 16px 0; /* 左右のpaddingは0にし、widthで幅を制御します */
    text-align: center; /* 固定した幅の中で文字を中央に寄せる */
    text-decoration: none;
    border-radius: 50px; /* 角丸ボタン */
    font-weight: bold;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(69, 151, 125, 0.3);
  }
  .btn-pdf:hover {
    background-color: #4da589; /* ホバー時は少しだけ濃く */
    transform: translateY(-2px); /* 少し浮き上がる演出 */
    box-shadow: 0 6px 20px rgba(69, 151, 125, 0.4);
  }
  .eventtitle {
    width: 192px;
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .time {
    width: 200px;
    position: absolute;
    top: 0%;
    right: 24%;
    transform: translate(-50%, -30%);
    animation: floating-y 2s ease-in-out infinite alternate-reverse;
  }
  .time2 {
    width: 310px;
    position: absolute;
    top: 10%;
    right: 20%;
    transform: translate(-50%, -30%);
    animation: floating-y 1.6s ease-in-out infinite alternate-reverse;
  }
  @keyframes floating-y {
    0% {
      transform: translateY(-10%);
    }
    100% {
      transform: translateY(10%);
    }
  }
  header {
    background: url(img/head-bk.png) bottom no-repeat;
    background-size: cover;
    padding: 0 0 100px 0;
  }
  header #header-contents {
    width: 1200px;
    margin: 0 auto;
    position: relative;
  }
  header #header-contents h1 {
    width: 150px;
    margin-left: -70px;
  }
  header #header-contents h2 {
    width: 920px;
    margin: -180px auto 0;
  }
  header #header-contents p {
    margin-top: 1rem;
    font-size: 5rem;
    text-align: center;
    font-weight: 800;
    letter-spacing: 0.2rem;
    line-height: 0.8;
    color: #fff;
  }
  header #header-contents p .date-small {
    font-size: 2rem;
  }
  header #header-contents #head-place {
    width: 300px;
    position: absolute;
    bottom: 0;
    right: 0;
  }
  #intro {
    background: url(img/intro-bk.png) top center no-repeat;
    background-size: 100%;
  }
  #intro #intro-contents {
    width: 1200px;
    margin: 0 auto;
    padding-top: 70px;
  }
  #intro #intro-contents h3 {
    font-size: 1.7rem;
    font-weight: 300;
    text-align: center;
    letter-spacing: 0.2rem;
  }
  #intro #intro-contents p {
    margin-top: 70px;
    text-align: center;
    line-height: 2.7;
    letter-spacing: 0.1rem;
  }
  #intro #intro-pres {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
  }
  #intro #intro-pres .intro-pres-box {
    width: 31.8%;
  }
  #event {
    margin-top: 100px;
  }
  #event .ev-pic {
    width: 325px;
  }
  #event #event1 {
    background-image: linear-gradient(45deg, rgba(160, 216, 198, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event1 .border-ev1 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #4da589;
    position: relative;
  }
  #event #event1 #event1-contents {
    width: 1160px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 70px auto 30px;
  }
  #event #event1 #event1-contents #center {
    width: 450px;
  }
  #event #event1 #event1-contents #center h2 {
    margin-top: 45px;
  }
  #event #event1 #event1-contents #center h3 {
    width: 283px;
    margin: 43px auto 0;
  }
  #event #event1 #event1-contents #center #thema {
    width: 348px;
    margin: 40px auto 0;
  }
  #event #event1 #event1-contents #center #discri {
    margin-top: 20px;
  }
  #event #event1 #event1-contents p {
    text-align: center;
    letter-spacing: 0.13rem;
  }
  #event #event1 #event1-contents p .spon {
    padding-bottom: 0.2rem;
    border-bottom: solid 0.06rem #000;
  }
  #event #event1 #event1-contents p span#shimane {
    font-size: 1.1rem;
  }
  #event #event2 {
    background-image: linear-gradient(45deg, rgba(240, 142, 112, 0.5), rgba(251, 207, 75, 0.5));
    padding: 80px 0 70px;
  }
  #event #event2 .border-ev2 {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #f08e70;
    position: relative;
  }
  #event #event2 #event2-contents {
    width: 1160px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 55px 0 0 0;
  }
  #event #event2 #event2-contents #left {
    background: url(img/event2-bk.png) center bottom no-repeat;
    background-size: 100%;
    width: 844px;
  }
  #event #event2 #event2-contents #left h2 {
    width: 580px;
    margin: 0 auto;
  }
  #event #event2 #event2-contents #left h3 {
    width: 493px;
    margin: 40px auto 0;
  }
  #event #event2 #event2-contents #left p {
    margin-top: 42px;
    padding-bottom: 20px;
    text-align: center;
    font-size: 1rem;
  }
  #event #taiken {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.5), rgba(214, 211, 231, 0.5));
    padding: 80px 0 70px;
  }
  #event #taiken .border-taiken {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #ee969f;
    position: relative;
  }
  #event #taiken #taiken-contents {
    width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 90px;
    padding: 0 0 20px 0;
  }
  #event #taiken #taiken-contents #left {
    width: 660px;
  }
  #event #taiken #taiken-contents #right {
    width: 470px;
  }
  #event #taiken #taiken-contents #right h2 {
    width: 384px;
    margin: 0 auto;
  }
  #event #taiken #taiken-contents #right p {
    margin-top: 36px;
    font-size: 1rem;
    text-align: center;
    letter-spacing: 0.01rem;
  }
  #vender {
    background-image: linear-gradient(45deg, rgba(129, 186, 192, 0.5), rgba(255, 247, 157, 0.5));
    padding: 80px 0 90px;
  }
  #vender .border-shutten {
    padding-top: 3rem;
    border-bottom: 0.2rem solid #81bac0;
    position: relative;
  }
  #vender #vender-contents {
    width: 1200px;
    margin: 0 auto;
    padding: 100px 0 20px;
  }
  #vender #vender-contents h2 {
    width: 728px;
    margin: 0 auto;
  }
  #vender #vender-co {
    display: flex;
    justify-content: space-between;
    margin-top: 45px;
  }
  #vender #vender-co .vender-conta {
    width: 550px;
  }
  #vender #vender-co .vender-box {
    margin-bottom: 13px;
  }
  #vender #vender-detail {
    width: 507px;
    margin: 60px auto 0;
  }
  /*  --- 協賛セクション ---  */
  .kyosan {
    padding: 70px 0;
    text-align: center;
  }
  /* メッセージ部分のベタ塗り設定 */
  .kyosan-title {
    display: block;
    padding: 25px 0; /* ベタ塗りの上下左右の余白 */
    font-size: 1.2rem; /* 文字の大きさ */
    font-weight: 500;
    margin-bottom: 50px; /* 下に並ぶロゴとの間隔 */
    border-radius: 4px; /* 角を少し丸く */
    margin: 0 calc(50% - 50vw);
  }
  .br-tablet, .br-mobile {
    display: none; /* PCでは改行タグを無効にする */
  }
  .kyosan h3 {
    font-size: 1.6rem;
    letter-spacing: 0.1em; /* 文字の間隔を少し広げる */
  }
  /* 協賛セクション全体のコンテナ */
  .kyosan-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px 0;
  }
  /* 階層ごとの共通設定 */
  .kyosan-tier {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 40px 0;
  }
  /* 区切り線のデザイン */
  .kyosan-divider {
    border: none;
    border-top: 1px solid #ccc; /* 画像に合わせた細いグレーの線 */
    margin: 0;
  }
  /* --- サイズ別の個別設定 --- */
  /* 大：2枚並びを想定 */
  .tier-l .kyosan-item {
    width: 350px;
  }
  /* 中：3〜4枚並びを想定 */
  .tier-m .kyosan-item {
    width: 240px;
  }
  .tier-b {
    width: 405px;
    margin: 0 auto;
  }
  .tier-s {
    display: flex;
  }
  .tier-s .kyosan-item {
    width: 15%;
  }
  #access {
    background-image: linear-gradient(45deg, rgba(238, 150, 159, 0.3), rgba(233, 183, 119, 0.3), rgba(96, 190, 160, 0.3));
    padding: 94px 0;
  }
  #access #access-contents {
    width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  #access #access-contents #access-left {
    width: 420px;
  }
  #access #access-contents #access-left h2 {
    font-size: 2.1rem;
    font-weight: 500;
    letter-spacing: 0.1rem;
  }
  #access #access-contents #access-left h3 {
    margin-top: 52px;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0.1rem;
  }
  #access #access-contents #access-left p {
    margin: 27px 0 0;
    font-weight: 300;
  }
  #access #access-contents #access-left #access-map {
    width: 393px;
    margin: 68px auto 0;
  }
  #access #access-contents #access-right {
    width: 745px;
  }
  #event-concept {
    background: url(img/nayami-bk.jpg) no-repeat;
    background-size: 100%;
    padding: 130px 0;
  }
  #event-concept #event-concept-contents {
    width: 1200px;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h2 {
    width: 453px;
    margin: 0 auto;
  }
  #event-concept #event-concept-contents h3 {
    margin-top: 88px;
    font-family: "Sawarabi Mincho", serif;
    font-weight: 300;
    text-align: center;
    font-size: 2.5rem;
    letter-spacing: 0.4rem;
  }
  #event-concept #event-concept-contents p {
    margin-top: 60px;
    text-align: center;
  }
  #event-concept #event-concept-contents .consultation-btn-area {
    width: 360px;
    margin: 60px auto 0;
  }
  #event-concept #event-concept-contents #sns {
    width: 134px;
    display: flex;
    justify-content: space-between;
    margin: 70px auto 0;
  }
  #event-concept #event-concept-contents #sns .sns-icon {
    width: 40px;
    margin-left: -30px;
  }
  #contact {
    margin-top: 100px;
  }
  #contact #contact-contents {
    width: 1200px;
    margin: 0 auto;
  }
  #contact #contact-contents h2 {
    text-align: center;
    font-weight: 500;
    font-size: 2.1rem;
    letter-spacing: 0.1rem;
  }
  #contact {
    /* --- 1. お問い合わせセクション全体 --- */
  }
  #contact .contact {
    padding: 50px 0 0;
    text-align: center; /* タイトル、住所を中央へ */
  }
  #contact {
    /* タイトルを中央に固定 */
  }
  #contact .contact .section-title {
    display: block;
    text-align: center;
    width: 100%;
    margin-bottom: 30px;
  }
  #contact {
    /* 住所の斜体解除 */
  }
  #contact .contact-address {
    font-style: normal;
    margin-bottom: 15px;
  }
  #contact {
    /* --- ロゴエリア --- */
  }
  #contact .contact-logos-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    padding: 0;
    margin-bottom: 20px;
  }
  #contact .contact-logo img, #contact .josei-logo img {
    height: auto;
    display: inline-block;
    vertical-align: middle;
  }
  #contact .contact-logo img {
    width: 250px;
  }
  #contact .josei-logo img {
    width: 80px;
  }
  #contact {
    /* ---  TEL / MAIL エリア（ここがポイント！） --- */
  }
  #contact .contact-list {
    margin-top: 10px;
    display: block; /* 塊を中央に配置 */
    text-align: center; /* 中身のテキストを中央揃えに */
  }
  #contact .contact-item {
    display: block; /* flexを解除。これで各行が独立して中央に寄ります */
    margin-bottom: 10px;
  }
  #contact {
    /* TEL/MAILのラベルと数字を「文字」として扱う */
  }
  #contact .contact-list dt,
  #contact .contact-list dd {
    display: inline; /* 横並びを保ちつつ文字として中央に寄せる */
  }
  #contact .contact-list dt {
    font-weight: bold;
    color: #5ABC9B;
    font-size: 1rem;
    margin-right: 8px;
  }
  #contact .contact-list dd a {
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    text-decoration: none;
  }
  #spons {
    margin-top: 113px;
  }
  #spons h2 {
    text-align: center;
    font-weight: 500;
    font-size: 2.1rem;
    letter-spacing: 0.1rem;
  }
  #spons p {
    margin-top: 43px;
    text-align: center;
  }
  footer {
    background-image: linear-gradient(45deg, rgb(238, 150, 159), rgb(233, 183, 119), rgb(96, 190, 160));
    margin-top: 102px;
    padding: 42px 0;
    text-align: center;
  }
  footer p {
    color: #fff;
  }
  /* --- 上に戻るボタン全体のスタイル --- */
  .back-to-top {
    position: fixed;
    right: 200px; /* SCROLL表示と同じ位置 */
    bottom: 50px;
    z-index: 99;
    opacity: 0; /* 最初は隠しておく */
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s, transform 0.3s ease;
  }
  /* 表示された時の状態 */
  .back-to-top.is-show {
    opacity: 1;
    visibility: visible;
  }
  /* ボタンのデザイン（円形に細い矢印） */
  .back-to-top a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #666;
  }
  /* 矢印（細い線で描く） */
  .back-to-top .arrow {
    width: 60px;
    height: 60px;
    border: 1px solid rgba(102, 102, 102, 0.3); /* 薄い円の枠 */
    border-radius: 50%;
    position: relative;
    margin-bottom: 8px;
    background: rgba(255, 255, 255, 0.8); /* 背景を少し白くして視認性を上げる */
    transition: background 0.3s;
  }
  .back-to-top .arrow::before {
    content: "";
    width: 15px;
    height: 15px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .back-to-top .text {
    font-size: 0.9rem;
    letter-spacing: 0.15em;
  }
  /* ホバー時に少し浮く演出（PCのみ） */
  .back-to-top a:hover .arrow {
    background: #fff;
    border-color: #666;
  }
  .back-to-top a:hover {
    transform: translateY(-5px);
  }
}/*# sourceMappingURL=style.css.map */