/* ===== reset ===== */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Montserrat','Noto Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN','游ゴシック',YuGothic,Meiryo,sans-serif;
  font-weight:300;color:#4a4a4a;background:#fff;line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
a{color:#000;text-decoration:none;transition:color .3s ease,opacity .3s ease}
a:hover{color:#b3b3b3}
img{display:block;max-width:100%;height:auto;border:0}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,h5,h6,p{margin:0}
.rich_font{font-family:'Oswald','Montserrat','Noto Sans JP',sans-serif;font-weight:300;color:#575757}

/* ===== header (transparency-faithful) ===== */
#header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(255,255,255,1);
  transition:background .4s ease;
  border-bottom:1px solid rgba(0,0,0,.06);
}
#header.header_fix{background:rgba(255,255,255,.8)}
#header.header_fix:hover{background:rgba(255,255,255,1)}
#header_inner{
  max-width:1400px;margin:0 auto;padding:0 40px;height:64px;
  display:flex;align-items:center;justify-content:space-between;gap:30px;
}
#header_logo a{display:block}
#header_logo img{height:30px;width:auto}
#header_logo a{color:#4a4a4a}
#header_logo a:hover{color:#9a0000}

#global_menu ul{display:flex;gap:32px;align-items:center}
#global_menu a{
  display:block;padding:6px 0;
  font-size:13px;letter-spacing:.14em;font-weight:400;color:#4a4a4a;
  position:relative;
}
#global_menu a:hover,
#global_menu .current-menu-item > a,
#global_menu .active > a{color:#9a0000}
#global_menu a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:2px;background:#9a0000;transform:scaleX(0);transform-origin:left;
  transition:transform .3s ease;
}
#global_menu a:hover::after,
#global_menu .current-menu-item > a::after{transform:scaleX(1)}

#header_lang{margin-left:10px}
#header_lang ul{display:flex;gap:4px;font-size:11px;letter-spacing:.12em}
#header_lang a{display:block;padding:4px 10px;color:#4a4a4a;position:relative}
#header_lang a.active_site{color:#9a0000}
#header_lang a:hover{color:#9a0000}
#header_lang li:first-child a::after{
  content:"";position:absolute;right:-2px;top:50%;width:1px;height:10px;
  background:rgba(0,0,0,.25);transform:translateY(-50%);
}
#menu_button{display:none}

/* ===== hero video (home) ===== */
#header_slider_wrap{position:relative;height:100vh;min-height:560px;overflow:hidden;background:#000}
#header_slider,#header_video{position:absolute;inset:0;width:100%;height:100%}
#header_video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
#header_slider_wrap::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.4) 100%);
  pointer-events:none;
}

/* news ticker — rgba(0,0,0,0.3) per 2020 theme */
#header_post_link_wrap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:rgba(0,0,0,0.3);color:#fff;
}
#header_post_link{max-width:1400px;margin:0 auto;padding:18px 40px}
#header_post_link .item{display:none}
#header_post_link .item.active{display:block;animation:fadeIn 1.2s ease}
#header_post_link .title{font-size:14px;font-weight:400;letter-spacing:.03em}
#header_post_link .title a{color:#fff;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#header_post_link .title a:hover{color:#fff;opacity:.7}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ===== index sections ===== */
#index_content{background:#fff}
.index_content{padding:120px 40px}
#index_free_space .post_content{
  max-width:960px;margin:0 auto;text-align:center;
}
#index_free_space h2{
  font-family:'Oswald','Montserrat',sans-serif;font-weight:300;color:#575757;
  font-size:clamp(28px,4vw,48px);line-height:1.2;margin:0 0 16px;letter-spacing:.03em;
}
#index_free_space p{margin:0 0 70px;font-size:12px;letter-spacing:.25em}
#index_free_space p a{
  display:inline-block;padding:14px 38px;border:1px solid #9a0000;color:#9a0000;
  text-transform:uppercase;transition:all .3s ease;
}
#index_free_space p a:hover{background:#9a0000;color:#fff;opacity:1}
#index_free_space p:last-child{margin-bottom:0}

