/**
 * バーチャルフードコート CSS
 */
body.michinoeki h1, body.michinoeki h2{ font-family:'Noto Serif JP', serif; }
.michinoeki-title { margin-bottom:var(--column-gap); }
/* サイト共通コンポーネント（.entry・.button等）をmichinoekiの世界観色に合わせる */
body.michinoeki {
	--link-color:#93711f;
	--hover-color:#fb0;
	--button-hover-color:#93711f;
	--strong-color:#1c2c46;
	--gray-color:#64708a;
	--button-color:#1c2c46;
	--border-color:#dfe3ea;
	--pickup-color:#b8902c;
	--gold-layer:#fff5e0;
	--layer-color:#f2f4f8;
	--container-width:1400px;
}
@media (min-width: 782.1px) {
	body.michinoeki {
		--section-gap:56px;
		--column-gap:32px;
		--font-size: 16px;
	}
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); /* 古いブラウザ用 */
  clip-path: inset(50%);  /* 近年の標準的な書き方 */
  white-space: nowrap;
  border: 0;
}
body.page-home main { --container-width:1200px; }
body:not(.michinoeki-preview) .michinoeki-nav .nav-shop, body:not(.michinoeki-preview) #michinoeki-hero a.button, body:not(.michinoeki-preview) #michinoeki-shops { display:none; }
#michinoeki-header a { color:#fff; }
#michinoeki-header { padding:12px 0; background-color:var(--strong-color); }
.michinoeki-header-inner { display:flex; align-items:center; justify-content:space-between; gap:0; }
.michinoeki-logo { display:inline-flex; width:480px; max-width:100%; align-items:center; flex:none; }
.michinoeki-logo .logo-icon, .michinoeki-logo .logo-1, .michinoeki-logo .logo-2 { display:block; fill:currentColor; }
.michinoeki-logo .logo-icon { width:12%; aspect-ratio:1/1; margin-right:2%; color:var(--pickup-color); }
.michinoeki-logo .logo-1 { width:44%; aspect-ratio:297.97/44.56; margin-right:2%; }
.michinoeki-logo .logo-2 { width:40%; aspect-ratio:276.86/48.27; }
body.michinoeki #site-footer { background-color:var(--strong-color); }
body.michinoeki #footer-logo { display:flex; flex-direction:column; align-items:flex-start; gap:1.25em; width:100%; max-width:480px; }
#footer-logo .footer-michinoeki-logo { width:100%; }
#footer-logo .logo { padding-top:1.1em; border-top:1px solid rgba(255,255,255,.2); }
#footer-logo .michinoeki-logo .logo-icon { background:none; border-radius:0; padding:0; }

