﻿@charset "UTF-8";html {scroll-behavior: smooth;}/* ==========================================================================変数定義========================================================================== */:root {--navy: #1A2F4B;--accent: #D94625;--serif: "Shippori Mincho", serif;--sans: "Noto Serif JP", serif;--transition-slow: 1.6s cubic-bezier(0.22, 1, 0.36, 1);}/* ==========================================================================共通設定========================================================================== */body {margin: 0;font-family: var(--sans);color: #333;background-color: #fff;line-height: 2;overflow-x: hidden;width: 100%;}body.nav-open {overflow: hidden;}*, *::before, *::after {box-sizing: border-box;}.reveal {opacity: 0;transition: var(--transition-slow);}.reveal.up {transform: translateY(60px);}.reveal.active {opacity: 1;transform: translate(0, 0);}.container {max-width: 1200px;margin: 0 auto;padding: 0 40px;}/* ==========================================================================ヘッダー & ハンバーガーボタン========================================================================== */.site-header {position: fixed;top: 0;left: 0;width: 100%;height: 100px;z-index: 10000;transition: all 0.4s ease;display: flex;align-items: center;}.site-header.scrolled {height: 75px;background: rgba(255, 255, 255, 0.95);box-shadow: 0 2px 15px rgba(0,0,0,0.07);}.header-inner {width: 100%;padding: 0 5%;display: flex;justify-content: flex-end;align-items: center;}.hamburger-btn {width: 60px;height: 60px;cursor: pointer;display: flex;flex-direction: column;justify-content: center;align-items: center;position: relative;}.btn-line {width: 35px;height: 14px;position: relative;}.btn-line span {display: block;width: 100%;height: 1px;background-color: #fff;position: absolute;transition: 0.4s ease;}.btn-line span:nth-child(1) {top: 0;}.btn-line span:nth-child(2) {bottom: 0;}.btn-text {margin-top: 8px;height: 12px;position: relative;width: 100%;text-align: center;}.btn-text span {display: block;font-size: 0.65rem;color: #fff;letter-spacing: 0.1em;position: absolute;width: 100%;transition: 0.4s ease;font-weight: bold;}.txt-close {opacity: 0;}.site-header.scrolled .btn-line span,.nav-open .btn-line span {background-color: var(--navy);}.site-header.scrolled .btn-text span,.nav-open .btn-text span {color: var(--navy);}.hamburger-btn.active .btn-line span:nth-child(1) {transform: translateY(6.5px) rotate(45deg);}.hamburger-btn.active .btn-line span:nth-child(2) {transform: translateY(-6.5px) rotate(-45deg);}.hamburger-btn.active .txt-menu {opacity: 0;}.hamburger-btn.active .txt-close {opacity: 1;}/* ==========================================================================全画面ナビゲーション========================================================================== */.full-nav {position: fixed;top: 0;left: 0;width: 100%;height: 100vh;background-color: #fff;z-index: 9999;display: flex;justify-content: center;align-items: center;visibility: hidden;opacity: 0;transition: 0.6s ease;}.full-nav.active {visibility: visible;opacity: 1;}.nav-list-vertical {list-style: none;padding: 0;margin: 0;text-align: center;}.nav-list-vertical li {margin: 25px 0;opacity: 0;transform: translateY(20px);transition: 0.4s ease;}.full-nav.active .nav-list-vertical li {opacity: 1;transform: translateY(0);}.nav-list-vertical li a {text-decoration: none;color: var(--navy);font-family: var(--serif);font-size: 1.8rem;letter-spacing: 0.2em;transition: color 0.3s;}.nav-list-vertical li a:hover {color: var(--accent);}/* ==========================================================================FV（黒いスペース対策：min-heightを調整）========================================================================== */.hero-section {height: 100vh;/* スマホのツールバーを考慮した新しい単位 */height: 100dvh;width: 100%;position: relative;overflow: hidden;background-color: #fff;/* 背景を白にしておくことで黒い線を目立たなくする */}.hero-bg-wrapper {width: 100%;height: 100%;}.hero-img {width: 100%;height: 100%;object-fit: cover;transform: scale(1.15);transition: transform 10s ease-out, opacity 2s ease;opacity: 0.8;}.hero-img.active {transform: scale(1.0);opacity: 1.0;}.hero-content {position: absolute;top: 58%;left: 10%;transform: translateY(-50%);z-index: 10;}.main-copy-vertical {writing-mode: vertical-rl;font-family: var(--serif);font-size: 4.5rem;color: #fff;letter-spacing: 0.5em;line-height: 1.5;text-shadow: 0 0 30px rgba(0,0,0,0.3);}.scroll-en {position: absolute;bottom: 40px;left: 50%;transform: translateX(-50%);color: #fff;font-size: 0.75rem;letter-spacing: 0.4em;}.scroll-en::after {content: "";width: 1px;height: 80px;background: rgba(255,255,255,0.6);display: block;margin: 15px auto 0;}/* ==========================================================================コンテンツエリア========================================================================== */.mid-subtitle-section {padding: 0 0 60px;text-align: center;}.en-sub{font-size: 1.68rem;margin:60px auto -30px;}.mid-subtitle-text {font-size: 2.2rem;color: var(--navy);line-height: 2.2;letter-spacing: 0.15em;font-weight: 900;}.mid-subtitle-text_s{font-size: 1.2rem;}.concept-section {padding: 60px 0;}.concept-flex, .concept-flex_r {display: flex;align-items: center;gap: 80px;}.concept-flex_r {flex-direction: row-reverse;}.concept-text {width: 50%;}.concept-image-overlap {flex: 1;}.section-title {font-family: var(--serif);font-size: 2.1rem;color: var(--navy);margin-bottom: 40px;}.section-description{font-size: 1.16rem;}.concept-image-overlap img {width: 100%;max-width: 100%;filter: drop-shadow(5px 5px 6px rgba(0, 0, 0, 0.5));}.scene-introduction {padding: 20px 0;background: #fff;}.sceneSwiper {width: 100%;padding-bottom: 80px !important;}.item-card {cursor: pointer;}.item-image {position: relative;aspect-ratio: 1 / 1;width: 100%;overflow: hidden;background: #f8f8f8;}.item-image img {width: 100%;height: 100%;object-fit: cover;transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);}.item-hover-label {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: rgba(26, 47, 75, 0.4);display: flex;justify-content: center;align-items: center;opacity: 0;transition: opacity 0.6s ease;}.item-hover-label span {color: #fff;font-family: var(--serif);font-size: 1.1rem;letter-spacing: 0.2em;border-bottom: 1px solid #fff;padding-bottom: 5px;transform: translateY(20px);transition: transform 0.6s ease;}.item-card:hover .item-image img {transform: scale(1.1);}.item-card:hover .item-hover-label {opacity: 1;}.item-card:hover .item-hover-label span {transform: translateY(0);}/* ==========================================================================モーダル========================================================================= */.scene-modal-overlay {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background: rgba(26, 47, 75, 0.95);z-index: 20000;display: none;justify-content: center;align-items: center;opacity: 0;transition: opacity 0.5s ease;padding: 15px;}.scene-modal-overlay.active {opacity: 1;}.scene-modal-container {background: #fff;width: 100%;max-width: 900px;position: relative;overflow-y: auto;overflow-x: hidden;max-height: 90vh;transform: translateY(30px);transition: transform 0.5s ease;margin: 0 auto;}.scene-modal-overlay.active .scene-modal-container {transform: translateY(0);}.scene-modal-content {display: flex;flex-wrap: wrap;width: 100%;margin: 0;padding: 0;}.scene-modal-image {flex: 1.2;width: 100%;min-width: 0;}.scene-modal-image img {width: 100%;height: auto;min-height: 100%;object-fit: cover;display: block;}.scene-modal-info {flex: 1;min-width: 0;padding: 40px;display: flex;flex-direction: column;justify-content: center;}.modal-title-serif {font-family: var(--serif);font-size: 1.8rem;color: var(--navy);margin: 0 0 25px;}.modal-description {font-size: 1rem;color: #666;line-height: 1.8;margin-bottom: 40px;}.modal-btn {display: inline-block;padding: 15px 40px;background: var(--navy);color: #fff;text-decoration: none;text-align: center;transition: 0.3s;}.scene-modal-close {position: absolute;top: 20px;right: 25px;font-size: 35px;color: #999;cursor: pointer;z-index: 10;}/* ページトップボタン */.pagetop {position: fixed;right: 30px;bottom: 30px;z-index: 100;opacity: 0;visibility: hidden;transition: 0.5s;transform: translateY(20px);}.pagetop.is-show {opacity: 1;visibility: visible;transform: translateY(0);}.pagetop a {display: flex;justify-content: center;align-items: center;width: 60px;height: 60px;background: var(--navy);color: #fff;border-radius: 50%;text-decoration: none;}/* ==========================================================================フルワイド・パララックス========================================================================== */.full-width-parallax {position: relative;width: 100vw;margin-left: calc(50% - 50vw);margin-right: calc(50% - 50vw);min-height: 70vh;background-size: cover;background-position: center;background-repeat: no-repeat;background-attachment: fixed;display: flex;align-items: flex-start;justify-content: flex-start;padding-left: 10%;padding-top: 80px;padding-bottom: 80px;overflow: visible;margin: 100px 0;}.full-width-parallax::before {content: "";position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: rgba(0, 0, 0, 0.15);}.parallax-content {position: relative;z-index: 1;}.is-vertical {writing-mode: vertical-rl;font-family: var(--serif);font-size: 3.2rem;color: #fff;letter-spacing: 0.4em;line-height: 1.5;text-shadow: 0 0 20px rgba(0,0,0,0.4);margin: 0;display: inline-block;height: auto;}/* ==========================================================================フッター========================================================================== */.site-footer {background-color: var(--navy);color: #fff;padding: 80px 0 40px;margin-top: 100px;}.footer-bottom {padding-top: 5px;text-align: center;}.copyright {font-size: 0.75rem;opacity: 0.5;letter-spacing: 0.05em;}.sp-only {display: none;}/* ==========================================================================レスポンシブ========================================================================== */@media screen and (max-width: 850px) {.sp-only {display: block;}.container {padding: 0 22px;}.nav-list-vertical li a {font-size: 1.28rem;}.hero-content {left: 2%;}.main-copy-vertical {font-size: 2.8rem;}.mid-subtitle-section {padding: 60px 0 0;}.mid-subtitle-text {font-size: 1.5rem;line-height: 1.8;}.section-title {font-size: 1.5rem;margin-bottom: 25px;}.en-sub{font-size: 1.28rem;margin: 0 auto -10px;}.mid-subtitle-text_s{font-size: 1.16rem;text-align: left;}.concept-section {padding: 30px 0;}.concept-flex, .concept-flex_r {flex-direction: column;gap: 30px;}.concept-text {width: 100%;}.concept-image-overlap img {width: 100%;}/* スマホ版パララックス: 揺れ防止 */.full-width-parallax {width: 100% !important;margin-left: 0 !important;margin-right: 0 !important;height: 50vh;min-height: auto;background-attachment: scroll;padding-left: 22px;padding-top: 40px;margin: 60px 0 0;}.is-vertical {font-size: 2rem;letter-spacing: 0.3em;}.scene-modal-image {min-width: 100%;height: 250px;flex: none;}.scene-modal-info {min-width: 100%;padding: 30px 20px;flex: none;width: 100%;}.modal-title-serif {font-size: 1.4rem;}.modal-description {font-size: 0.9rem;}.site-footer {padding: 60px 0 30px;margin-top: 60px;}}