@charset "utf-8";


:root{
  --accent:#FF5500;
  --base:#333333;
  --beige:#e6e3dc;
  --beige-line:#ddd;
  
  --container: min(2400px, 93vw);
  --mincho: Garamond,"Times New Roman","游明朝","Yu Mincho","游明朝体","YuMincho","ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝","MS PMincho",serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
  
  font-size: clamp(16px, 0.32vw + 15px, 28px);
}
body{
  margin:0; color:var(--base); font-size:1rem; line-height:1.75;
  font-family:Arial,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif;
  background:#fff;
}
img{ max-width:100%; height:auto; vertical-align:top; }
a{ color:var(--base); text-decoration:none; transition:color .2s; }
a:hover{ color:var(--accent); }
ol,ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,p{ margin:0; }

.container{ width:var(--container); max-width:100%; margin:0 auto; padding:0 20px; }
.mincho{ font-family:var(--mincho); }
.clearfix::after{ content:""; display:block; clear:both; }


.link_button{
  display:inline-block; height:50px; line-height:50px; padding:0 60px;
  color:#fff !important; font-weight:bold; background:var(--base); transition:background .2s;
}
.link_button:hover{ background:var(--accent); color:#fff !important; }



#header{
  position:sticky; top:0; text-align:center; z-index:50;
  background:#fff;
  transition:box-shadow .25s ease;
}
#header.is-stuck{ box-shadow:0 2px 14px rgba(0,0,0,.09); }
#header_inner,#logo_image,#logo_image img,.global_menu > ul > li > a{
  transition:padding .25s ease, margin .25s ease, width .25s ease, font-size .25s ease;
}
#header.is-stuck #header_inner{ padding:9px 0; }
#header.is-stuck #logo_image{ margin-bottom:6px; }
#header.is-stuck #logo_image img{ width:128px; }
#header.is-stuck .global_menu > ul > li > a{ padding:9px 22px; font-size:1rem; }
@media (prefers-reduced-motion: reduce){
  #header,#header_inner,#logo_image,#logo_image img,.global_menu > ul > li > a{ transition:none; }
}
#header_inner{ padding:25px 0; }
#logo_image{ margin-bottom:20px; }

#logo_image img{ height:auto; width:200px; }

.global_menu{ display:inline-block; font-weight:bold; }

.global_menu > ul{ display:inline-flex; height:auto; align-items:stretch; }
.global_menu > ul > li{ position:relative; border-left:1px solid var(--beige-line); }
.global_menu > ul > li:first-child{ border-left:none; }
.global_menu > ul > li > a{
  display:block; height:auto; line-height:1.4; padding:16px 26px; font-size:1.08rem;
  letter-spacing:.04em; white-space:nowrap;
}

.global_menu ul ul{
  
  position:absolute; top:100%; left:0; width:max-content; min-width:260px; display:none; z-index:30;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.global_menu > ul > li:hover > ul{ display:block; }
.global_menu ul ul li{ border:none; }
.global_menu ul ul a{
  display:block; padding:14px 22px 13px; font-size:1rem; font-weight:400; text-align:left; line-height:1.5;
  color:#fff; background:var(--base);
}
.global_menu ul ul a:hover{ background:var(--accent); color:#fff; }

@media (min-width:821px) and (max-width:1023px){
  .global_menu > ul > li > a,
  #header.is-stuck .global_menu > ul > li > a{
    font-size:1rem; letter-spacing:.02em;
    padding-left:clamp(12px, calc((100vw - 660px) / 12), 26px);
    padding-right:clamp(12px, calc((100vw - 660px) / 12), 26px);
  }
}


#nav_toggle{ display:none; }
.nav_toggle_btn{ display:none; }



#main_image{ width:100%; overflow:hidden; }
#main_image img{ width:100%; display:block; }

#main_image3{ background:var(--beige); text-align:center; }
#main_image3 h1,
#main_image3 h2{ height:200px; line-height:200px; font-size:1.714rem; font-weight:bold; font-family:var(--mincho); }


#main_image3.mi-photo{
  position:relative; background-color:#1b1b1b; background-size:cover; background-position:center 62%;
  background-repeat:no-repeat;
}
#main_image3.mi-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(12,12,12,.62) 0%, rgba(12,12,12,.30) 55%, rgba(12,12,12,.12) 100%);
}
#main_image3.mi-photo h1,
#main_image3.mi-photo h2{ position:relative; z-index:1; color:#fff; letter-spacing:.08em;
  text-shadow:0 2px 12px rgba(0,0,0,.45); }
#main_image3.mi-truck1{ background-image:url("../img/mainvisual/mainvisual_truck1.jpg"); }
@media (max-width:820px){
  
  #main_image3.mi-truck1{ background-image:url("../img/mainvisual/sp_mainvisual_truck1.jpg");
    background-position:center 55%; }
}


