/* ナビゲーション全体 */
body {
    justify-self: center;
    width: 1366px;
    overflow-x: hidden;
}
header {
  z-index: 100;
}
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 70px;
    position: relative;
}

.headerTitle {
    font-size: 24px;
    font-weight: bold;
    font-family: "Oswald", sans-serif;
    color: #444;
}

/* ハンバーガーメニュー */
.gMenu {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    z-index: 99;
}
.gMenu .menu li a:hover {
  filter: brightness(0) saturate(100%) invert(27%) sepia(96%) saturate(7493%) hue-rotate(356deg) brightness(103%) contrast(101%);
}
/* チェックボックス（非表示） */
.menu-btn {
    display: none;
}

/* ハンバーガーアイコン（オープン） */
.menu-icon-open {
    position: fixed;
    top: 45px;
    right: 30px;
    cursor: pointer;
    z-index: 100;
}

/* ハンバーガーアイコン（クローズ） */
.menu-icon-close {
    position: fixed;
    top: 45px;
    right: 30px;
    cursor: pointer;
    z-index: 100;
    display: none; /* 初期状態では非表示 */
}

/* メニューの内容 */
.gMenu .menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    overflow: auto;
    /* transitionをなくして、パッと表示する */
    display: none; 
    z-index: 90;
    padding: 0;
    margin: 0;
}

/* チェックボックスがチェックされたらメニューを表示 */
.gMenu .menu-btn:checked ~ .menu {
    display: block;
}

/* メニュー開閉に応じたアイコン表示切替 */
.gMenu .menu-btn:checked ~ .menu-icon-open {
    display: none;
}

.gMenu .menu-btn:checked ~ .menu-icon-close {
    display: block;
}

.gMenu .menu li {
    border-bottom: 1px solid #ccc;
    padding: 16px 24px;
    list-style: none;
    text-align: left;
}

.gMenu .menu li:first-of-type {
    padding-top: 120px;
    color: #ff0000;
}

.gMenu .menu li a {
    display: flex;
    font-size: 20px;
    color: #444;
    text-decoration: none;
    font-family: Shippori Mincho, serif;
    align-items: center;
    justify-content: space-between;
}

/* ソーシャルリンク */
.social-links {
    text-align: center;
    border: none !important;
    margin-top: 60px;
    display: flex;
    justify-content: center;
}
.logo {
    position: fixed;
    z-index: 200;
    font-family: "Oswald", sans-serif;
    font-size: 32px;
    color: #E0E0E0;
}
.social-links a {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin: 0 10px;
    background-color: #f1f1f1;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.form {
    display: flex;
    justify-content: center;
    margin-bottom: 200px;
}
.privacyText span {
    border-bottom: #303030 solid 1px;
}

