:root {
  --primary: #009cff;
  --accent: #ffb100;
  --bg: #f0f9ff;
  --radius: 0.75rem;
  --link-color: #33ccff;
  --warning-color: #ff0000;
  --success-color: #336600;
  --max-content-width: 1020px;
  --spacing-unit: 1.25rem;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 62.5%; }
body {
  font-family: "Noto Sans JP", "Noto Sans Japanese", "游ゴシック Medium", "Yu Gothic Medium", "Hiragino Kaku Gothic ProN", メイリオ, meiryo, sans-serif;
  font-size: 1.6rem;
  line-height: 1.6;
  background: var(--bg);
  color: #333;
  overflow-x: hidden;
  opacity: 0;
  transition: opacity .8s ease;
}
body.page-loaded { opacity: 1; }

a{color:inherit;text-decoration:none}

.main-container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 0 0;
  min-height: 100vh;
}

body::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100vw;
  height: 150px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z' opacity='.25' fill='%2342a5f5'%3E%3C/path%3E%3Cpath d='M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z' opacity='.5' fill='%2364b5f6'%3E%3C/path%3E%3Cpath d='M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,248.8-84.81V0Z' fill='%2390caf9'%3E%3C/path%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center top;
  z-index: -1;
  animation: wave-bottom 8s ease-in-out infinite;
  transform: translateZ(0) translateY(var(--parallax-rate, 0px));
  will-change: transform;
}

@keyframes wave-bottom {
  0%, 100% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(-20px);
  }
}

.header-section {
  position: relative;
  text-align: center;
  padding: 0;
  margin: 0;
  color: #fff;
  overflow: hidden;
}