.michinoeki-nav ul { display:flex; align-items:center; list-style:none; margin:0; padding:0; gap:2.4em; }
.michinoeki-nav ul li { margin:0; padding:0; }
.michinoeki-nav a { position:relative; display:inline-block; padding:.4em 0; font-weight:700; font-size:.95em; letter-spacing:.05em; color:#fff; text-decoration:none; }
.michinoeki-nav a::after { content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background-color:var(--pickup-color); transition:right .25s ease; }
.michinoeki-nav a:hover, .michinoeki-nav a:focus-visible { color:var(--hover-color); }
.michinoeki-nav a:hover::after, .michinoeki-nav a:focus-visible::after { right:0; }

/* michinoeki配下の固定ページ共通の見出しブロック */
.michinoeki-page-header { background-color:var(--layer-color); padding:var(--section-gap) 0; text-align:center; }
.michinoeki-page-header-en { font-family:'cap', serif; font-size:1.1em; letter-spacing:.3em; text-transform:uppercase; color:var(--pickup-color); margin:0 0 .4em; }
.michinoeki-page-header h1 { display:inline-block; position:relative; margin:0; padding-bottom:.55em; font-size:2.2em; font-weight:700; color:var(--strong-color); }
.michinoeki-page-header h1::after { content:''; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:3em; height:2px; background-color:var(--pickup-color); }
article.entry { line-height:1.9; }
.michinoeki-page-header + .michinoeki-section { padding-top:var(--section-gap); }
.michinoeki-section { padding:0 0 var(--section-gap); overflow:hidden; margin:0; }
.michinoeki-section.layer-color { padding:var(--section-gap) 0; background-color:var(--layer-color); margin:0 0 var(--section-gap) 0; }
.michinoeki-section:first-child { margin-top:0!important; }
.michinoeki-section:last-child { margin-bottom:0!important; }
.michinoeki-section .michinoeki-title { text-align:center; margin-bottom:var(--column-gap); }

@media (max-width: 782px) {
	.michinoeki-page-header h1 { font-size:1.5em; }
	.michinoeki-title { text-align:center; }
}

#michinoeki-hero { position: relative; overflow:hidden; margin:0; padding:0 0 var(--section-gap); overflow:hidden; max-height:78vh; width:100%; aspect-ratio:3/2; }
#michinoeki-hero .button { border-width:1px; border-color:var(--gold-layer) }
#michinoeki-hero picture { display:block; width:100%; height:100%; }
#michinoeki-hero .hero-image { display:block; margin:0; padding:0; width:100%; height:100%; object-fit:cover; }
#michinoeki-hero-title { position:absolute; text-align:center; left: 0; right: 0; bottom:200px; filter: drop-shadow(0 0 .6em rgba(0,0,0,.85)); color:white; }
#michinoeki-hero-title h1 { font-size:3em; margin:0; padding:0; line-height: 1.25; }
#michinoeki-hero-title h1 span { display:inline-block; }
#michinoeki-hero-title p { font-size:1.1em; margin:.5em 0 0; padding:0; line-height: 1.4; }
#michinoeki-hero-title a.button { width:18em; margin:1.5em auto 0; }
#michinoeki-front { overflow:hidden; padding:16px 16px calc(var(--section-gap) + 32px); }
#michinoeki-front-swiper { display:flex; flex-wrap:wrap; justify-content:center; position:relative; margin:0 auto; max-width:1000px; aspect-ratio:2/1; align-items:center; overflow:visible; }
#michinoeki-front-swiper .swiper-slide { margin-right:16px; }
#michinoeki-front-swiper .swiper-slide { height:100%; width:100% }
#michinoeki-front-swiper .swiper-slide a.c-target { overflow:hidden; height:100%; display:block; }
.swiper .swiper-slide { opacity:0; transition:opacity var(--transition);  }
.swiper.swiper-container .swiper-slide { opacity:1; }
#michinoeki-front-swiper .swiper-slide a.c-target img { height:100%; object-fit:cover; aspect-ratio:1/1; }
#michinoeki-front-swiper-pagination, #michinoeki-front-swiper-next, #michinoeki-front-swiper-prev { position: relative; left:auto; right:auto; top:auto; bottom:auto; transform:none; margin:1em 0 -1em; border-width:0;  }
#michinoeki-front-swiper-pagination { order:3; width:auto; display:flex; align-items:center; counter-reset:swiper-num; }
#michinoeki-front-swiper-pagination .swiper-pagination-bullet { counter-increment:swiper-num; width:auto; height:auto; margin:0 .5em!important; background:none; opacity:1; border-radius:0; border-width:0; font-size:.75em; letter-spacing:.05em; color:var(--gray-color); font-family:var(--mincho); }
#michinoeki-front-swiper-pagination .swiper-pagination-bullet::before { content:counter(swiper-num, decimal-leading-zero); }
#michinoeki-front-swiper-pagination .swiper-pagination-bullet-active { color:var(--font-color); font-weight:600; }
#michinoeki-front-swiper-prev { order:2; }
#michinoeki-front-swiper-next { order:4; }
@media screen and ( max-width : 782px ) {
    #michinoeki-front-swiper { width:100%; max-width:480px; height:auto; aspect-ratio:1/1; }
    #michinoeki-front-swiper .swiper-slide a.c-target img { aspect-ratio:1/1; }
}

@media screen and ( max-width : 480px ) {
	#michinoeki-front { padding:0 0 40px; }
	#michinoeki-front-swiper .swiper-slide { margin:0; }
}


/* 出店ショップのプレビュー(商品は出さず、ショップだけをswiperで横並び表示) */
.michinoeki-shop-swiper { position:relative; margin:0; overflow:visible; }
.michinoeki-shop-swiper.swiper-container { overflow:visible; }
.michinoeki-shop-swiper:not(.swiper-container) { overflow:scroll; }
.michinoeki-shop-swiper:not(.swiper-container) .michinoeki-shop-list { width:auto; }
.michinoeki-shop-swiper:not(.swiper-container) .michinoeki-shop-card { width:50%; }
.michinoeki-shop-list { list-style:none; margin:0; padding:0; }
.michinoeki-shop-card { box-sizing:border-box; padding:0; margin-right:var(--padding); display:flex; flex-direction:column; height:auto !important; } /* swiper-slideのheight:100%を打ち消し、align-items:stretchで高さを揃える */
.michinoeki-shop-card a { display:flex; align-items:stretch; gap:0; flex:1; width:100%; box-sizing:border-box; background-color:#ffffff; padding:0; border:1px solid var(--border-color); border-radius:8px; overflow:hidden; text-decoration:none; }
.michinoeki-shop-card-thumb { display:block; flex:none; width:30%; aspect-ratio:1/1; overflow:hidden; }
.michinoeki-shop-card-thumb img { display:block; width:100%; height:100%; object-fit:cover; margin:0; transition:transform .3s ease; }
.michinoeki-shop-card a:hover .michinoeki-shop-card-thumb img { transform:scale(1.05); }
.michinoeki-shop-card-info { align-self:center;  padding:1em; text-align:left; }
.michinoeki-shop-card-en { display:block; margin:0 0 .3em; font-family:'cap', serif; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--pickup-color); }
.michinoeki-shop-card-catch { display:block; font-weight:700; line-height:1.4; font-size:13px; letter-spacing:.05em; color:var(--pickup-color); }
.michinoeki-shop-card-name { display:block; font-weight:700; font-size:1em; line-height:1.3; color:var(--strong-color); transition:color .25s ease; }
.michinoeki-shop-card-desc { display:-webkit-box; margin:.5em 0 0; font-size:13px; line-height:1.6; color:var(--gray-color); -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.michinoeki-section.layer-color .swiper-button-next, .michinoeki-section.layer-color .swiper-button-prev { background-color:white; }
@media (min-width: 782.1px) {
	.michinoeki-shop-swiper .swiper-button-next, .michinoeki-shop-swiper .swiper-button-prev { top:-40px; }
	.michinoeki-shop-swiper .swiper-button-next { right:0; }
	.michinoeki-shop-swiper .swiper-button-prev { right:40px; left:auto; }
}
@media (max-width: 782px) {
	.michinoeki-shop-swiper:not(.swiper-container) .michinoeki-shop-card { width:240px; }
}

/* 商品ラインナップのプレビュー(全出品者の商品を .menu-list / .menu-wrap で一部横断表示。カード・ポップアップは /shop/ と共通) */
#michinoeki-menu-list.menu-list > li { margin:0; width:calc((100% - var(--column-gap) * 3) / 4); }
.michinoeki-menu-more { margin:var(--column-gap) 0 0; text-align:center; }
.michinoeki-menu-more a.button { margin:0 auto; }
.michinoeki-menu-more a.button svg { width:.9em; height:.9em; margin-left:.4em; vertical-align:middle; }

#michinoeki-steps { counter-reset:li; display:flex; font-size:clamp(.8em, 1.8vw, 1.2em);list-style:none; margin:2.5em 0 0; padding:0; align-items:flex-start; justify-content:center; gap:5em; }
#michinoeki-steps > li { counter-increment:li; flex:1; max-width:18em; aspect-ratio:1; box-sizing:border-box; display:flex; border-radius:50%; background-color:#fff; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:1em; gap:.6em; position:relative; }
#michinoeki-steps > li::before { content:counter(li); position:absolute; top:-.15em; left:-.1em; z-index:2; color:var(--pickup-color); font-family:'cap', serif; font-size:3.75em; font-weight:900; line-height:1; }
#michinoeki-steps > li:not(:last-child)::after { content:''; position:absolute; right:-2.6em; top:calc(50% - 1.25em); width:2.5em; height:2.5em; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 18l6-6-6-6' stroke='%23b8902c' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-size:contain; background-repeat:no-repeat; }
#michinoeki-steps img { width:8em; height: 8em; object-fit:contain; margin:0; }
#michinoeki-steps > li p { margin:0; line-height:1.4; font-weight:700; font-size:1.2em; color:var(--strong-color); }

#michinoeki-miryoku { position:relative; z-index:2; margin-top:-170px; text-align:center; background: linear-gradient(to bottom, rgba(33, 22, 57, 0) 0, rgb(21, 34, 64) 100px, #fff 100%);; }
#miryoku-list { display:flex; list-style:none; margin:0; padding:0; gap:2em; }
#miryoku-list > li { flex:1; background-color:#fff; border-radius:8px; overflow:hidden; border:1px solid var(--border-color); text-align:left; }
#miryoku-list img { display:block; width:100%; height:11em; object-fit:cover; margin:0; }
#miryoku-list .miryoku-body { padding:1.25em 1.5em 1.5em; }
#miryoku-list h3 { display:flex; align-items:center; gap:.6em; margin:0 0 .6em; font-size:1.3em; font-weight:700; color:var(--strong-color); }
#miryoku-list .miryoku-icon { display:inline-flex; align-items:center; justify-content:center; width:2em; height:2em; border-radius:50%; background-color:var(--pickup-color); color:#fff; flex:none; }
#miryoku-list .miryoku-icon svg { width:1.2em; height:1.2em; }
#miryoku-list p { line-height:1.6; margin:0 0 .8em; }

#michinoeki-bosyu .bosyu-flex { display:flex; align-items:bottom; gap:4em; }
#michinoeki-bosyu .bosyu-text { flex:1; padding-bottom:var(--column-gap); }
#michinoeki-bosyu .bosyu-text h2 { font-size:clamp(1.5em, 4vw, 1.8em); font-weight:normal; line-height:1.45; margin:0 0 .7em; }
#michinoeki-bosyu .bosyu-text1 { display:inline-flex; align-items:center; gap:.15em; margin-right:.15em; padding:.15em .45em; line-height: 1; background-color:var(--button-color); color:#fff; border-radius:.25em; }
#michinoeki-bosyu .bosyu-text1 i { font-size:1em; }
#michinoeki-bosyu .bosyu-text1 b { font-size:1.8em; font-weight:inherit; position: relative; top:-.06em; color:var(--hover-color); }
#michinoeki-bosyu .bosyu-text3 { font-size:1.7em; }
#michinoeki-bosyu .bosyu-text p { line-height:1.9; margin:0; }
#michinoeki-bosyu .bosyu-image { flex:1.15; }
#michinoeki-bosyu .bosyu-image img { display:block; width:100%; height:auto; border-radius:8px; margin-bottom:-4em;}
#michinoeki-bosyu .bosyu-cta { background-color:var(--gold-layer); border:1px solid var(--border-color); border-radius:8px; text-align:center; padding:2.5em 2em; margin:0; position:relative; z-index:2; }
#michinoeki-bosyu .bosyu-cta h3 { font-size:1.8em; font-weight:700; color:var(--pickup-color); margin:0 0 .8em; }
#michinoeki-bosyu .bosyu-cta p { line-height:1.8; margin:0 0 1.5em; }
#michinoeki-bosyu .bosyu-button { margin:1em auto 0;}
#michinoeki-bosyu .bosyu-button svg { width:1em; height:1em; }

@media (max-width: 1179px) {
	#michinoeki-hero-title h1 { font-size:2.8em; }
	#michinoeki-miryoku { margin-top:-160px; }
	#michinoeki-steps { gap:3em; }
	#michinoeki-steps > li:not(:last-child)::after { right:-2.6em; width:2em; height:2em; }
	#michinoeki-bosyu .bosyu-flex { gap:2.5em; }
}
@media (max-width: 900px) {
	.michinoeki-header-inner { flex-direction:column; gap:.4em; }
	.michinoeki-nav ul { gap:1.3em; flex-wrap:wrap; justify-content:center; }
}
@media (max-width: 782px) {
	#michinoeki-hero { padding-bottom:0; aspect-ratio:1/1;}
	#michinoeki-hero-title h1 { font-size:1.8em; top:calc(50% - 50px); }
	#michinoeki-steps { flex-direction:column; align-items:center; gap:3.5em; font-size:1em; }
	#michinoeki-steps > li { width:180px; max-width:none; }
	#michinoeki-steps > li:not(:last-child)::after { right:auto; left:calc(50% - 1.25em); top:auto; bottom:-2.2em; transform:rotate(90deg); width:2.5em; height:2.5em; }
	#michinoeki-miryoku { margin-top:-100px; }
	#miryoku-list { flex-direction:column; }
	.michinoeki-nav a { font-size:.875em; }
	#michinoeki-menu-list.menu-list > li { width:calc((100% - var(--column-gap)) / 2); }
	#michinoeki-bosyu .bosyu-flex { flex-direction:column; gap:1.5em; }
	#michinoeki-bosyu .bosyu-text h2 { font-size:1.5em; }
	#michinoeki-bosyu .bosyu-cta { margin-top:1.5em; padding:2em 1.25em; }
	#michinoeki-bosyu .bosyu-cta h3 { font-size:1.3em; }
}

/* 個別ショップページ（/shop/{ブランドslug}/） */
#shop-hero { position:relative; min-height:26em; display:flex; align-items:center; overflow:hidden; text-align:left; background-color:var(--layer-color); }
#shop-hero .shop-hero-media { position:absolute; top:0; left:0; width:68%; height:100%; }
#shop-hero .shop-hero-media img { display:block; width:100%; height:100%; object-fit:cover; margin:0; }
#shop-hero .shop-hero-media::after { content:''; position:absolute; inset:0; background-image:linear-gradient(to right, transparent 45%, var(--layer-color) 92%); }
#shop-hero .container { position:relative; z-index:2; display:flex; justify-content:flex-end; }
#shop-hero .shop-hero-content { width:48%; }
#shop-hero .shop-title { margin:0 0 .4em; font-size:.95em; font-weight:700; letter-spacing:.15em; color:var(--pickup-color); }
#shop-hero h1 { position:relative; display:inline-block; margin:0; padding-bottom:.5em; font-size:2.1em; font-weight:700; color:var(--strong-color); }
#shop-hero h1::after { content:''; position:absolute; left:0; bottom:0; width:3em; height:2px; background-color:var(--pickup-color); }
#shop-description { padding:1em 0 0; }

#shop-products { padding:var(--section-gap) 0; }
#shop-products .container { display:flex; align-items:flex-start; gap:var(--column-gap); }
.shop-qty-select { height:2.25em; border:1px solid var(--border-color); border-radius:4px; padding:0 1.4em 0 .4em; font-size:.9em; }

/* サイドバー: 出品者から絞り込み（サムネイル付きなので少し広めに） */
#shop-sidebar { display:block; width: 100%; overflow:hidden; }
#shop-sidebar h2 { margin:0 0 .75em; font-size:1em; font-weight:700; color:var(--strong-color); }
#shop-sidebar-search { position:relative; margin:0 0 1em; font-size:.9em;  }
#shop-sidebar-search-input { display:block; width:100%; box-sizing:border-box; height:2.5em; padding:0 2.5em 0 1em; border:1px solid currentColor; font-size:inherit; border-radius:100px; background-color:#fff; }
#shop-sidebar-search-button { position:absolute; top:0; right:0; width:2.5em; height:2.5em; font-size:inherit; display:flex; align-items:center; justify-content:center; padding:0; border:none; background:none; color:var(--gray-color); cursor:pointer; }
#shop-sidebar-search-button:hover { color:var(--strong-color); }
@media (min-width: 782.1px) {
	#shop-sidebar { flex:0 0 260px; width:260px; }
}
@media (min-width: 1200.1px) {
	#shop-sidebar { flex:0 0 300px; width:300px; }
}

/* サイドバーのカテゴリーカード一覧 */
.michinoeki-cat-list { list-style:none; margin:0; padding:0; }
.michinoeki-cat-card { margin:0 0 .5em; }
.michinoeki-cat-card a { display:flex; align-items:center; justify-content:flex-start; border-radius:10em; overflow:hidden; text-decoration:none; font-size:13px; padding:1px; }
.michinoeki-cat-card-thumb { display:block; flex:none; width:2.5em; height:2.5em; border-radius:10em; overflow:hidden; }
.michinoeki-cat-card-thumb img { display:block; width:100%; height:100%; object-fit:cover; margin:0; }
.michinoeki-cat-card-name { display:block; line-height:1.4; padding:.25em 0 .25em .5em; }
.michinoeki-cat-card.is-active a { font-weight:700; color:#fff; background-color:var(--pickup-color); }

.shop-products-container { flex:1; min-width:0; width:100%; }
.bbq-menu-list { margin-top:0; }
.bbq-menu-list:not(.swiper-wrapper) { gap:var(--padding); }
.michinoeki-shop-swiper .bbq-menu-list > li { padding:0 12px; }
#shop-product-list.menu-list > li { margin:0; width:calc((100% - var(--padding) * 3) / 4); }
.shop-product-list-empty { margin:0; color:var(--gray-color); }

/* カート内容サマリー（商品一覧下） */
.shop-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1em 2em; margin:2.5em 0 0; padding:1.5em; background-color:#fff; border:1px solid var(--border-color); border-radius:8px; }
.shop-summary-totals { display:flex; flex-wrap:wrap; gap:.5em 2em; margin:0; font-size:1em; }
.shop-summary-qty, .shop-summary-amount { font-weight:700; color:var(--strong-color); }
.shop-summary-actions { display:flex; flex-wrap:wrap; gap:1em; }
.shop-summary-actions .button { min-width:10em; }
.shop-vendor-link { margin:1em 0 0; text-align:right; font-size:.8em; }
.shop-vendor-link a { color:var(--gray-color); text-decoration:underline; }

#shop-cart-float { --strong-color: var(--pickup-color); }
@media (max-width: 1280px) {
	#shop-product-list.menu-list > li { margin:0; width:calc((100% - var(--padding) * 2) / 3); }
}
@media (max-width: 782px) {
	#shop-hero { min-height:0; display:block; text-align:center; padding:0 0 2em; }
	#shop-hero .shop-hero-media { position:relative; width:100%; height:14em; }
	#shop-hero .shop-hero-media::after { background-image:linear-gradient(to bottom, transparent 55%, var(--layer-color) 100%); }
	#shop-hero .container { display:block; padding-top:1.5em; }
	#shop-hero .shop-hero-content { width:100%; text-align:center; }
	#shop-hero h1 { font-size:1.5em; }
	#shop-hero h1::after { left:50%; transform:translateX(-50%); }
	#shop-products .container { flex-direction:column; gap:1.5em; }
	.shop-summary { flex-direction:column; align-items:stretch; text-align:center; }
	.shop-summary-totals { justify-content:center; }
	.shop-summary-actions { justify-content:center; }
	#shop-sidebar { overflow:visible; }
	#shop-sidebar-category { overflow:hidden; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; padding:0 var(--column-gap); margin:0 calc( var(--column-gap) * -1); }
	#shop-sidebar-category::-webkit-scrollbar { display:none; }
	.michinoeki-cat-list { display:flex; flex-wrap:nowrap; gap:.5em; }
	.michinoeki-cat-card { font-size:1em; border:1px solid #eee; border-radius:10em; margin:0; }
	.michinoeki-cat-card-name { white-space:nowrap; padding:.25em 1em .25em .5em; }
}
@media (max-width: 480px) {
	#shop-product-list.menu-list > li { width:calc((100% - var(--padding)) / 2); }
}


.products { clear:both; display:block; padding:0; margin:0 -16px; display:flex; justify-content:space-between; flex-wrap:wrap; justify-content:flex-start; } /* important margin-top ** disable padding */
.products::after { content:' '; display:block; clear:both; visibility:hidden; }
.products .product { width:25%; text-align:center; display:block; float:left; padding:16px; margin:0; overflow:visible; position:relative; z-index: 1; }
.products .woocommerce-loop-product__link { display:block; padding:0; margin:0; width:100%; position:relative; }
.products .woocommerce-loop-product__link:hover { color:inherit; border-color:inherit; }
.products .product-image { display:block; position:relative; z-index:1; margin:0; width:100%; }
.products .product-image::before { content:' '; display:block; transition:all .25s ease 0s; padding:100% 0 0 0; margin:0; position:relative; z-index:2; background-color:rgba( 142,166,58,.5); opacity:0; }
.products .product-image::after { content: 'View Detail'; line-height:1; transition:all .5s ease 0s; opacity:0; position:absolute; left:50%; top:50%; right:auto; max-width:100%; bottom:auto; z-index:3; line-height:1.2; color:#fff; display: block; margin:0; height:auto; padding:0 .25em; transform:translate(-50%, -50%); font-size:12px; letter-spacing:.15em; }
.products .product.outofstock .product-image::before { background-color:rgba(100,100,100,.5); opacity:.7; }
.products .product.outofstock .product-image::after { content:'SOLD OUT'; color:#fff; display:block; opacity:1; font-size:1.25em; }
.products .product.status-private .product-image img { filter:saturate(20%) contrast(49%); }
.products .product.status-private .product-image::before { opacity:.7; background-color:rgba(255, 255, 255, 0.7); }
.products .product.status-private .product-image::after { content:'PRIVATE'; color:var(--strong-color); background-color:rgba(255,255,255,.5); display:block; opacity:1; font-size:1.25em; }
.products .product.status-private .private_title_head { display:none; }
.products .woocommerce-loop-product__link:hover .product-image::before, .products .woocommerce-loop-product__link:hover .product-image::after { opacity:1; }
.products .product p.stock.in-stock { display:none }
.products .product-image > img { margin:0; position:absolute; z-index:1; left:0; top:0; right:0; bottom:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.products .product-name { padding:0; margin:8px 0 0; font-size:.9em; height:2.6em; position:relative; }
.products .product-name h4 { margin:0; font-size:1em; line-height:1.3em; max-height:2.6em; width:100%; position:absolute; top:50%; left:0; right:0; -webkit-line-clamp:2; overflow:hidden; transform:translateY(-50% );}
.products .product-price { display:block; font-size:14px; margin:4px 0 0; padding:0; color:var(--gray-color); }
.woocommerce-Price-currencySymbol { font-size:.75em; margin-right:.1em;}
.products .product-price del, .products .product-price .woocommerce-price-suffix { display:none; }
.products .product-flashs { position:absolute; left:0; top:8px; max-width:calc(100% - 8px); z-index:5; font-size:10px; }
.products .product-flash { font-size:inherit; border-radius:1px; display:table; margin-bottom:.2em; line-height:1.2; text-align:left; min-width:auto; }

.swiper-button-disabled { opacity:0.2; }
.bbq-popup .bbq-product-cart-qty { color:var(--pickup-color); }
@media only screen and ( max-width : 1280px ){
  .products .product { width:33.333%; }
}
@media only screen and ( max-width : 1080px ){
  .products .product { padding:12px; }
  .products { margin:0 -12px; }
}
@media only screen and ( max-width : 782px ){
  .products { margin:0 calc(var(--column-gap) * -0.5); }
  .products .product { padding:8px; }
  .products { margin:0 -8px; }
}

/* 出品者ポータル（/shop/{ブランドslug}/?vendor=edit） */
.vendor-portal-wrap { max-width:720px; margin:0 auto; padding:4em 5% 6em; }
.vendor-portal-wrap > h1 { position:relative; margin:0 0 1.75em; padding-bottom:.5em; text-align:center; font-size:2em; font-weight:700; color:var(--strong-color); }
.vendor-portal-wrap > h1::after { content:''; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:3em; height:2px; background-color:var(--pickup-color); }
.vendor-notice { margin:0 0 1.5em; padding:.9em 1.25em; border:1px solid; border-radius:8px; font-size:.9em; line-height:1.6; }
.vendor-notice--error { background-color:#fbeee7; border-color:#e8b98f; color:#a8460a; }
.vendor-notice--success { background-color:#eef3e6; border-color:#b7cf9e; color:#2f5d1e; }
.vendor-notice--info { background-color:var(--layer-color); border-color:var(--border-color); color:#3b4a63; }
.vendor-back-link { display:inline-flex; align-items:center; gap:.4em; margin:0 0 1.5em; font-size:.85em; color:var(--gray-color); }
.vendor-login-form { max-width:360px; margin:0 auto; display:flex; flex-direction:column; gap:1.25em; background-color:#fff; border:1px solid var(--border-color); border-radius:8px; padding:2.5em 2em; }
.vendor-section { margin:0 0 2em; background-color:#fff; border:1px solid var(--border-color); border-radius:8px; padding:2em; }
.vendor-section h2 { margin:0 0 1.25em; padding-bottom:.6em; border-bottom:1px solid var(--border-color); font-size:1.3em; font-weight:700; color:var(--strong-color); }
.vendor-section--logout { text-align:center; background:none; border:none; padding:0; }
.vendor-field { margin:0 0 1.25em; }
.vendor-field:last-child { margin-bottom:0; }
.vendor-field label, .vendor-login-form label { display:flex; flex-direction:column; gap:.5em; font-size:.85em; font-weight:700; letter-spacing:.02em; color:#3b4a63; }
.vendor-field input, .vendor-field select, .vendor-field textarea,
.vendor-login-form input { width:100%; box-sizing:border-box; padding:.75em .9em; font-size:1em; font-family:inherit; color:var(--strong-color); background-color:#fff; border:1px solid var(--border-color); border-radius:6px; transition:border-color .2s ease; }
.vendor-field input:focus, .vendor-field select:focus, .vendor-field textarea:focus,
.vendor-login-form input:focus { outline:2px solid var(--gold-layer); outline-offset:1px; border-color:var(--pickup-color); }
.vendor-field textarea { resize:vertical; line-height:1.6; }
.vendor-thumbnail-preview { margin:0 0 .75em; }
.vendor-thumbnail-preview img { display:block; width:auto; max-width:160px; height:auto; border:1px solid var(--border-color); border-radius:8px; }
.vendor-product-list { list-style:none; margin:0; padding:0; }
.vendor-product-item { display:flex; align-items:center; gap:1em; padding:.9em 0; border-bottom:1px solid var(--border-color); }
.vendor-product-item:last-child { border-bottom:none; }
.vendor-product-item > img { flex:none; width:3.5em; height:3.5em; object-fit:cover; border-radius:8px; }
.vendor-product-item-info { flex:1; min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:.6em; }
.vendor-product-name { font-size:.95em; color:var(--strong-color); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vendor-badge { display:inline-block; padding:.25em .7em; border-radius:99px; font-size:.7em; font-weight:700; letter-spacing:.03em; }
.vendor-badge--pending { background-color:#fff2df; border:1px solid #f0d4a8; color:#a8650a; }

.button--small { padding:.5em .9em !important; font-size:.8em !important; }
.button--text { background:none !important; color:var(--gray-color) !important; padding:0 !important; text-decoration:underline; }

@media (max-width: 782px) {
	.vendor-portal-wrap { padding:2.5em 6% 4em; }
	.vendor-portal-wrap > h1 { font-size:1.5em; }
	.vendor-section, .vendor-login-form { padding:1.5em 1.25em; }
}

/* project ページ（出店者向けプロジェクト紹介） */
.project-split { display:flex; align-items:center; gap:4em; }
.project-split.reverse { flex-direction:row-reverse; }
.project-split-text { flex:1; }
.project-split-text p { line-height:1.9; margin:0 0 .8em; }
.project-split-image { flex:1.1; }
.project-split-image img { display:block; width:100%; height:auto; border-radius:8px; }

#project-target { text-align:center; }
#project-target > .container > p { max-width:var(--content-width); margin:0 auto;  }
.project-tag-list { display:flex; flex-wrap:wrap; justify-content:center; gap:.6em; list-style:none; margin:1.5em 0 0; padding:0; }
.project-tag-list li { padding:.5em 1.2em; background-color:#fff; border:1px solid var(--border-color); border-radius:99px; font-size:.9em; font-weight:700; color:#3b4a63; }

#project-merit { text-align:center; }
#merit-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:2em; list-style:none; margin:2em 0 0; padding:0; text-align:left; }
#merit-list li { display:flex; gap:1.1em; align-items:flex-start; background-color:#fff; border:1px solid var(--border-color); border-radius:8px; padding:1.75em; }
#merit-list .merit-icon { flex:none; display:inline-flex; align-items:center; justify-content:center; width:2.6em; height:2.6em; border-radius:50%; background-color:var(--button-color); color:#fff; }
#merit-list .merit-icon svg { width:1.3em; height:1.3em; }
#merit-list h3 { margin:0 0 .4em; font-size:1.25em; font-weight:700; color:var(--strong-color); }
#merit-list h4 { margin:0 0 .4em; font-size:1.05em; font-weight:700; color:var(--pickup-color); }
#merit-list p { margin:0; line-height:1.7; font-size:.92em; color:#3b4a63; }

#project-bosyu { text-align:center; background-color:var(--layer-color); }
#project-bosyu > .container > p { max-width:40em; margin:0 auto; }
#project-bosyu .bosyu-button { margin:1em auto 0;}
#project-bosyu .bosyu-button svg { width:1em; height:1em; }
@media (max-width: 782px) {
	.project-split, .project-split.reverse { flex-direction:column; gap:1.5em; }
	#merit-list { grid-template-columns:1fr; }
}

.gallery-item img { width:100%; }
.product-form-row { gap:4px; }
.product-form-input-block { display: flex; flex-wrap: nowrap; flex: 1; gap:4px; }
.product-form-row .product-attributes:empty { display:none; }
.product-form-row .single_add_to_cart_button { white-space:nowrap;}
.product-form-info-block .price { color:var(--pickup-color); width:auto; min-width:auto; white-space:nowrap; }
.product-form-info-block .price .amount { font-size:1.6em; }
.woocommerce-product-details__short-description { font-size:.925em; }
.single-product-buttons { --button-color:var(--gray-color); }