.breadcrumb{ font-size:0.86rem; color:#888; padding:15px 0; }
.breadcrumb a{ color:#888; }
.breadcrumb a:hover{ color:var(--accent); }


#top_slider{ position:relative; overflow:hidden; background:#fff; }
#top_slider .slides{ position:relative; }

#top_slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.8s ease-in-out; }
#top_slider .slide:first-child{ position:relative; }
#top_slider .slide.is-active{ opacity:1; z-index:1; }

#top_slider:not(.is-started) .slide:first-child,
#sp_slider:not(.is-started) .slide:first-child{ opacity:1; }
#top_slider .slide img{ width:100%; display:block; }
#top_slider .slide picture, #sp_slider .slide picture{ display:block; } 
.slider_dots{ position:absolute; left:0; right:0; bottom:15px; text-align:center; }
.slider_dots button{
  width:12px; height:12px; margin:0 6px; padding:0; border:none; border-radius:50%;
  font-size:0; line-height:0; 
  background:#fff; cursor:pointer; text-indent:-9999px; overflow:hidden;
}
.slider_dots button.is-active,.slider_dots button:hover{ background:var(--base); }


#sp_slider{ display:none; overflow:hidden; background:#fff; }
#sp_slider .slides{ position:relative; }
#sp_slider .slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.8s ease-in-out; }
#sp_slider .slide:first-child{ position:relative; }
#sp_slider .slide.is-active{ opacity:1; z-index:1; }
#sp_slider img{ width:100%; display:block; }


.mv_label{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mincho);
  
  font-size:min(1.8rem, 6.2vw); font-weight:bold; letter-spacing:.22em; text-indent:.22em;
  padding:0 14px; text-align:center;
  color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.6), 0 0 6px rgba(0,0,0,.45);
  
  background:
    radial-gradient(ellipse 62% 58% at 50% 50%, rgba(0,0,0,.38), rgba(0,0,0,0) 72%),
    linear-gradient(rgba(0,0,0,.12), rgba(0,0,0,.03) 45%, rgba(0,0,0,.12));
  opacity:0;
  pointer-events:none;
}

#top_slider .mv_label{ font-size:2.9rem; letter-spacing:.3em; text-indent:.3em; }
.slide.is-active .mv_label{ animation:mv_label_in 2.6s cubic-bezier(.22,.61,.36,1) .45s forwards; }
@keyframes mv_label_in{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .mv_label{ opacity:1; }
  .slide.is-active .mv_label{ animation:none; }
  #top_slider .slide, #sp_slider .slide{ transition:none; }
}


.index_band{ background:var(--beige); }

.index_band .band_inner{ display:flex; align-items:center; gap:20px; padding:50px 0; width:var(--container); margin:0 auto; }

.index_band .band_text{ flex:1 1 50%; min-width:0; }
.index_band .band_image{ flex:1 1 50%; min-width:0; display:flex; justify-content:center; align-items:center; }


.index_band .band_image img.spin-in{ width:calc(100% * 424 / 580); max-width:calc(680px * 424 / 580); margin:calc(min(100%, 680px) * -2 / 580) 0; }

.index_band .headline{ font-size:1.6rem; line-height:1.6; font-weight:bold; margin:0 0 18px; font-family:var(--mincho); text-align:center; }

.index_band .desc{
  font-size:0.92rem; line-height:2.0; margin:0 auto 22px;
  max-width:36em;
}
.index_band .desc:last-of-type{ margin-bottom:30px; }

.index_band .desc.lead{
  font-size:1.02rem; line-height:1.9; text-align:center; margin-bottom:26px;
}
.index_band.reverse .band_inner{ flex-direction:row-reverse; }


.section_menu{ width:var(--container); margin:0 auto; padding:80px 0; }
.menu_head{ display:flex; flex-wrap:wrap; align-items:flex-start; margin:0 0 50px; gap:20px; }

.menu_head .headline{ flex:1 1 100%; font-size:2rem; line-height:1.8; font-weight:bold; font-family:var(--mincho); text-align:center; }
.menu_head .desc{ flex:1 1 500px; font-size:1rem; line-height:2.2; }


.product_grid{ display:flex; flex-wrap:wrap; gap:30px 33px; margin-right:-40px; }
.product_grid .product{
  width:266px; height:266px; position:relative; overflow:hidden; border:13px solid var(--beige);
}
.product_grid .product .thumb{ display:block; width:100%; height:100%; cursor:pointer; }
.product_grid .product img{ width:100%; height:100%; object-fit:cover; display:block; }
.product_grid .product .title{
  position:absolute; left:0; bottom:0; width:100%; padding:15px 10px; text-align:center;
  color:#fff !important; background:rgba(0,0,0,.45); transform:translateY(100%); transition:transform .25s;
  font-size:0.929rem; line-height:1.5; z-index:2;
}
.product_grid .product:hover .title{ transform:translateY(0); }
.product_grid .product .title:hover{ color:#fff !important; }
.product_grid .product.coming .title{ transform:translateY(0); background:rgba(0,0,0,.35); }


.archive_button{ text-align:center; margin-top:50px; }


.product .badge_new{
  position:absolute; top:0; left:0; z-index:2; background:var(--accent); color:#fff;
  font-size:0.86rem; font-weight:bold; padding:4px 10px; letter-spacing:.05em;
}



#menu_archive{
  width:var(--container); max-width:100%; margin:0 auto; padding:20px 20px 60px;
  
  background:
    
    url("../img/logo-mark-tile.png") 0 0 / 370px 370px repeat fixed,
    url("../img/logo-mark-tile.png") 185px 185px / 370px 370px repeat fixed;
}