.summary-section{padding:2.5rem 1rem;background:transparent;border-bottom:.1rem solid #d0e7ff}
.summary-title{font-size:1.6rem;font-weight:700;color:#2874A6;text-align:center;margin-bottom:2rem}
.summary-list{list-style:none;max-width:90rem;margin:0 auto;display:flex;flex-direction:column;gap:.8rem}
.summary-item{display:flex;align-items:flex-start;gap:.8rem;padding:1.2rem 1rem;border-radius:0.2rem;background:#fff;border-left:.4rem solid #5DADE2;box-shadow:0 .3rem .8rem rgba(0,0,0,.05);transition:all .3s ease}
.summary-item:hover{background:#2E86DE;color:#fff;transform:translateY(-2px);box-shadow:0 .5rem 1.5rem rgba(46,134,222,.3)}
.summary-item:hover .summary-date{color:#2E86DE}
.summary-item:hover .summary-text{color:#87CEEB}
.summary-date{font-family:'Courier New',monospace;font-weight:700;color:#2E86DE;white-space:nowrap}
.summary-text{flex:1;font-weight:500}

.content-card {
  background:#fff;
  border-radius: 0.3rem;
  box-shadow:0 1rem 2.5rem rgba(0,0,0,.08);
  margin: 2rem 1rem;
  padding: 2.5rem 2rem;
  overflow:hidden;
  transition:.3s;
}
.content-card:hover{box-shadow:0 1.5rem 3.5rem rgba(0,0,0,.12)}
.card-header{background:linear-gradient(135deg,#5DADE2 0%,#3498DB 100%);color:#fff;padding:2rem;text-align:center}
.card-header.dark{background:linear-gradient(135deg,#2E86DE 0%,#2874A6 100%)}
.card-header.light{background:linear-gradient(135deg,#87CEEB 0%,#5DADE2 100%)}
.card-title{font-size:2rem;font-weight:bold;margin-bottom:.5rem}
.card-subtitle{font-size:1.2rem;opacity:.9}
.mission-number{background:linear-gradient(135deg,#3498DB 0%,#2E86DE 100%);color:#fff;padding:.5rem 1.5rem;border-radius:2.5rem;font-size:1.3rem;font-weight:bold;display:inline-block;margin:1rem 0}
.date-highlight{background:linear-gradient(135deg,#EBF5FB 0%,#D6EAF8 100%);color:#1B4F72;padding:1.2rem 2rem;border-radius:0.2rem;font-weight:bold;font-size:1.4rem;margin:1.2rem 0;border-left:.5rem solid #3498DB;box-shadow:0 .2rem .6rem rgba(52,152,219,.07)}
.description-text{font-size:1.4rem;line-height:1.8;color:#34495E;margin:1.5rem 0;padding:0 1rem}
.external-link{color:#1565c0;font-weight:bold;text-decoration:none}
.external-link:hover{text-decoration:underline}
.highlight-box{background:linear-gradient(135deg,#EBF5FB 0%,#D6EAF8 100%);padding:1.5rem;border-radius:0.2rem;margin:1.5rem 0;border-left:.5rem solid #5DADE2;color:#1B4F72;font-weight:bold}

@keyframes coming-soon-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.coming-soon-text {
    animation: coming-soon-pulse 3s ease-in-out infinite;
}

.footer-section{background:linear-gradient(135deg,#5DADE2 0%,#3498DB 100%);color:#fff;padding:1.5rem 1rem;text-align:center;margin:0}

.site-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin: calc(var(--spacing-unit) * 2) 0;
    flex-wrap: wrap;
}

.site-link {
    text-align: center;
    width: 38%;
}

.site-link a {
    text-decoration: none;
    color: #fff;
    display: block;
}

.site-link img {
    width: 38%;
    height: auto;
    margin-bottom: 0.5rem;
    object-fit: contain;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.site-link p {
    font-size: 1.2rem;
    line-height: 1.4;
    font-weight: bold;
    margin: 0;
    text-align: center;
}

.bottom-logos {
    width: 100%;
    max-width: 720px;
    margin: 1rem auto;
    text-align: center;
}

.bottom-logos img {
    max-height: 80px;
    width: auto;
}

.map-container-small {
    width: 100%;
    max-width: 600px;
    margin: 2rem auto;
    border-radius: 0.3rem;
    overflow: hidden;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
}

.map-container-small iframe {
    width: 100%;
    height: 450px;
    border: none;
    display: block;
}

.video-container {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 2rem auto;
    border-radius: 0.3rem;
    overflow: hidden;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
}

.video-container iframe {
    width: 100%;
    height: 315px;
    border: none;
    display: block;
}

.image-container {
    text-align: center;
    margin: 2rem 0;
    position: relative;
    display: inline-block;
}

.zoomable-image {
    transition: transform 0.3s ease;
    border-radius: 0.3rem;
    position: relative;
    z-index: 1;
}

.zoomable-image:hover {
    transform: scale(1.05);
}

.zoom-icon {
    position: absolute;
    bottom: 20px;
    right: 32%;
    width: 30px;
    height: 30px;
    background: rgba(0, 0, 0, 0.7);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 100;
}

.zoom-icon:hover {
    background: rgba(0, 0, 0, 0.9);
    transform: scale(1.1);
}

.zoom-icon::before {
    content: '';
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.modal {
    position: fixed;
    z-index: 2000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    opacity: 0;
    visibility: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal.show {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    border-radius: 0.3rem;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.5);
    transform: scale(0.8);
    transition: transform 0.3s ease;
}

.modal.show .modal-content {
    transform: scale(1);
}

.close {
    position: absolute;
    top: 2rem;
    right: 3rem;
    color: #fff;
    font-size: 3rem;
    font-weight: bold;
    cursor: pointer;
    z-index: 2001;
}

.close:hover {
    color: #ccc;
}

.footer-text{font-size:1.2rem;margin:0;opacity:.9}
.scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:5rem;height:5rem;background:linear-gradient(135deg,#5DADE2 0%,#3498DB 100%);color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:1.2rem;box-shadow:0 .4rem 1.5rem rgba(93,173,226,.4),0 0 0 3px rgba(255,255,255,0.8),0 0 20px rgba(93,173,226,0.6);opacity:0;visibility:hidden;transform:translateY(2rem);transition:.3s;z-index:1000}
.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.scroll-to-top:hover{box-shadow:0 .4rem 1.5rem rgba(93,173,226,.6),0 0 0 4px rgba(255,255,255,0.9),0 0 25px rgba(93,173,226,0.8);transform:translateY(-2px)}

.popup-shop-layout {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.popup-shop-text {
    flex: 1;
}

@media (min-width:600px){
    .main-container{padding:0 1.5rem 0}
    .header-section{padding:0}
}

@media screen and (max-width: 767px) {
    .site-links { gap: 1rem; }
    .site-link img {
        width: 50%;
    }
    .site-link p {
        font-size: 1rem;
    }
    .map-container-small iframe {
        height: 300px;
    }
    .highlight-box h1 {
        font-size: 2rem;
        text-align: center;
    }
    .zoom-icon {
        width: 25px;
        height: 25px;
        bottom: 12px;
        right: 32%;
    }
    .zoom-icon::before {
        width: 14px;
        height: 14px;
    }
}

@media screen and (max-width: 480px) {
    .site-link p { font-size: 0.9rem; }
    .site-link img {
        width: 60%;
    }
    .map-container-small iframe {
        height: 250px;
    }
    .highlight-box h1 {
        font-size: 1.8rem;
        text-align: center;
    }
    .zoom-icon {
        width: 22px;
        height: 22px;
        bottom: 10px;
        right: 32%;
    }
    .zoom-icon::before {
        width: 12px;
        height: 12px;
    }
}

@media (min-width:800px){
    body{font-size:1.8rem}
    .main-container{max-width:90%;padding:0 2rem 0}
    .header-section{padding:0}
}

@media (min-width:1024px){
    body{font-size:1.9rem}
    .main-container{max-width:1000px;padding:0 3rem 0}
    .header-section{padding:0}
}

@media (min-width:1280px){
    body{font-size:2rem}
    .main-container{max-width:1140px;padding:0 3rem 0}
}

@media (min-width:1440px){
    body{font-size:2.1rem}
    .main-container{max-width:1280px;padding:0 4rem 0}
}

@media (min-width:800px){
    .card-title{font-size:2.4rem}
    .mission-number{font-size:1.5rem;padding:.6rem 1.8rem}
    .date-highlight{font-size:1.6rem;padding:1.4rem 2.2rem}
    .description-text{font-size:1.6rem;line-height:1.9}
    .external-link{font-size:1.6rem}
    .highlight-box{font-size:1.6rem;padding:1.8rem}
    .summary-title{font-size:1.8rem}
    .summary-text{font-size:1.6rem}
    .summary-date{font-size:1.6rem}
    .site-link p {
        font-size: 1.4rem;
    }
    .popup-shop-layout {
        flex-direction: row;
        align-items: flex-start;
    }
    .popup-shop-text {
        flex: 1;
    }
    .map-container-small {
        flex: 1;
        max-width: 400px;
    }
    .map-container-small iframe {
        height: 350px;
    }
}

@media (min-width:1024px){
    .card-title{font-size:2.6rem}
    .mission-number{font-size:1.6rem;padding:.7rem 2rem}
    .date-highlight{font-size:1.7rem;padding:1.5rem 2.4rem}
    .description-text{font-size:1.7rem;line-height:2}
    .external-link{font-size:1.7rem}
    .highlight-box{font-size:1.7rem;padding:2rem}
    .summary-title{font-size:1.9rem}
    .summary-text{font-size:1.7rem}
    .summary-date{font-size:1.7rem}
    .site-link p {
        font-size: 1.5rem;
    }
}

@media (min-width:1280px){
    .card-title{font-size:2.8rem}
    .mission-number{font-size:1.7rem;padding:.8rem 2.2rem}
    .date-highlight{font-size:1.8rem;padding:1.6rem 2.6rem}
    .description-text{font-size:1.8rem;line-height:2.1}
    .external-link{font-size:1.8rem}
    .highlight-box{font-size:1.8rem;padding:2.2rem}
    .summary-title{font-size:2rem}
    .summary-text{font-size:1.8rem}
    .summary-date{font-size:1.8rem}
    .site-link p {
        font-size: 1.6rem;
    }
} 