/* floor tiles */
#index_shop_list{background:#f6f5f2;padding:110px 40px}
#shop_category_list{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;
}
#shop_category_list li{position:relative}
#shop_category_list .animate_image{display:block;position:relative;overflow:hidden;background:#000}
#shop_category_list .image{overflow:hidden;aspect-ratio:1/1}
#shop_category_list .image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease,opacity .3s ease;filter:grayscale(20%)}
#shop_category_list .animate_image:hover .image img{transform:scale(1.06);opacity:.75;filter:grayscale(0%)}
#shop_category_list .title{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:'Oswald',sans-serif;font-size:32px;letter-spacing:.12em;
  text-shadow:0 2px 16px rgba(0,0,0,.6);
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.35) 100%);
  transition:background .3s ease;
}
#shop_category_list .animate_image:hover .title{background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.55) 100%)}
.index_cb_button{text-align:center;margin-top:50px}
.index_cb_button a{
  display:inline-block;min-width:200px;height:50px;line-height:50px;
  padding:0 32px;border:1px solid #9a0000;color:#9a0000;
  font-size:12px;letter-spacing:.25em;text-transform:uppercase;
  transition:all .3s ease;
}
.index_cb_button a:hover{background:#9a0000;color:#fff;opacity:1}

/* access block */
#index_learn_list .index_cb_catch{text-align:center;margin-bottom:50px}
#index_learn_list .index_cb_catch .catch{
  font-family:'Oswald',sans-serif;font-weight:300;font-size:clamp(32px,5vw,56px);
  color:#575757;letter-spacing:.05em;
}
#learn_list .item{max-width:1180px;margin:0 auto}
#learn_list .link{display:block;position:relative;overflow:hidden;aspect-ratio:16/8;background:#000}
#learn_list .image{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s ease,opacity .3s ease;filter:grayscale(20%)}
#learn_list .link:hover .image{transform:scale(1.04);opacity:.85;filter:grayscale(0%)}
#learn_list .title_area{
  position:absolute;left:0;right:0;bottom:0;padding:40px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.65) 100%);
  color:#fff;
}
#learn_list .title_area .title{font-family:'Oswald',sans-serif;font-size:30px;letter-spacing:.14em;margin:0 0 10px}
#learn_list .title_area .excerpt{font-size:13px;line-height:1.7;opacity:.9;margin:0}

/* ===== inner page banner ===== */
#page_header{
  position:relative;height:380px;margin-top:0;
  background-position:center !important;background-size:cover !important;background-repeat:no-repeat !important;
  display:flex;align-items:center;justify-content:center;
}
#page_header .overlay{position:absolute;inset:0}
#page_header_inner{position:relative;z-index:2;text-align:center;color:#fff}
#page_header .title,
#page_header_inner h2{
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:clamp(34px,5.5vw,56px);letter-spacing:.18em;text-transform:uppercase;
  color:#fff;margin:0;
}
#page_header .tab{
  display:inline-block;margin-top:14px;padding:4px 18px;
  background:#9a0000;color:#fff;font-size:11px;letter-spacing:.28em;text-transform:uppercase;
}

/* breadcrumb */
#bread_crumb{background:#f4f3f1;border-bottom:1px solid #eceae5}
#bread_crumb ul{max-width:1280px;margin:0 auto;padding:14px 40px;display:flex;gap:10px;font-size:11px;letter-spacing:.1em;color:#888}
#bread_crumb li{display:flex;align-items:center}
#bread_crumb li:not(:last-child)::after{content:"›";margin:0 10px;color:#bbb}
#bread_crumb a{color:#888}
#bread_crumb a:hover{color:#9a0000}
#bread_crumb .last{color:#4a4a4a;font-weight:400}