@media (max-width:820px){
  #menu_archive{ background-size:240px 240px, 240px 240px; background-position:0 0, 120px 120px; }  
}

.menu_intro{
  display:block; background:#f4f1ea;
  padding:56px 48px; margin:0 0 70px; text-align:center;
}
.menu_intro .headline{
  font-size:1.6rem; font-weight:bold; line-height:1.6; margin:0 0 24px;
  font-family:var(--mincho);
}

.menu_intro .desc{
  font-size:0.92rem; line-height:2.0; max-width:44em; margin:0 auto; text-align:left;
}
.menu_category{ margin:0 0 70px; }

.menu_category .cat_head{
  font-size:2rem; font-weight:400; line-height:1.6; margin:0 0 34px;
  font-family:var(--mincho); text-align:center;
  
  background:#f7f5f1; padding:20px 24px;
  border-bottom:none;
  overflow:hidden;            
}
.menu_category .cat_head span{ display:inline-block; font-weight:bold; margin:0; }


.menu_category .cat_head span::before{
  content:""; display:inline-block; vertical-align:middle;
  width:1.5em; height:1.5em; margin:-.2em .5em 0 0;
  background:url("../img/logo-mark.png") no-repeat center / contain;
}


.js-slide .cat_head span{
  opacity:0; transform:translateX(-56px);
  
  transition:opacity 1.1s ease, transform 1.6s cubic-bezier(.22,.7,.25,1);
}
.js-slide .cat_head.is-in span{ opacity:1; transform:translateX(0); }

@media (prefers-reduced-motion: reduce){
  .js-slide .cat_head span{ opacity:1; transform:none; transition:none; }
}

.menu_items{ display:grid; grid-template-columns:repeat(4,1fr); gap:52px 40px; }
.menu_item{ width:100%; max-width:330px; margin:0 auto; }
.menu_item .thumb{ position:relative; width:100%; aspect-ratio:1/1; border:14px solid var(--beige); display:block; overflow:hidden; }
.menu_item .thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.menu_item .thumb::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 0 rgba(255,255,255,0); transition:box-shadow .2s; }
.menu_item .thumb:hover::after{ box-shadow:inset 0 0 0 10px rgba(255,255,255,.3); }
.menu_item .title{ display:block; font-size:1rem; font-weight:bold; line-height:1.6; margin:12px 0 8px; }

.menu_item .excerpt{ display:none; }


.lightbox_overlay{
  position:fixed; inset:0; background:rgba(255,255,255,.9); z-index:1000;
  display:none; align-items:center; justify-content:center; cursor:pointer; padding:20px; overflow:hidden;
}
.lightbox_overlay.is-open{ display:flex; animation:lb-overlay-fade .25s ease; }
@keyframes lb-overlay-fade{ from{ opacity:0; } to{ opacity:1; } }
.lightbox_overlay img{
  max-width:90vw; max-height:85vh; box-shadow:0 4px 30px rgba(0,0,0,.25); background:#fff;
  cursor:pointer; will-change:transform,opacity;
}

.lb_loading, .lb_loading div{ border-radius:50%; box-sizing:content-box; }
.lb_loading{
  display:none; width:40px; height:40px; background:rgba(0,0,0,.5);
  position:fixed; z-index:1002; top:50%; left:50%; padding:10px; margin:-40px 0 0 -40px;
  box-shadow:0 0 40px rgba(0,0,0,.75);
}
.lb_loading div{
  width:40px; height:40px; background:#fff;
  animation:imagelightbox-loading .5s ease infinite;
}
@keyframes imagelightbox-loading{
  from{ opacity:.5; transform:scale(.6); }
  50% { opacity:1; transform:scale(1); }
  to  { opacity:.5; transform:scale(.6); }
}

.lb_caption{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:1003;
  text-align:center; font-weight:bold; font-size:1rem; color:#fff; padding:20px;
  background:rgba(0,0,0,.6); border-top:1px solid #333; box-shadow:0 0 5px 0 rgba(0,0,0,.5);
}


.section_topics{ width:var(--container); max-width:100%; margin:0 auto; padding:20px 20px 100px; }
.section_topics .headline{ font-size:2.571rem; font-weight:400; line-height:1.6; margin:0 0 20px; font-family:var(--mincho); }
.news_list li{ border-bottom:1px dotted var(--beige-line); padding:0 0 20px; margin:0 0 20px; }
.news_list .date{ font-size:1rem; font-weight:bold; margin-right:15px; }
.news_list .title{ font-size:1rem; }

.news_thumb{ display:none; }


.archive_headline{ font-size:2rem; font-weight:bold; line-height:1.8; margin:0 0 30px; font-family:var(--mincho); }