.footerbackground {
    background-image: url("../images/fotter.png");
    max-width: 100%;
    height: 598px;
    display: flex;
    justify-content: space-between;
    background-repeat: no-repeat;
}
footer {
color: #E0E0E0;
}
.footerSns {
    gap: 30px;
    padding-left: 40px;
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
    align-items: flex-start;
}
.footerSns h2 {
    font-size: 32px;
}
.snsIcon {
    display: flex;
    gap: 20px;
}
.copyright {
    font-size: 12px;
    margin-bottom: 20px;
}
.footermenu ul {
    margin-top: 82px;
    display: flex;
    margin-right: 38px;
    gap: 20px;
    flex-direction: column;
    font-size: 18px;
    font-family: 'Oswald';
}
.toTop button img {
    position: fixed;
    right: calc(50% - 658px);
    bottom: 60px;
    z-index: 89;
    opacity: 0.8;
    margin: 0px;
}
 .container {
    display: flex;
    gap: 118px;
    overflow: hidden;
    width: 1366px;
    font-family: "Shippori Mincho", serif;
    height: 632px;
}
.sea {
    display: flex;
    width: 1366px;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 415px;
}
 .image-container {
 position: relative;
 margin-right: 10px; /* 画像間のスペース */
 }
 .image-container img {
 display: block;
 }
 .text-bottom-left {
    position: relative;
    left: 40px;
    color: white;
    font-size: 36px;
    transform: translateY(-520px);
 }
 .text-vertical-right {
    position: relative;
    color: #000000;
    font-size: 60px;
    background-color: white;
    padding: 30px 20px;
    writing-mode: vertical-lr;
    transform: translateY(-520px);
    right: 50px;
 }
 .text-vertical-left {
    position: relative;
    color: #000000;
    font-size: 60px;
    background-color: white;
    padding: 30px 20px;
    writing-mode: vertical-lr;
    transform: translateY(-420px);
    left: 850px;
 }
 .newsContent {
    display: flex;
    width: 1020px;
    gap: 45px;
    padding: 20px 0;
    border-bottom: 1px solid #A1A1A1;
 }
 .news {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 150px auto 200px auto;
 }
 .news1 {
    padding-bottom: 10px;
    border-bottom: 1px solid #A1A1A1;
    width: 1020px;
 }
 .sea img {
    width: 963px;
    height: 700px;
 }
 .seaText {
    padding: 100px 50px;
    background-color: #ffffff;
    width: 946px;
    right: 542px;
    position: relative;
    transform: translateY(230px); 
 }
 .seaText1 {
    width: 846px;
 }
 .seaText2 {
    border-top: 1px solid #A1A1A1;
    border-bottom: 1px solid #A1A1A1;
    padding: 80px 0;
 }
 .seaText2 h2 {
    font-size: 32px;
    padding-bottom: 30px;
 }
 .seaText2 h3 {
    font-size: 32px;
    padding-bottom: 30px;
    font-family: 'shippori Mincho', serif;
 }
 .seaText1 h2 {
    margin-bottom: 10px;
    font-size: 14px;
    font-family: 'Oswald';
 }
 .img3 img {
    width: 151px;
    height: 338px;
    position: relative;
    top: -290px;
 }
 .img1 img {
    width: 358px;
    height: 425px;
    position: relative;
    top: -110px;
    left: -58px;
 }
 .img2 img {
    width: 636px;
    height: 636px;
    position: relative;
    top: -40px;
 } 
 .activityImg {
    background-color: #F2F2F2;
    width: 1250px;
    height: 1450px;
 }
 .activity {
    display: flex;
    justify-content: flex-end;
 }
 .img4 {
    display: flex;
    gap: 80px;
    justify-content: flex-end;
 }
 .img7 img {
    top: -500px;
 }
 .text1 h2 {
    font-size: 140px;
    writing-mode: vertical-lr;
    position: relative;
    right: -60px;
    top: -500px;
    font-family: shippori Mincho;
    color: #E0E0E0;
 }
 .text1{
    display: flex;
    gap: 80px;
    flex-direction: column;
 }

 .skyText2 {
   border-bottom: 1px solid #A1A1A1;
   border-top: 1px solid #A1A1A1;
   padding: 80px 0;
 }
 .skyText2 p {
   line-height: 28px;
 }
 .skyText2 h3 {
   font-size: 32px;
    padding: 0 0 30px 0;
    font-family: shippori Mincho, serifs;
 }
 .skyText1 h2 {
   font-size: 14px;
   padding-bottom: 10px;
 }
 .link a {
   display: flex;
   align-items: center;
   gap: 14px;
   margin-top: 30px;
 }
 .activityText {
    padding: 100px 50px;
    width: 946px;
    background-color: white;
    height: 592px;
    transform: translateY(-310px);
 }



 /* CSSコード例 */
.mainImageContainer {
    width: 865px;
    height: 539px;
    margin-bottom: 40px;
    overflow: hidden;
}

#mainImage {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.thumbnailContainer {
    display: flex;
    gap: 59px;
    justify-content: center;
}

.thumbNail {
    width: 173px;
    height: 173px;
    object-fit: cover;
    cursor: pointer;
}
.sectionImage {
   display: flex;
    flex-direction: column;
    align-items: center;
    right: 155px;
    position: relative;
    top: -50px;
    z-index: 20;
}
.section {
   width: 1250px;
   height: 1204px;
   background-color: #F2F2F2;
   margin-bottom: 450px;
}
 .text2 h2 {
    font-size: 140px;
    writing-mode: vertical-lr;
    position: relative;
    right: -60px;
    top: -500px;
    font-family: shippori Mincho;
    color: #E0E0E0;
 }
 .text2{
    transform: translateY(-310px);
    display: flex;
    gap: 80px;
    flex-direction: column;
    position: relative;
    right:-15px;
    align-items: flex-end;
 }
 .activityText2 {
    left: 450px;
    position: relative;
   transform: translateY(-450px);
   }
   
   /* フェードインアニメーションのCSS */