/* ===== generic content shell ===== */
#one_col{max-width:1180px;margin:0 auto;padding:90px 40px 110px}
#article .post_content{font-size:15px;line-height:1.9;color:#555}
#article .post_content p{margin:0 0 20px}
#article .post_content h2{
  font-family:'Oswald',sans-serif;font-weight:300;color:#575757;
  font-size:clamp(22px,2.8vw,36px);line-height:1.3;margin:30px 0 18px;letter-spacing:.02em;
}
#article .post_content h3{
  font-family:'Oswald',sans-serif;font-weight:300;color:#9a0000;
  font-size:clamp(18px,2.2vw,26px);margin:40px 0 18px;letter-spacing:.12em;text-transform:uppercase;
  padding-bottom:10px;border-bottom:1px solid #eaeaea;
}
#article .post_content h4{font-size:17px;color:#4a4a4a;font-weight:400;margin:22px 0 10px}
#article .post_content h5{font-family:'Oswald',sans-serif;font-size:18px;color:#4a4a4a;margin:14px 0 8px;letter-spacing:.04em;font-weight:400}
#article .post_content a{color:#9a0000}
#article .post_content a:hover{color:#666}

/* ===== ABOUT page: founders grid + testimonials ===== */
.founders-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:50px 36px;
  margin:40px 0 60px;
}
.founder{text-align:center}
.founder img{width:220px;height:220px;object-fit:cover;border-radius:50%;margin:0 auto 18px;filter:grayscale(20%);transition:filter .4s ease}
.founder:hover img{filter:grayscale(0%)}
.founder h5{font-family:'Oswald',sans-serif;font-size:18px;color:#4a4a4a;margin:0 0 6px}
.founder .role{font-size:13px;color:#666;line-height:1.7}
.founder .role a{color:#9a0000}

.testimonials{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;
  margin:30px 0 0;
}
.testimonial{
  background:#fff;border:1px solid #e8e6df;padding:34px 28px 28px;
  position:relative;box-shadow:0 2px 12px rgba(0,0,0,.03);
}
.testimonial::before{content:"“";position:absolute;top:6px;left:14px;font-family:'Times New Roman',serif;font-size:64px;color:#9a0000;line-height:1;opacity:.2}
.testimonial .quote{font-size:15px;color:#4a4a4a;line-height:1.85;margin:0 0 18px;border-left:3px solid #9a0000;padding-left:16px}
.testimonial .author{font-size:13px;color:#777;line-height:1.7}

/* ===== PROJECT page ===== */
.project-section{margin:50px 0}
.project-section h3{letter-spacing:.12em}
.project-section .intro{color:#555;line-height:1.9;font-size:15px;margin:0 0 24px}
.project-items{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.project-items li{font-size:13px;color:#555;background:#f6f5f2;padding:6px 14px;border:1px solid #ece9e0;border-radius:3px}

.partner-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:24px;
  margin:24px 0 0;align-items:center;
}
.partner-grid .item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:22px 16px;background:#fff;border:1px solid #ece9e0;min-height:130px;text-align:center;
}
.partner-grid img{max-width:140px;max-height:70px;width:auto;height:auto;object-fit:contain;filter:grayscale(100%);opacity:.8;transition:all .3s ease}
.partner-grid .item:hover img{filter:grayscale(0%);opacity:1}
.partner-grid .partner-name{font-size:11px;letter-spacing:.1em;color:#777;margin-top:12px;text-transform:uppercase;line-height:1.4}

/* ===== NEWS page ===== */
.news-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:40px 28px;
  margin:40px 0 0;
}
.news-item{display:block}
.news-item .cats{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.news-item .cats span{font-size:10px;letter-spacing:.2em;color:#fff;background:#000;padding:3px 9px;text-transform:uppercase}
.news-item .image{overflow:hidden;aspect-ratio:1/1;background:#eee;margin:0 0 14px}
.news-item .image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s ease;filter:grayscale(15%)}
.news-item:hover .image img{transform:scale(1.04);opacity:.85;filter:grayscale(0%)}
.news-item .title{font-size:14px;line-height:1.65;color:#4a4a4a;margin:0 0 10px;font-weight:400}
.news-item .date{font-size:11px;color:#9a0000;letter-spacing:.12em;margin:0}

/* ===== EVENTS page ===== */
.events-heading{text-align:center;margin:0 0 30px}
.events-heading h3{font-family:'Oswald',sans-serif;font-size:20px;letter-spacing:.2em;color:#9a0000;text-transform:uppercase;border:0;padding:0;margin:0}
.events-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:38px 26px;
  margin:20px 0 50px;
}
.event-item{display:block}
.event-item .image{overflow:hidden;aspect-ratio:1/1;background:#eee;margin:0 0 14px}
.event-item .image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s ease;filter:grayscale(15%)}
.event-item:hover .image img{transform:scale(1.04);filter:grayscale(0%)}
.event-item .date{font-size:11px;color:#9a0000;letter-spacing:.14em;margin:0 0 6px}
.event-item .title{font-size:15px;line-height:1.6;color:#4a4a4a;font-weight:400;margin:0}

/* ===== SPACE index ===== */
#archive_shop_search{
  position:relative;background-position:center;background-size:cover;background-repeat:no-repeat;
  padding:110px 40px;color:#fff;text-align:center;overflow:hidden;
}
#archive_shop_search .overlay{position:absolute;inset:0;pointer-events:none}
#archive_shop_search_inner{position:relative;z-index:2}
#archive_catch .catch{
  font-family:'Oswald',sans-serif;font-weight:300;font-size:clamp(34px,5vw,56px);
  color:#fff;letter-spacing:.06em;margin:0 0 20px;
}
#archive_catch .desc{font-size:14px;line-height:2;color:rgba(255,255,255,.9);max-width:780px;margin:0 auto}

#archive_shop_list{background:#f6f5f2;padding:100px 40px 120px}
#archive_shop_list #shop_category_list{max-width:1280px;margin:0 auto}

/* ===== SPACE floor detail ===== */
#shop_headline{
  font-family:'Oswald',sans-serif;font-weight:300;color:#9a0000;
  font-size:clamp(28px,4vw,44px);text-align:center;margin:0 0 40px;letter-spacing:.06em;
}
#shop_image_slider{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:6px;
  margin:0 0 50px;
}
#shop_image_slider .image{aspect-ratio:4/3;background-position:center;background-size:cover;background-repeat:no-repeat}
#shop_desc{max-width:840px;margin:0 auto;text-align:center;font-size:16px;line-height:2;color:#555}
#shop_desc p{margin:0 0 20px}
#shop_desc .floor-links{margin-top:40px;text-align:center}
#shop_desc .floor-links a{display:inline-block;margin:4px 10px;color:#9a0000;font-family:'Oswald',sans-serif;letter-spacing:.05em}
#shop_desc .floor-links a:hover{color:#666}

#shop_data_list{max-width:720px;margin:50px auto 0;background:#f9f8f5;padding:30px 36px;border:1px solid #ece9e0}
#shop_data_list dl{display:grid;grid-template-columns:140px 1fr;gap:14px 20px;font-size:14px}
#shop_data_list dt{color:#9a0000;font-weight:400;letter-spacing:.06em}
#shop_data_list dt span{display:block}
#shop_data_list dd{margin:0;color:#555}

/* ===== access page ===== */
.access-block{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.access-block .info h3{font-family:'Oswald',sans-serif;font-size:28px;color:#9a0000;margin:0 0 20px;letter-spacing:.08em;border:0;padding:0}
.access-block .info p{font-size:14px;color:#555;line-height:1.9;margin:0 0 14px}
.access-block .info a{color:#9a0000}
.access-block .map{background:#eee}
.access-block .map img{width:100%;height:auto;display:block}
@media (max-width:760px){.access-block{grid-template-columns:1fr}}

/* ===== contact form ===== */
.c3-form{max-width:720px;margin:40px auto 0}
.c3-form .field{margin:0 0 22px}
.c3-form label{display:block;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#4a4a4a;margin:0 0 8px;font-weight:400}
.c3-form input[type=text],.c3-form input[type=email],.c3-form textarea{
  width:100%;padding:14px 16px;border:1px solid #d8d6d0;background:#fff;
  font-family:inherit;font-size:15px;color:#1a1a1a;transition:border-color .2s ease;
}
.c3-form input:focus,.c3-form textarea:focus{outline:0;border-color:#9a0000}
.c3-form textarea{min-height:220px;resize:vertical}
.c3-form .actions{text-align:center;margin-top:28px}
.c3-form button{
  background:#9a0000;color:#fff;border:0;padding:16px 56px;
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;
  cursor:pointer;font-family:inherit;transition:background .25s ease;
}
.c3-form button:hover{background:#6e0000}

.notice-block{background:#f6f5f2;padding:24px 28px;border-left:3px solid #9a0000;margin:24px 0;font-size:13px;line-height:1.85;color:#555}
.notice-block strong{color:#9a0000;font-weight:400}
.notice-block p{margin:0 0 10px}
.notice-block .sub{color:#777}

/* ===== footer ===== */
#footer_menu_area{background:#282828;color:#eaeaea;padding:60px 40px 30px}
#footer_menu_area_inner{max-width:1280px;margin:0 auto}
#footer_menu_area ul{display:flex;flex-wrap:wrap;gap:14px 34px;justify-content:center}
#footer_menu_area a{color:#eaeaea;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
#footer_menu_area a:hover{color:#fff}

#footer_bottom{background:#282828;color:#fff;padding:0 40px 40px}
#footer_bottom_inner{max-width:1280px;margin:0 auto;text-align:center}
#footer_social_link{display:flex;gap:26px;justify-content:center;margin:20px 0}
#footer_social_link a{color:#fff;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:3px}
#footer_social_link a:hover{color:#fff;opacity:.7}
#copyright{font-size:11px;letter-spacing:.08em;color:#aaa;margin:10px 0 0}
#return_top{margin-top:10px}
#return_top a{color:#fff;font-size:10px;letter-spacing:.28em}

/* ===== responsive ===== */
@media (max-width:960px){
  #header_inner{padding:0 20px;gap:14px}
  #global_menu ul{gap:18px}
  #global_menu a{font-size:11px}
  .index_content{padding:70px 20px}
  #index_shop_list,#archive_shop_list{padding:70px 20px}
  #archive_shop_search{padding:70px 20px}
  #one_col{padding:60px 20px 80px}
  #page_header{height:260px}
  #header_post_link{padding:14px 20px}
}
@media (max-width:760px){
  #global_menu{display:none}
  #header_inner{height:56px}
  #menu_button{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border:1px solid #ddd;
    background:transparent;cursor:pointer;color:#4a4a4a;font-size:12px;letter-spacing:.1em;
  }
  .access-block{grid-template-columns:1fr}
  #shop_data_list dl{grid-template-columns:1fr}
}

/* content push below fixed header */
main#page-main,body.has-inner-banner #page_header{margin-top:64px}
body.has-hero #header_slider_wrap{margin-top:0}
#header_slider_wrap{margin-top:64px}

/* ===== archive banner + watermark (must come AFTER reset & header rules) ===== */
.archive-banner{
  position:fixed;top:0;left:0;right:0;z-index:1100;
  height:36px;display:flex;align-items:center;justify-content:center;
  background:#1c2424;color:#fff;
  font-family:'Oswald','Montserrat','Noto Sans JP',sans-serif;
  font-size:12px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.archive-banner .sep{opacity:.45;margin:0 14px}
.archive-banner .ja{letter-spacing:.18em;font-family:'Noto Sans JP',sans-serif}
body{padding-top:36px}
#header{top:36px}

#archived-watermark{
  position:fixed;inset:0;overflow:hidden;pointer-events:none;user-select:none;
  z-index:2147483646;
}