#archive_post_list li.topics_state{ display:block; border:none; padding:40px 0; margin:0; text-align:center; color:#888; font-size:1rem; }
#archive_post_list li{ border-bottom:1px dotted var(--beige-line); padding:0 0 40px; margin:0 0 30px; display:flex; gap:25px; align-items:flex-start; }
#archive_post_list .image{ flex:0 0 355px; width:355px; height:210px; display:block; position:relative; overflow:hidden; }
#archive_post_list .image img{ width:355px; height:210px; object-fit:cover; display:block; }
#archive_post_list .image::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 0 rgba(255,255,255,0); transition:box-shadow .2s; }
#archive_post_list .image:hover::after{ box-shadow:inset 0 0 0 10px rgba(255,255,255,.3); }
#archive_post_list .right_content{ flex:1 1 auto; }
#archive_post_list .title{ font-size:1.429rem; font-weight:400; line-height:1.8; margin:5px 0 10px; }
#archive_post_list .meta{ margin:0 0 12px; }
#archive_post_list .date{ font-size:1rem; font-weight:bold; margin-right:15px; }
#archive_post_list .cat{ font-size:0.86rem; }
#archive_post_list .excerpt{ font-size:1rem; line-height:2.2; word-break:break-all; }


.section_insta{ width:var(--container); max-width:100%; margin:0 auto; padding:20px 20px 100px; text-align:center; }
.section_insta .headline{ font-size:2.571rem; font-weight:400; line-height:1.6; margin:0 0 10px; font-family:var(--mincho); }
.section_insta .insta_account{ font-size:1rem; margin:0 0 30px; }
.insta_feed{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.insta_feed a{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:var(--beige); }
.insta_feed img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.insta_feed a:hover img{ transform:scale(1.06); }
.insta_placeholder{
  display:flex; align-items:center; justify-content:center; aspect-ratio:1/1;
  background:var(--beige); color:#a99; font-size:0.86rem; text-align:center; padding:8px;
}
.insta_follow{ margin-top:30px; }


.ft_hero{ position:relative; }
.ft_hero img{ width:100%; display:block; }
.ft_section{ width:var(--container); max-width:100%; margin:0 auto; padding:80px 20px; }
.ft_lead{ max-width:820px; margin:0 auto 60px; text-align:center; }

.ft_lead .desc{ font-size:1.24rem; line-height:2.1; }

.ft_row{ position:relative; padding:56px; margin:0 0 44px; }
.ft_row:last-child{ margin-bottom:0; }


.ft_row--truck1{ background:#f4f1ea; }
.ft_row--truck2{ background:#e9eef0; }
.ft_row--tenant{ background:#edf1ea; }


.ft_head .ft_title{
  position:absolute; top:-22px; left:-22px; z-index:2;
  width:236px; height:236px; border-radius:50%;
  background:#000; color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:18px;
  box-shadow:0 10px 28px rgba(0,0,0,.22);   
}


.js-bounce .ft_head .ft_title{
  opacity:0; transform:scale(.3);
  transition:opacity .32s ease, transform .72s cubic-bezier(.3,1.7,.4,1);
}
.js-bounce .ft_row.is-bounced .ft_title{ opacity:1; transform:scale(1); }


@keyframes ft_sway{
  0%,100%{ transform:rotate(-1.5deg); }
  50%    { transform:rotate(1.5deg); }
}

.ft_head .ft_title{ animation:ft_sway 4.2s ease-in-out infinite; }

.js-bounce .ft_head .ft_title{ animation:none; }
.js-bounce .ft_row.is-bounced .ft_title{ animation:ft_sway 4.2s ease-in-out .9s infinite; }

@media (prefers-reduced-motion: reduce){
  .ft_head .ft_title,
  .js-bounce .ft_row.is-bounced .ft_title{ animation:none; }
}



.ft_row.ft_row--tenant .ft_year{ font-size:0.8rem; letter-spacing:.02em; margin:0 0 10px; }
.ft_row.ft_row--tenant .headline{ font-size:1.36rem; }

@media (prefers-reduced-motion: reduce){
  .js-bounce .ft_head .ft_title{ opacity:1; transform:none; transition:none; }
}
.ft_row .ft_year{
  display:inline-block; font-size:0.95rem; font-weight:bold; letter-spacing:.06em;
  color:#fff; margin:0 0 8px; padding:0 0 6px;
  border-bottom:2px solid var(--accent);   
}
.ft_row .headline{
  font-size:1.72rem; font-weight:bold; line-height:1.25; margin:0;
  font-family:var(--mincho); color:#fff; white-space:nowrap;
}


.ft_head{ display:block; margin:0 0 32px; padding-left:206px; min-height:172px; }
.ft_head .desc{ margin:0; }


.ft_image{ display:grid; gap:20px; margin:0 0 28px; }
.ft_image--2{ grid-template-columns:1fr 1fr; }
.ft_image--1{ grid-template-columns:1fr; }
.ft_image--2 img{ width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; display:block; }

.ft_image--1{ justify-items:center; }
.ft_image--1 img{
  width:auto; height:auto; max-width:100%;
  aspect-ratio:auto; object-fit:contain; display:block;
}




.ft_row .desc{ font-size:1.14rem; line-height:2.0; }

@media (max-width:820px){
  .ft_row{ padding:28px 18px; margin:0 0 24px; }
  
  .ft_head .ft_title{ width:118px; height:118px; padding:8px; top:-12px; left:-12px; }
  .ft_row .ft_year{ font-size:0.7rem; margin:0 0 5px; padding:0 0 4px; }
  .ft_row .headline{ font-size:1rem; margin:0; white-space:nowrap; }
  .ft_head{ display:block; margin:0 0 20px; padding-left:0; padding-top:124px; min-height:0; }
  .ft_head .desc{ margin:0; }
  .ft_image{ gap:12px; margin:0 0 20px; }
  .ft_image--2{ grid-template-columns:1fr; }   
  .ft_image--1 img{ aspect-ratio:auto; }
  .ft_row .desc{ line-height:1.9; }
}
.ft_placeholder{
  display:flex; align-items:center; justify-content:center; min-height:280px;
  background:var(--beige); color:#a99; font-size:0.929rem; border:1px dashed #c9c2b6;
}
.ft_schedule{ background:var(--beige); }
.ft_schedule .inner{ width:var(--container); max-width:100%; margin:0 auto; padding:60px 20px; }
.ft_schedule h2{ text-align:center; font-size:2rem; font-weight:400; font-family:var(--mincho); margin:0 0 30px; }
.ft_schedule table{ width:100%; max-width:720px; margin:0 auto; border-collapse:collapse; background:#fff; }
.ft_schedule th,.ft_schedule td{ border:1px solid var(--beige-line); padding:14px 18px; font-size:1rem; text-align:left; }
.ft_schedule th{ background:#f6f4ef; width:200px; white-space:nowrap; }

.note_placeholder{ font-size:0.86rem; color:#b08; background:#fff6f2; border:1px solid #ffd9c9; padding:10px 14px; border-radius:4px; margin:0 0 30px; }


.contact_wrap{ width:720px; max-width:100%; margin:0 auto; padding:60px 20px 100px; }
.contact_lead{ text-align:center; font-size:1rem; line-height:2.2; margin:0 0 40px; }

.contact_about, .topics_lead{ max-width:40em; margin:0 auto 40px; font-size:.95rem; line-height:2; text-align:left; }
.topics_lead{ margin-left:0; }  
.contact_about a, .topics_lead a{ text-decoration:underline; text-underline-offset:3px; }
.contact_form dl{ margin:0 0 25px; }
.contact_form dt{ font-weight:bold; font-size:1rem; margin:0 0 8px; }
.contact_form dt .req{ color:var(--accent); font-size:0.86rem; margin-left:8px; }
.contact_form input[type=text],
.contact_form input[type=email],
.contact_form textarea{
  width:100%; padding:12px 14px; border:1px solid #ccc; font-size:1rem; font-family:inherit; background:#fff;
}
.contact_form input:focus,.contact_form textarea:focus{ outline:none; border-color:var(--accent); }
.contact_form textarea{ min-height:180px; resize:vertical; }

.privacy_wrap h2{ font-family:var(--mincho); font-size:1.15rem; font-weight:bold; margin:44px 0 14px; padding-bottom:8px; border-bottom:1px solid var(--beige-line); }
.privacy_wrap p, .privacy_wrap li, .privacy_wrap dd, .privacy_wrap dt{ font-size:.95rem; line-height:2; }
.privacy_wrap p{ margin:0 0 14px; }
.privacy_wrap ul{ margin:0 0 14px; padding-left:1.4em; list-style:disc; }
.privacy_wrap a{ text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.privacy_dl{ display:grid; grid-template-columns:6em 1fr; gap:4px 12px; margin:0; }
.privacy_dl dt{ font-weight:bold; }
.privacy_dl dd{ margin:0; }
.privacy_date{ margin-top:44px !important; text-align:right; color:#666; }
.form_status{ margin:20px 0 0; padding:14px 16px; border-radius:4px; font-size:1rem; line-height:1.7; text-align:center; }
.form_status.is-pending{ background:#f3f1ec; color:var(--base); }
.form_status.is-success{ background:#eaf5ea; color:#2e7d32; border:1px solid #c3e2c3; }
.form_status.is-error{ background:#fdecea; color:#c0392b; border:1px solid #f5c6c0; }
.contact_submit{ text-align:center; margin-top:30px; }
.contact_submit button:disabled{ opacity:.6; cursor:default; }
.contact_submit button{
  height:50px; line-height:50px; padding:0 70px; border:none; cursor:pointer;
  color:#fff; font-weight:bold; background:var(--base); transition:background .2s; font-size:1rem;
}
.contact_submit button:hover{ background:var(--accent); }


#footer_top{ background:var(--beige); }
#footer_top_inner{ width:var(--container); max-width:100%; margin:0 auto; padding:70px 20px; text-align:center; }
#footer_logo_image{ margin-bottom:30px; }
#footer_menu_list{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 24px; margin:0 auto 30px; }
#footer_menu_list a{ font-size:0.86rem; }
#footer_social{ display:flex; justify-content:center; gap:18px; }
#footer_social a{ display:block; color:#333; }
#footer_social a:hover{ color:var(--accent); }
#footer_social svg{ display:block; }
#footer_bottom{ height:80px; }
#copyright{ text-align:center; line-height:80px; font-size:0.86rem; color:#888; }

#copyright .privacy_link{ color:inherit; margin-right:1.6em; }
#copyright .privacy_link:hover{ color:var(--accent); }


#return_top{ position:fixed; right:20px; bottom:24px; width:50px; height:50px; border-radius:50%;
  background:#ccc; color:#fff; display:flex; align-items:center; justify-content:center; z-index:40; transition:background .2s; }
#return_top:hover{ background:var(--base); color:#fff; }


@media (max-width:1000px){
  .insta_feed{ grid-template-columns:repeat(3,1fr); }
  .menu_items{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:820px){
  

  
  
  #header{ height:60px; text-align:left; }
  #header.is-stuck #header_inner{ padding:0; }
  #header.is-stuck #logo_image{ margin:0; padding-left:15px; }
  #header.is-stuck #logo_image img{ height:24px; width:auto; }
  #header_inner{ display:flex; align-items:center; height:60px; padding:0; }
  #logo_image{ margin:0; padding-left:15px; }
  #logo_image img{ height:24px; width:auto; } 

  
  .nav_toggle_btn{
    display:block; position:absolute; top:0; right:0; width:60px; height:60px;
    border:none; background:transparent; cursor:pointer; border-radius:0;
  }
  .nav_toggle_btn span{ position:absolute; left:21px; top:29px; width:18px; height:2px; background:#888; transition:.25s; }
  .nav_toggle_btn span::before,.nav_toggle_btn span::after{
    content:""; position:absolute; left:0; width:18px; height:2px; background:#888; transition:.25s;
  }
  .nav_toggle_btn span::before{ top:-6px; } .nav_toggle_btn span::after{ top:6px; }
  #nav_toggle:checked ~ .nav_toggle_btn{ background:#333; }
  #nav_toggle:checked ~ .nav_toggle_btn span,
  #nav_toggle:checked ~ .nav_toggle_btn span::before,
  #nav_toggle:checked ~ .nav_toggle_btn span::after{ background:#fff; }

  
  .global_menu{ display:block; font-weight:normal; }
  .global_menu > ul{
    display:none; flex-direction:column; height:auto; text-align:left;
    position:absolute; top:60px; left:0; width:100%; z-index:30;
    box-shadow:1px 2px 1.5px rgba(0,0,0,.1);
  }
  #nav_toggle:checked ~ .global_menu > ul{ display:flex; }
  .global_menu > ul > li{ border:none; }
  .global_menu > ul > li > a{ height:50px; line-height:50px; padding:0 15px; font-size:0.929rem; font-weight:normal; color:#fff; background:#333; }
  .global_menu > ul > li > a:hover{ color:#fff; background:#333; }
  .global_menu ul ul{ position:static; width:100%; display:block; box-shadow:none; }
  .global_menu ul ul a{ background:#222; color:#fff; padding:0 15px 0 28px; height:50px; line-height:50px; font-size:0.929rem; }
  .global_menu ul ul a:hover{ background:var(--accent); color:#fff; }

  
  #top_slider{ display:none; }
  #sp_slider{ display:block; }

  
  .index_band .band_inner{ display:flex; flex-direction:column; align-items:stretch; gap:0; text-align:left; width:auto; max-width:100%; padding:25px 15px; }
  
  .index_band .band_text{ flex:none; }
  .index_band .headline{ font-size:1.286rem; line-height:1.6; margin:0 0 10px; }
  .index_band .desc{ font-size:1rem; line-height:2; margin:0 0 12px; }
  .index_band .band_image{ flex:none; width:90%; margin:10px auto 0; }
  .index_band .band_image img{ width:100%; height:auto; max-width:none; }
  .index_band .band_image img.spin-in{ width:calc(100% * 424 / 580); max-width:none; margin:calc(100% * -2 / 580) 0; }
  .index_band.reverse .band_inner{ flex-direction:column-reverse; padding:30px 15px; }
  .index_band.reverse .band_image{ margin:0 auto 30px; }
  .index_band .link_button{ display:block; width:max-content; max-width:100%; height:auto; line-height:1.7; padding:14px 24px; margin:10px auto 0; text-align:center; white-space:normal; }

  
  .section_menu{ width:auto; max-width:100%; padding:40px 15px 30px; }
  .menu_head{ margin:0 0 40px; gap:10px; }
  .menu_head .headline{ font-size:1.286rem; line-height:1.6; flex:1 1 auto; }
  .menu_head .desc{ font-size:1rem; line-height:2; flex:1 1 auto; }
  .product_grid{ gap:0; margin-right:0; justify-content:flex-start; }
  .product_grid .product{ width:calc(50% - 8px); height:auto; aspect-ratio:1/1; border:10px solid var(--beige); margin:0 15px 15px 0; }
  .product_grid .product:nth-child(even){ margin-right:0; }
  .product_grid .product .title{ display:none; }
  .archive_button{ margin-top:15px; }

  
  #menu_archive{ padding:40px 15px; }
  .menu_intro{ padding:28px 20px; margin:0 0 30px; }
  .menu_intro .headline{ font-size:1.286rem; line-height:1.6; }
  .menu_intro .desc{ font-size:0.86rem; line-height:2; }
  .menu_category{ margin:0 0 40px; }
  
  .menu_category .cat_head{
    font-size:clamp(15px, 5.9vw, 24px); margin:0 0 25px;
    padding:18px 12px; white-space:nowrap;
  }
  .menu_category .cat_head span::before{ width:1.15em; height:1.15em; margin:-.15em .35em 0 0; }
  .menu_items{ display:block; }
  
  .menu_item{ display:grid; grid-template-columns:120px 1fr; grid-template-areas:"thumb title" "excerpt excerpt"; column-gap:15px; margin:0 0 26px; max-width:none; }
  .menu_item .thumb{ grid-area:thumb; float:none; width:120px; height:120px; aspect-ratio:auto; border:7px solid var(--beige); margin:0; }
  .menu_item .title{ grid-area:title; align-self:center; font-size:1.143rem; margin:0; }
  .menu_item .excerpt{ grid-area:excerpt; display:block; font-size:0.86rem; line-height:2; margin:12px 0 0; }

  
  .section_faq{ width:auto; max-width:100%; padding:40px 15px 10px; }
  .section_faq .headline{ font-size:1.714rem; font-weight:bold; margin:0 0 20px; }
  .faq_item{ padding:0 0 20px; margin:0 0 20px; }
  .faq_q{ font-size:1.05rem; }
  .faq_a{ font-size:0.93rem; line-height:1.9; }

  
  .section_topics{ width:auto; max-width:100%; padding:30px 15px 40px; }
  .section_topics .headline{ font-size:1.714rem; font-weight:bold; margin:0 0 10px; }
  .news_list li{ overflow:hidden; }
  .news_thumb{ display:block; float:left; width:100px; height:100px; margin:0 15px 0 0; overflow:hidden; }
  .news_thumb img{ width:100%; height:100%; object-fit:cover; }
  .news_list .date{ display:block; font-size:0.86rem; line-height:2; margin:0; }
  .news_list .title{ font-size:1rem; font-weight:bold; line-height:2; }

  
  .archive_headline{ font-size:1.286rem; line-height:1.6; }
  #archive_post_list li{ flex-direction:column; padding:0 0 30px; margin:0 0 20px; }
  #archive_post_list .image{ flex:0 0 auto; width:100%; height:auto; max-width:355px; }
  #archive_post_list .image img{ width:100%; height:auto; }
  #archive_post_list .title{ font-size:1rem; font-weight:bold; }
  #archive_post_list .excerpt{ font-size:0.86rem; line-height:2; }

  
  .section_insta{ width:auto; max-width:100%; padding:30px 15px 40px; }
  .section_insta .headline{ font-size:1.714rem; }
  .insta_feed{ grid-template-columns:repeat(3,1fr); gap:4px; }
  .insta_follow{ margin-top:20px; }

  
  .ft_section{ padding:40px 15px; }
  .ft_lead{ margin:0 auto 40px; }
  .ft_lead .desc{ font-size:1.06rem; line-height:1.95; }
  .ft_row,.ft_row.reverse{ flex-direction:column; align-items:stretch; gap:20px; margin:0 0 40px; }
  .ft_row .ft_text,.ft_row .ft_image{ flex:none; } 
  .ft_row .headline{ font-size:1.286rem; }
  .ft_schedule .inner{ padding:40px 15px; }
  .ft_schedule h2{ font-size:1.5rem; }
  .ft_schedule th{ width:auto; white-space:normal; }
  .ft_schedule th,.ft_schedule td{ padding:10px 12px; }

  
  #main_image3{ padding:40px 15px; }
  #main_image3 h1,
  #main_image3 h2{ height:auto; line-height:1.6; font-size:1.5rem; }
  .breadcrumb{ font-size:0.86rem; padding:12px 0; }

  
  .contact_wrap{ padding:40px 15px 60px; }

  
  #footer_top_inner{ padding:40px 20px; }
  #footer_logo_image{ margin:0 0 20px; padding-top:10px; }
  #footer_logo_image img{ width:auto; height:45px; margin:0 auto; }
  #footer_menu_list{ display:none; }
  #footer_bottom{ height:60px; }
  #copyright{ line-height:60px; }

  
  #return_top{ right:0; bottom:0; width:60px; height:60px; border-radius:0; }
}



.cat_grid{
  display:grid;
  
  grid-template-columns:repeat(4, 1fr);
  gap:46px 32px;
}
.cat_card{ display:block; position:relative; text-align:center; }
.cat_photo{
  margin:0; aspect-ratio:1/1; overflow:hidden;
  border:13px solid var(--beige); background:var(--beige);
}
.cat_photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.cat_card:hover .cat_photo img{ transform:scale(1.06); }

.cat_photo--none{ display:flex; align-items:center; justify-content:center; color:#a99; font-size:1rem; }
.cat_name{
  font-family:var(--mincho); font-size:1.15rem; font-weight:bold; line-height:1.5;
  margin:16px 0 6px;
}
.cat_card:hover .cat_name{ color:var(--accent); }

.cat_card.is-soon .cat_photo{ opacity:.72; }
.cat_badge{
  position:absolute; top:0; left:0; z-index:2;
  background:var(--accent); color:#fff; font-size:0.86rem; font-weight:bold;
  padding:4px 12px; letter-spacing:.05em;
}
@media (max-width:1100px){
  .cat_grid{ grid-template-columns:repeat(3, 1fr); }
}
@media (max-width:820px){
  .cat_grid{ grid-template-columns:repeat(2, 1fr); gap:30px 16px; }
  .cat_photo{ border-width:8px; }
  .cat_name{ font-size:1.05rem; margin:12px 0 4px; }
}


.headline.is-typing .tw-char{
  opacity:0;
  transform:translateY(.12em);  
  transition:opacity .18s ease, transform .18s ease;
}
.headline.is-typing .tw-char.is-on{ opacity:1; transform:translateY(0); }


.js-tw .index_band .band_text .desc.lead{
  opacity:0; transform:translateY(6px);
  transition:opacity .5s ease, transform .5s ease;
}
.js-tw .index_band .band_text.is-typed .desc.lead{ opacity:1; transform:none; }


@media (prefers-reduced-motion: reduce){
  .headline.is-typing .tw-char{ opacity:1; transform:none; transition:none; }
  .js-tw .index_band .band_text .desc.lead{ opacity:1; transform:none; transition:none; }
}




.spin-in{
  animation:slow-spin 60s linear infinite;
  transform-origin:center center;
  will-change:transform;
}
@keyframes slow-spin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}


.js-spin .spin-box{
  opacity:0; transform:scale(.86);
  transition:opacity .8s ease, transform 1.1s cubic-bezier(.18,.85,.28,1.06);
  will-change:transform, opacity;
}
.js-spin .spin-box.is-in{ opacity:1; transform:scale(1); }


@media (prefers-reduced-motion: reduce){
  .spin-in{ animation:none; }
  .js-spin .spin-box{ opacity:1; transform:none; transition:none; }
}

.menu_item .thumb,
.cat_photo{
  transition:transform .35s cubic-bezier(.2,.8,.3,1);
  will-change:transform;
}



.menu_item .thumb{ transform:none; }
.menu_item .thumb:hover{ transform:scale(1.02); }


.cat_card:nth-child(5n+1) .cat_photo{ transform:rotate(-2.5deg); }
.cat_card:nth-child(5n+2) .cat_photo{ transform:rotate(3deg); }
.cat_card:nth-child(5n+3) .cat_photo{ transform:rotate(-4deg); }
.cat_card:nth-child(5n+4) .cat_photo{ transform:rotate(2deg); }
.cat_card:nth-child(5n+5) .cat_photo{ transform:rotate(-3.5deg); }
.cat_card:hover .cat_photo{ transform:rotate(0deg); }


@media (max-width:820px){
  
  .menu_item .thumb{ transform:none !important; }
  .cat_photo{ transform:rotate(-1.5deg) !important; }
  .menu_item .thumb:hover,
  .cat_card:hover .cat_photo{ transform:rotate(0deg) !important; }
}


@media (prefers-reduced-motion: reduce){
  .menu_item .thumb,
  .cat_photo{ transform:none !important; transition:none; }
}


.js-mask .ft_image img{
  
  clip-path:circle(0% at 50% 50%);
  
  transition:clip-path 2.4s cubic-bezier(.25,.6,.3,1);
  
}
.js-mask .ft_image.is-in img{ clip-path:circle(78% at 50% 50%); }

.js-mask .ft_image--2.is-in img:nth-child(2){ transition-delay:.7s; }


.ft_image--2 img{ aspect-ratio:3/2; }

@media (max-width:820px){
  .ft_image--2 img{ aspect-ratio:16/10; }
}


@media (prefers-reduced-motion: reduce){
  .js-mask .ft_image img{ clip-path:none; transition:none; }
}


.section_faq{ width:var(--container); max-width:100%; margin:0 auto; padding:60px 20px 20px; }
.section_faq .headline{ font-size:2.571rem; font-weight:400; line-height:1.6; margin:0 0 30px; font-family:var(--mincho); }
.faq_list{ margin:0; }
.faq_item{ border-bottom:1px dotted var(--beige-line); padding:0 0 26px; margin:0 0 26px; }
.faq_item:last-child{ border-bottom:none; }
.faq_q{
  font-family:var(--mincho); font-size:1.15rem; font-weight:bold; line-height:1.7;
  margin:0 0 10px; padding-left:1.6em; text-indent:-1.6em;
}
.faq_q::before{ content:"Q."; color:var(--accent); font-weight:bold; margin-right:.5em; }
.faq_a{ margin:0; font-size:1rem; line-height:2; padding-left:1.6em; text-indent:-1.6em; }
.faq_a::before{ content:"A."; color:#999; font-weight:bold; margin-right:.5em; }


#opening{
  position:fixed; inset:0; z-index:9999; background:#fff;
  display:flex; align-items:center; justify-content:center;
  
  animation:op_curtain 1.4s cubic-bezier(.33,0,.2,1) 2.35s forwards;
  transform-origin:center center;
}
#opening img{
  width:min(260px,46vw); height:auto;
  opacity:0; transform:scale(.985);
  
  
  animation:op_logo 1.5s cubic-bezier(.42,0,.4,1) .5s forwards,
            op_logo_out .85s cubic-bezier(.4,0,.3,1) 2.25s forwards;
}
@keyframes op_logo{
  0%  { opacity:0;   transform:scale(.985); }
  45% { opacity:.35; }
  to  { opacity:1;   transform:scale(1); }
}
@keyframes op_logo_out{
  to{ opacity:0; }
}
@keyframes op_curtain{
  from{ opacity:1; transform:scale(1); }
  to  { opacity:0; transform:scale(1.03); visibility:hidden; }
}
@media (prefers-reduced-motion: reduce){
  #opening{ display:none; }
}