.fadeInContainer {
    opacity: 0;
    transform: translate(50px, -50px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

/* スクロールで表示された時の状態 */
.fadeInContainer.isVisible {
    opacity: 1;
    transform: translate(0, 0);
}

/* 各画像の表示タイミング */
.fadeInItem {
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.firstItem {
    transition-delay: 0.2s;
}

.secondItem {
    transition-delay: 0.6s;
}

.thirdItem {
    transition-delay: 1s;
}
.play {
   transform: translateY(450px);
}
.section2 {
    display: flex;
    width: 1366px;
    flex-direction: column;
    align-items: flex-end;
}
.section2Image {
   width: 1366px;
    height: 565px;
    overflow: hidden;
    position: relative;
    bottom: 900px;
}

.section2Image ul {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 1s ease-in-out;
  gap: 80px;
}

.section2Image ul li {
  flex-shrink: 0;
}

.section2Image ul li img {
  width: 788px;
  height: 565px;
  object-fit: cover;
}
.section2text {
    background-color: #f2f2f2;
    width: 1213px;
    height: 1058px;
}
.text3 {
    transform: translateY(400px);
    display: flex;
    gap: 20px;
    flex-direction: column;
    position: relative;
    right: 100px;
    align-items: flex-end;
    z-index: 10;
}
.text3 h2 {
    font-size: 140px;
    writing-mode: vertical-lr;
    position: relative;
    right: -60px;
    top: -500px;
    font-family: shippori Mincho;
    color: #E0E0E0;
}
.activityText3 {
   padding: 100px 50px;
    width: 946px;
    background-color: white;
    z-index: 10;
    left: -70px;
    position: relative;
    height: 592px;
    bottom: -220px;
}
.section4title {
   font-size: 36px;
   font-family: shippori Mincho, serif;
   line-height: 72px;
}
.text4detail {
    border-top:1px solid #A1A1A1;
    border-bottom:1px solid #A1A1A1;
    padding: 80px 0;
}
.text4detail h3 {
    font-size: 32px;
    padding-bottom: 30px;
    font-family: shippori Mincho, serif;
}
.text4 {
    width: 1250px;
}
.text4detail p span {
    border-bottom: 1px solid #A1A1A1;
}
.text4detail p {
    line-height: 28px;
    font-size: 14px;
}
.section4text {
    margin: 145px auto 100px auto;
    width: 1250px;
}
.section4Image {
    overflow: hidden;
    display: flex;
    justify-content: center;
}
#slideList2 {
    display: flex;
    gap: 80px;
    position: relative;
    bottom: -50px;
}
#slideList2 li img {
    width: 500px;
    height: 293px;
    object-fit: cover;
}
.section4Frame {
    width: 904px;
    height: 393px;
    border: 1px solid #303030;
}
.section4title {
    margin: 0 0 100px 50px;
}


.contactFormContainer {
    background-color: #ffffff;
    border-radius: 5px;
    width: 800px;
    box-sizing: border-box;
}

.formTitle {
    text-align: center;
    font-size: 28px;
    color: #333;
    margin-bottom: 40px;
    position: relative;
    padding-bottom: 10px;
}

.formRow {
    display: flex;
    align-items: flex-start;
    margin-bottom: 25px;
    gap: 70px;
}

.formLabel {
    flex: 0 0 180px;
    color: #555;
    font-size: 14px;
    padding-top: 12px;
}

.requiredTag {
    background-color: #e74c3c;
    color: #ffffff;
    font-size: 10px;
    padding: 6px 6px;
    border-radius: 3px;
    margin-left: 10px;
    display: inline-block;
    line-height: 1;
}

.formInput {
    width: 550px;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    color: #333;
    background-color: #f9f9f9;
}

.formInput:focus {
    border-color: #a0a0a0;
    outline: none;
    background-color: #fff;
}

.textareaInput {
    resize: vertical;
    min-height: 120px;
}

.privacyPolicyConsent {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 40px;
    margin-bottom: 30px;
}

.privacyPolicyConsent input[type="checkbox"] {
    margin-right: 10px;
    transform: scale(1.2);
}

.privacyText {
    font-size: 15px;
    color: #555;
    cursor: pointer;
}

.submitButton {
    display: block;
    width: 250px;
    padding: 15px 20px;
    margin: 0 auto;
    background-color: #f08080;
    color: #ffffff;
    border: none;
    border-radius: 30px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease;
    text-align: center;
}

.submitButton:hover {
    background-color: #e06060;
}
