/* =========================================================
   ACC-CONTACT theme styles
   Design: ivory/beige, serif headings, gold accent (カンプ準拠)
   ========================================================= */

:root {
	--c-bg: #f4f1ea;
	--c-bg-soft: #faf8f3;
	--c-card: #ffffff;
	--c-ink: #443d34;
	--c-ink-soft: #79705f;
	--c-line: #eae4d9;
	--c-gold: #b39154;
	--c-gold-deep: #9a7b40;
	--c-brown: #3f382f;
	--c-open: #7a9a6d;
	--c-upcoming: #b39154;
	--c-ended: #a49a8c;
	--c-danger: #b0554a;
	--ff-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
	--ff-serif: "Noto Serif JP", "Hiragino Mincho ProN", serif;
	--ff-display: "Cormorant Garamond", "Noto Serif JP", serif;
	--radius: 14px;
	--radius-sm: 8px;
	--shadow: 0 6px 24px rgba(74, 64, 56, 0.08);
	--shadow-soft: 0 2px 10px rgba(74, 64, 56, 0.06);
	--w-container: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--ff-sans);
	color: var(--c-ink);
	background: #fff;
	line-height: 1.8;
	font-size: 15px;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity .2s ease, color .2s ease; }
a:hover { opacity: .8; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, dl, dd, figure { margin: 0; }
input, select, textarea, button { font: inherit; color: inherit; }
svg { display: inline-block; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.serif { font-family: var(--ff-serif); font-weight: 600; letter-spacing: .04em; }
.center { text-align: center; }
.right { text-align: right; }

.skip-link { position: absolute; left: -9999px; top: 0; background: var(--c-brown); color: #fff; padding: 8px 16px; z-index: 999; }
.skip-link:focus { left: 8px; top: 8px; }

.container { max-width: var(--w-container); margin: 0 auto; padding: 0 24px; }
.container--narrow { max-width: 920px; }
.container--auth { max-width: 560px; }

.card { background: var(--c-card); border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.pad { padding: 28px; }
.section { padding: 56px 0; }
.section--tight { padding: 36px 0; }

/* ---------- buttons / badges / tags ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 26px; border-radius: 999px; border: 1px solid transparent; cursor: pointer; font-weight: 600; letter-spacing: .05em; font-size: 14px; line-height: 1.4; background: none; transition: all .25s ease; }
.btn--solid { background: var(--c-brown); color: #fff; }
.btn--solid:hover { background: var(--c-gold-deep); opacity: 1; }
.btn--gold { background: var(--c-gold); color: #fff; }
.btn--ghost { border-color: var(--c-brown); color: var(--c-brown); background: #fff; }
.btn--ghost:hover { background: var(--c-brown); color: #fff; opacity: 1; }
.btn--danger { border-color: var(--c-danger); color: var(--c-danger); background: #fff; }
.btn--danger:hover { background: var(--c-danger); color: #fff; opacity: 1; }
.btn--sm { padding: 8px 18px; font-size: 13px; }
.btn--lg { padding: 15px 40px; font-size: 15px; }
.btn--block { width: 100%; }

.badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 12px; border-radius: 999px; font-size: 11.5px; letter-spacing: .08em; font-weight: 600; background: var(--c-bg); color: var(--c-ink-soft); }
.badge--line { border: 1px solid var(--c-line); background: #fff; }
.badge--gold { background: var(--c-gold); color: #fff; }
.badge--solid { background: var(--c-brown); color: #fff; }
.badge--open { background: var(--c-open); color: #fff; }
.badge--upcoming { background: var(--c-upcoming); color: #fff; }
.badge--ended { background: var(--c-ended); color: #fff; }
.badge--type { background: rgba(255, 255, 255, .92); color: var(--c-brown); }

.tag { display: inline-block; padding: 2px 12px; border-radius: 999px; border: 1px solid var(--c-line); background: var(--c-bg-soft); font-size: 12px; color: var(--c-ink-soft); }
.text-link { color: var(--c-gold-deep); font-weight: 600; font-size: 13.5px; }
.req { color: var(--c-danger); font-size: 11px; margin-left: 6px; }
.empty-note { color: var(--c-ink-soft); font-size: 14px; padding: 14px 4px; }

.alert { padding: 14px 20px; border-radius: var(--radius-sm); font-size: 14px; margin: 0 0 20px; }
.alert--ok { background: #eef4ea; color: #4c6a41; border: 1px solid #d5e3cc; }
.alert--err { background: #f8ecea; color: #8f4038; border: 1px solid #ecd4d0; }
.alert--info { background: #f2eee5; color: var(--c-ink-soft); border: 1px solid var(--c-line); }

/* ---------- header ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(250, 247, 241, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--c-line); }
.site-header__inner { max-width: 1380px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; gap: 24px; min-height: 74px; }
.site-brand { display: flex; flex-direction: column; line-height: 1.25; flex-shrink: 0; }
.site-brand__logo { font-family: var(--ff-display); font-size: 23px; letter-spacing: .12em; font-weight: 600; color: var(--c-brown); }
.site-brand__tag { font-size: 10px; letter-spacing: .14em; color: var(--c-ink-soft); }
.gnav { margin-left: auto; display: flex; align-items: center; gap: 22px; min-width: 0; }
.gnav__list { display: flex; gap: 22px; flex-wrap: nowrap; }
.gnav__list a { font-size: 13px; letter-spacing: .05em; font-weight: 500; padding: 6px 0; position: relative; white-space: nowrap; }
.gnav__list a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1.5px; background: var(--c-gold); transition: width .25s ease; }
.gnav__list a:hover::after, .gnav__list a[aria-current="page"]::after { width: 100%; }
.gnav__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.gnav__actions form { margin: 0; display: flex; }
.gnav__actions .btn { white-space: nowrap; }
.btn--text { border: 0; background: none; color: var(--c-ink-soft); padding: 8px 6px; cursor: pointer; }
.btn--text:hover { color: var(--c-brown); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.menu-toggle { display: none; background: none; border: 0; width: 46px; height: 46px; cursor: pointer; position: relative; flex-shrink: 0; }
.menu-toggle__bar, .menu-toggle__bar::before, .menu-toggle__bar::after { position: absolute; left: 11px; width: 24px; height: 2px; background: var(--c-brown); transition: all .3s ease; content: ""; }
.menu-toggle__bar { top: 22px; }
.menu-toggle__bar::before { left: 0; top: -7px; }
.menu-toggle__bar::after { left: 0; top: 7px; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar::before { top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bar::after { top: 0; transform: rotate(-45deg); }

/* ---------- hero(top) ---------- */
.hero { position: relative; overflow: hidden; background: var(--c-bg-soft); border-bottom: 1px solid var(--c-line); display: block; }
.hero__media { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.hero__media::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(90deg, var(--c-bg-soft) 0%, var(--c-bg-soft) 34%, rgba(250, 248, 243, .86) 46%, rgba(250, 248, 243, 0) 68%); }
.hero__inner { position: relative; z-index: 1; max-width: var(--w-container); margin: 0 auto; padding: 96px 24px; display: block; }
.hero__text { max-width: 560px; }
.hero__title { font-family: var(--ff-serif); font-size: clamp(28px, 3.2vw, 42px); line-height: 1.65; letter-spacing: .08em; color: var(--c-brown); }
.hero__lead { margin-top: 20px; color: var(--c-ink-soft); font-size: 14.5px; line-height: 2.15; }
.hero__note { margin-top: 18px; font-size: 12px; color: var(--c-ink-soft); display: flex; gap: 6px; align-items: center; }

/* ---------- page hero (sub) ---------- */
.page-hero { position: relative; overflow: hidden; background: var(--c-bg-soft); border-bottom: 1px solid var(--c-line); margin-bottom: 40px; display: flex; align-items: center; min-height: 340px; }
.page-hero__media { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.page-hero__media::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(90deg, var(--c-bg-soft) 0%, var(--c-bg-soft) 30%, rgba(250, 248, 243, .88) 44%, rgba(250, 248, 243, 0) 66%); }
.page-hero__inner { position: relative; z-index: 1; max-width: var(--w-container); margin: 0 auto; padding: 58px 24px; display: block; width: 100%; }
.page-hero__text { max-width: 520px; }
.page-hero__title { font-size: clamp(23px, 2.6vw, 32px); color: var(--c-brown); line-height: 1.6; letter-spacing: .06em; }
.page-hero__lead { margin-top: 14px; color: var(--c-ink-soft); font-size: 13.5px; line-height: 2.05; }
.page-hero__note { margin-top: 12px; font-size: 12px; color: var(--c-ink-soft); display: flex; align-items: flex-start; gap: 6px; }
.page-hero__note svg { flex-shrink: 0; margin-top: 4px; }

/* ---------- page hero (sub) ---------- */
.page-hero { background: var(--c-bg-soft); border-bottom: 1px solid var(--c-line); margin-bottom: 36px; }
.page-hero__inner { max-width: var(--w-container); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 1fr 420px; gap: 36px; align-items: center; min-height: 240px; }
.page-hero--compact .page-hero__inner { min-height: 210px; }
.page-hero__title { font-size: clamp(22px, 2.6vw, 32px); color: var(--c-brown); line-height: 1.55; }
.page-hero__lead { margin-top: 12px; color: var(--c-ink-soft); font-size: 14px; }
.page-hero__note { margin-top: 10px; font-size: 12.5px; color: var(--c-gold-deep); display: flex; align-items: center; gap: 6px; }
.page-hero__img { height: 100%; padding: 24px 0; }
.page-hero__img img { width: 100%; height: 100%; max-height: 220px; object-fit: cover; border-radius: var(--radius); }

/* ---------- breadcrumb / section head ---------- */
.breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12px; color: var(--c-ink-soft); padding: 20px 0 8px; }
.breadcrumb em { font-style: normal; color: var(--c-ink); }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.sec-head__title { font-size: 24px; color: var(--c-brown); }
.sec-head__sub { display: block; font-size: 11px; letter-spacing: .22em; color: var(--c-gold); font-family: var(--ff-display); margin-bottom: 4px; text-transform: uppercase; }
.sec-title-center { text-align: center; font-size: 26px; color: var(--c-brown); margin-bottom: 30px; }
.sec-title-left { font-size: 24px; color: var(--c-brown); margin-bottom: 24px; }

/* ---------- cards: creator ---------- */
.creator-card { display: grid; grid-template-columns: 220px 1fr; overflow: hidden; }
.creator-card__img { position: relative; min-height: 190px; }
.creator-card__img img { width: 100%; height: 100%; object-fit: cover; }
.creator-card__img .badge { position: absolute; top: 12px; left: 12px; }
.creator-card__body { padding: 20px 24px; display: flex; flex-direction: column; gap: 8px; }
.creator-card__name { font-size: 18px; color: var(--c-brown); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.creator-card__kana { font-size: 11px; color: var(--c-ink-soft); letter-spacing: .12em; font-family: var(--ff-sans); font-weight: 400; }
.creator-card__desc { font-size: 13.5px; color: var(--c-ink-soft); }
.creator-card__meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 12.5px; color: var(--c-ink-soft); }
.creator-card__meta li { display: flex; align-items: center; gap: 5px; }
.creator-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.creator-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 8px; }

/* ---------- cards: work ---------- */
.work-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.work-grid--3 { grid-template-columns: repeat(3, 1fr); }
.work-card { overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.work-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.work-card__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.work-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.work-card:hover .work-card__img img { transform: scale(1.05); }
.work-card__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.work-card__title { font-size: 14.5px; font-weight: 600; line-height: 1.5; }
.work-card__brand { font-size: 12px; color: var(--c-ink-soft); }
.work-card__price { font-size: 13px; color: var(--c-gold-deep); font-weight: 600; margin-top: auto; }

/* ---------- cards: popup ---------- */
.popup-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.popup-grid--half { grid-template-columns: repeat(2, 1fr); }
.popup-card { display: grid; grid-template-columns: 240px 1fr auto; align-items: center; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.popup-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.popup-card__img { position: relative; height: 100%; min-height: 170px; }
.popup-card__img img { width: 100%; height: 100%; object-fit: cover; }
.popup-card__img .badge { position: absolute; top: 10px; left: 10px; }
.popup-card__body { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.popup-card__title { font-size: 16px; color: var(--c-brown); font-weight: 600; }
.popup-card__brand { font-size: 12px; color: var(--c-ink-soft); }
.popup-card__meta { font-size: 12.5px; color: var(--c-ink-soft); display: flex; flex-direction: column; gap: 3px; }
.popup-card__meta li { display: flex; align-items: center; gap: 6px; }
.popup-card__arrow { padding: 0 18px; color: var(--c-gold); }

/* ---------- cards: recruit ---------- */
.recruit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.recruit-card { overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.recruit-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.recruit-card__img { position: relative; aspect-ratio: 16 / 10; }
.recruit-card__img img { width: 100%; height: 100%; object-fit: cover; }
.recruit-card__img .badge { position: absolute; top: 10px; left: 10px; }
.recruit-card__img .badge--type { top: auto; bottom: 10px; }
.recruit-card__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.recruit-card__brand { font-size: 12px; color: var(--c-ink-soft); }
.recruit-card__title { font-size: 15px; font-weight: 600; line-height: 1.5; }
.meta-list { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--c-ink-soft); }
.meta-list li { display: flex; align-items: flex-start; gap: 6px; }
.meta-list li svg { flex-shrink: 0; margin-top: 4px; }
.meta-list--lg { font-size: 14px; gap: 8px; }
.meta-sub { font-size: 12px; }
.recruit-card__foot { margin-top: auto; padding-top: 8px; }

/* ---------- filter bar ---------- */
.filter-bar { padding: 22px 26px; display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-end; margin-bottom: 30px; }
.filter-bar__selects { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 14px; flex: 1; min-width: 0; }
.fld { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--c-ink-soft); }
.fld select, .fld input[type="search"], .fld input[type="text"], .fld input[type="date"] { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 9px 12px; background: #fff; font-size: 13.5px; min-width: 0; }
.fld--kw { grid-column: span 1; }
.fld__kw { display: flex; }
.fld__kw input { flex: 1; border-radius: var(--radius-sm) 0 0 var(--radius-sm); border-right: 0; }
.fld__kw button { border: 1px solid var(--c-line); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--c-brown); color: #fff; padding: 0 14px; cursor: pointer; }
.fld__range { display: flex; align-items: center; gap: 8px; }
.fld-label { font-size: 12px; color: var(--c-ink-soft); margin-bottom: 8px; }
.filter-bar__check { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.result-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; font-size: 13.5px; color: var(--c-ink-soft); }
.result-bar strong { color: var(--c-gold-deep); font-size: 16px; }

.month-tabs, .status-tabs, .cat-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.month-tabs__item, .status-tabs__item, .cat-tabs__item { border: 1px solid var(--c-line); background: #fff; border-radius: 999px; padding: 7px 18px; font-size: 13px; cursor: pointer; color: var(--c-ink-soft); transition: all .2s ease; }
.month-tabs__item:hover, .status-tabs__item:hover, .cat-tabs__item:hover { border-color: var(--c-gold); color: var(--c-gold-deep); }
.month-tabs__item.is-active, .status-tabs__item.is-active, .cat-tabs__item.is-active { background: var(--c-brown); border-color: var(--c-brown); color: #fff; }
.popup-filter__months, .popup-filter__status { width: 100%; }

/* ---------- slider ---------- */
.slider { position: relative; }
.slider__track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 18px; scrollbar-width: thin; }
.slider__track > * { flex: 0 0 280px; scroll-snap-align: start; }
.slider__btn { position: absolute; top: 42%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line); background: #fff; color: var(--c-brown); cursor: pointer; z-index: 5; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-soft); }
.slider__btn--prev { left: -12px; }
.slider__btn--prev svg { transform: rotate(180deg); }
.slider__btn--next { right: -12px; }

/* ---------- fav button ---------- */
.fav-btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .95); color: var(--c-ink-soft); border-radius: 999px; padding: 7px 14px; font-size: 12.5px; cursor: pointer; transition: all .2s ease; }
.fav-btn:hover { border-color: var(--c-gold); color: var(--c-gold-deep); }
.fav-btn.is-on { background: #fdf3f3; border-color: #dfa0a0; color: #c96e6e; }
.fav-btn.is-on svg { fill: #d98080; stroke: #d98080; animation: acc-heart-pop .3s ease; }
@keyframes acc-heart-pop {
	0% { transform: scale(.7); }
	55% { transform: scale(1.25); }
	100% { transform: scale(1); }
}
.fav-btn--icon { padding: 8px; }

/* ---------- pagination ---------- */
.pagination { display: flex; justify-content: center; gap: 8px; margin: 36px 0 10px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 50%; border: 1px solid var(--c-line); background: #fff; font-size: 13.5px; color: var(--c-ink-soft); }
.pagination .page-numbers.current { background: var(--c-brown); border-color: var(--c-brown); color: #fff; }
.pagination .page-numbers.prev, .pagination .page-numbers.next { border-radius: 999px; }

/* ---------- top page ---------- */
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.feature-card { overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.feature-card__img { aspect-ratio: 4 / 3; }
.feature-card__img img { width: 100%; height: 100%; object-fit: cover; }
.feature-card__body { padding: 18px 20px 22px; }
.feature-card__title { font-size: 16px; color: var(--c-brown); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.feature-card__desc { font-size: 13px; color: var(--c-ink-soft); }

.flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; counter-reset: flow; }
.flow--4 { grid-template-columns: repeat(4, 1fr); }
.flow__item { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 26px 20px; text-align: center; position: relative; }
.flow--plain .flow__item { background: none; border: 0; border-radius: 0; padding: 10px 14px; }
.flow__num { display: block; font-family: var(--ff-display); font-size: 13px; letter-spacing: .2em; color: var(--c-gold); margin-bottom: 8px; }
.flow__icon { width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 50%; background: var(--c-bg-soft); border: 1px solid var(--c-line); display: flex; align-items: center; justify-content: center; color: var(--c-gold-deep); }
.flow__title { font-size: 14.5px; font-weight: 600; margin-bottom: 6px; color: var(--c-brown); }
.flow__item p { font-size: 12.5px; color: var(--c-ink-soft); }

.voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.voice { padding: 26px 24px; display: flex; gap: 18px; align-items: flex-start; }
.voice__avatar { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.voice__body { display: flex; flex-direction: column; gap: 12px; }
.voice__body > p:first-child { font-size: 13px; color: var(--c-ink-soft); line-height: 2; }
.voice__name { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: var(--c-ink-soft); }
.voice__name strong { font-size: 14.5px; color: var(--c-brown); }

.cta-band { text-align: center; }
.cta-band__title { font-size: 24px; color: var(--c-brown); margin-bottom: 10px; }
.cta-band p { color: var(--c-ink-soft); margin-bottom: 24px; }

/* ---------- creators page ---------- */
.pickup-creators { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.pickup-creators a { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.pickup-creators img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: var(--shadow-soft); }
.pickup-creators__name { font-size: 12.5px; font-weight: 600; }
.creator-list { display: flex; flex-direction: column; gap: 18px; }
.notice-band { display: flex; gap: 12px; align-items: flex-start; background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--radius); padding: 18px 22px; font-size: 13px; color: var(--c-ink-soft); margin: 30px 0; }
.notice-band svg { flex-shrink: 0; color: var(--c-gold-deep); margin-top: 4px; }

/* ---------- author (作家プロフィール) ---------- */
.profile-hero { position: relative; border-radius: var(--radius); overflow: hidden; margin-bottom: 34px; }
.profile-hero__bg { height: 260px; background: var(--c-line); }
.profile-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.profile-hero__body { background: #fff; border: 1px solid var(--c-line); border-top: 0; padding: 0 34px 30px; display: grid; grid-template-columns: auto 1fr auto; gap: 26px; }
.profile-hero__avatar { width: 132px; height: 132px; border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: var(--shadow-soft); margin-top: -56px; background: #fff; }
.profile-hero__name { font-size: 24px; color: var(--c-brown); padding-top: 18px; }
.profile-hero__kana { font-size: 11px; letter-spacing: .16em; color: var(--c-ink-soft); font-family: var(--ff-sans); font-weight: 400; margin-left: 12px; }
.profile-hero__concept { color: var(--c-ink-soft); font-size: 13.5px; margin-top: 6px; }
.profile-hero__meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; font-size: 12.5px; color: var(--c-ink-soft); }
.profile-hero__meta li { display: flex; align-items: center; gap: 6px; }
.profile-hero__actions { display: flex; flex-direction: column; gap: 10px; padding-top: 22px; }

.panel-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 22px; margin-bottom: 34px; }
.panel { padding: 26px; }
.panel__title { font-size: 16px; color: var(--c-brown); margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--c-line); }
.panel p { font-size: 13.5px; color: var(--c-ink-soft); }
.panel ul.dot-list li { position: relative; padding-left: 16px; font-size: 13.5px; color: var(--c-ink-soft); margin-bottom: 4px; }
.panel ul.dot-list li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--c-gold); }

.side-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.side-box { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.side-box--gold { background: linear-gradient(135deg, #f6efdf, #fff); border-color: #e8dcc2; }
.side-box__title { font-size: 15.5px; color: var(--c-brown); }
.side-box p { font-size: 13px; color: var(--c-ink-soft); }

/* ---------- work detail ---------- */
.work-detail { display: grid; grid-template-columns: 1.05fr 1fr; gap: 44px; padding: 20px 0 10px; }
.wd-slider__main { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; background: #fff; border: 1px solid var(--c-line); }
.wd-slider__main img { width: 100%; height: 100%; object-fit: cover; }
.wd-slider__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .92); color: var(--c-brown); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.wd-slider__nav--prev { left: 12px; }
.wd-slider__nav--prev svg { transform: rotate(180deg); }
.wd-slider__nav--next { right: 12px; }
.wd-slider__thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.wd-slider__thumbs button { width: 72px; height: 72px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; cursor: pointer; background: none; }
.wd-slider__thumbs button.is-active { border-color: var(--c-gold); }
.wd-slider__thumbs img { width: 100%; height: 100%; object-fit: cover; }

.work-detail__title { font-size: 26px; color: var(--c-brown); margin: 10px 0 6px; line-height: 1.5; }
.work-detail__brand { font-size: 13px; color: var(--c-gold-deep); margin-bottom: 14px; }
.work-detail__lead { font-size: 14px; color: var(--c-ink-soft); margin-bottom: 20px; }

.spec-table { border-top: 1px solid var(--c-line); margin-bottom: 22px; }
.spec-table__row { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 11px 4px; border-bottom: 1px solid var(--c-line); font-size: 13.5px; }
.spec-table__row dt { color: var(--c-ink-soft); display: flex; align-items: center; gap: 7px; }

.shop-box { background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--radius); padding: 22px; display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.shop-box__note { font-size: 12.5px; color: var(--c-ink-soft); position: relative; padding-left: 14px; }
.shop-box__mark { position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); }

.share-row { display: flex; align-items: center; gap: 14px; font-size: 12.5px; color: var(--c-ink-soft); flex-wrap: wrap; }
.share-row a { color: var(--c-brown); }
.share-row__label { font-size: 12px; }

.concept-panel { display: grid; grid-template-columns: 1fr 320px; gap: 30px; padding: 34px 38px; align-items: center; }
.concept-panel h2 { font-size: 20px; color: var(--c-brown); margin-bottom: 12px; }
.concept-panel p { font-size: 14px; color: var(--c-ink-soft); }
.concept-panel__img img { border-radius: var(--radius); }

.detail-bottom { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.db-col { padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.db-col__title { font-size: 16px; color: var(--c-brown); padding-bottom: 10px; border-bottom: 1px solid var(--c-line); }
.mini-works li a { display: flex; align-items: center; gap: 12px; font-size: 13px; padding: 7px 0; }
.mini-works__img { width: 54px; height: 54px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.mini-works__img img { width: 100%; height: 100%; object-fit: cover; }
.mini-profile { display: flex; gap: 14px; align-items: center; }
.mini-profile img { border-radius: 50%; object-fit: cover; }
.mini-profile__name { font-size: 15px; color: var(--c-brown); }
.mini-profile__desc { font-size: 12.5px; color: var(--c-ink-soft); }
.mini-popup { display: flex; gap: 14px; }
.mini-popup__img { width: 92px; height: 92px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.mini-popup__img img { width: 100%; height: 100%; object-fit: cover; }
.mini-popup__body { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--c-ink-soft); }
.mini-popup__body strong { font-size: 13.5px; color: var(--c-ink); }

/* ---------- popup archive/detail ---------- */
.popup-featured { display: grid; grid-template-columns: 380px 1fr auto; align-items: center; overflow: hidden; }
.popup-featured__img { height: 100%; min-height: 210px; }
.popup-featured__img img { width: 100%; height: 100%; object-fit: cover; }
.popup-featured__body { padding: 24px 28px; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; color: var(--c-ink-soft); }
.popup-featured__title { font-size: 20px; color: var(--c-brown); }
.popup-featured__venue { display: flex; align-items: center; gap: 6px; }

.staff-band { background: linear-gradient(120deg, #efe7d6, #f8f4ea); border-radius: var(--radius); padding: 36px; display: grid; grid-template-columns: 300px 1fr; gap: 30px; margin: 40px 0; }
.staff-band__intro h2 { font-size: 20px; color: var(--c-brown); margin-bottom: 10px; }
.staff-band__intro p { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 16px; }
.staff-band__items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.staff-band__item { display: grid; grid-template-columns: 130px 1fr; overflow: hidden; }
.staff-band__img { height: 100%; }
.staff-band__img img { width: 100%; height: 100%; object-fit: cover; }
.staff-band__body { padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--c-ink-soft); }
.staff-band__body strong { font-size: 13.5px; color: var(--c-ink); }

.popup-detail { display: grid; grid-template-columns: 1fr 330px; gap: 36px; padding-bottom: 20px; }
.popup-detail__media { position: relative; border-radius: var(--radius); overflow: hidden; margin-bottom: 26px; }
.popup-detail__media .badge { position: absolute; top: 14px; z-index: 2; }
.popup-detail__media .badge--line { left: 14px; background: rgba(255, 255, 255, .95); }
.popup-detail__media .badge:not(.badge--line) { left: 118px; }
.popup-detail__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.popup-detail__title { font-size: 26px; color: var(--c-brown); line-height: 1.5; }
.popup-detail__by { font-size: 13px; color: var(--c-gold-deep); margin: 6px 0 14px; }
.popup-detail__lead { font-size: 14px; color: var(--c-ink-soft); margin-bottom: 18px; }
.pd-section { margin-top: 38px; }
.pd-section__title { font-size: 19px; color: var(--c-brown); margin-bottom: 16px; padding-left: 14px; border-left: 3px solid var(--c-gold); }
.pd-creator { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; padding: 24px; align-items: center; }
.pd-creator img { border-radius: 50%; object-fit: cover; }
.pd-creator__name { font-size: 17px; color: var(--c-brown); }
.pd-creator__desc { font-size: 13px; color: var(--c-ink-soft); margin: 4px 0 10px; }
.pd-creator__links { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.pd-creator__works { display: grid; grid-template-columns: repeat(2, 68px); gap: 8px; }
.pd-creator__works img { width: 68px; height: 68px; border-radius: var(--radius-sm); object-fit: cover; }

.schedule { overflow: hidden; }
.schedule__head, .schedule__row { display: grid; grid-template-columns: 150px 170px 1fr; gap: 14px; padding: 13px 20px; font-size: 13.5px; }
.schedule__head { background: var(--c-bg-soft); color: var(--c-ink-soft); font-size: 12px; letter-spacing: .08em; }
.schedule__row { border-top: 1px solid var(--c-line); }

/* ---------- recruit detail / apply ---------- */
.recruit-detail { overflow: hidden; margin-bottom: 26px; }
.recruit-detail__media { position: relative; }
.recruit-detail__media img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.recruit-detail__media .badge--solid { position: absolute; top: 14px; left: 14px; }
.recruit-detail__media .badge--type { position: absolute; top: 14px; left: 110px; }
.recruit-detail__body { padding: 30px 34px 34px; }
.recruit-detail__brand { font-size: 13px; color: var(--c-gold-deep); }
.recruit-detail__title { font-size: 24px; color: var(--c-brown); margin: 4px 0 18px; }
.recruit-detail__content { font-size: 14px; color: var(--c-ink-soft); }
.apply { margin-bottom: 30px; }
.apply h2 { font-size: 20px; color: var(--c-brown); margin-bottom: 8px; }
.apply__note { font-size: 12.5px; color: var(--c-ink-soft); margin-bottom: 18px; }

/* ---------- about ---------- */
.about-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 10px 0 30px; }
.about-quick li { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 24px 20px; text-align: center; display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; color: var(--c-ink-soft); }
.about-quick strong { font-size: 14.5px; color: var(--c-brown); }
.about-quick__icon { width: 56px; height: 56px; margin: 0 auto 4px; border-radius: 50%; background: var(--c-bg-soft); border: 1px solid var(--c-line); display: flex; align-items: center; justify-content: center; color: var(--c-gold-deep); }
.merit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.merit { overflow: hidden; padding-bottom: 20px; }
.merit__img { display: block; aspect-ratio: 3 / 2; }
.merit__img img { width: 100%; height: 100%; object-fit: cover; }
.merit__title { font-size: 15px; color: var(--c-brown); padding: 16px 18px 8px; display: flex; align-items: center; gap: 10px; }
.merit__num { font-family: var(--ff-display); font-size: 13px; color: var(--c-gold); letter-spacing: .1em; }
.merit p { padding: 0 18px; font-size: 12.5px; color: var(--c-ink-soft); }
.about-two { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; }
.about-two .flow--4 { grid-template-columns: repeat(2, 1fr); }
.faq { display: flex; flex-direction: column; gap: 12px; }
.faq__item { padding: 0; overflow: hidden; }
.faq__item summary { list-style: none; cursor: pointer; padding: 16px 20px; font-size: 14px; font-weight: 600; color: var(--c-brown); position: relative; padding-right: 44px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: var(--c-gold); font-size: 18px; }
.faq__item[open] summary::after { content: "−"; }
.faq__item p { padding: 0 20px 18px; font-size: 13.5px; color: var(--c-ink-soft); }
.cta-two { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; }
.cta-two__note { padding: 26px; display: flex; gap: 18px; align-items: center; font-size: 13.5px; color: var(--c-ink-soft); }
.cta-two__note img { border-radius: var(--radius-sm); flex-shrink: 0; }
.cta-two__box { padding: 32px; text-align: center; display: flex; flex-direction: column; gap: 12px; align-items: center; background: linear-gradient(135deg, #f6efdf, #fff); }
.cta-two__title { font-size: 20px; color: var(--c-brown); }
.closing-band { text-align: center; padding: 46px 20px 60px; font-size: 17px; color: var(--c-brown); line-height: 2.2; }

/* ---------- auth / forms ---------- */
.auth { margin: 40px auto 60px; }
.auth__title { font-size: 22px; color: var(--c-brown); text-align: center; margin-bottom: 16px; }
.auth__lead { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 18px; }
.auth__alt { text-align: center; font-size: 13px; margin-top: 14px; color: var(--c-ink-soft); }
.form__row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.form__row label, .form__label { font-size: 13px; font-weight: 600; color: var(--c-brown); }
.form__row input[type="text"], .form__row input[type="email"], .form__row input[type="password"], .form__row input[type="url"], .form__row input[type="number"], .form__row input[type="date"], .form__row input[type="search"], .form__row select, .form__row textarea { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 11px 14px; background: #fff; font-size: 14px; width: 100%; }
.form__row textarea { resize: vertical; }
.form__row input:focus, .form__row select:focus, .form__row textarea:focus { outline: 2px solid rgba(179, 145, 84, .35); border-color: var(--c-gold); }
.form__row--check { flex-direction: row; align-items: center; }
.form__row--check label { font-weight: 400; font-size: 13.5px; display: flex; align-items: center; gap: 8px; color: var(--c-ink); }
.form__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 22px; }
.form__cols--tax { grid-template-columns: 1fr; }
.form__submit { display: flex; gap: 12px; margin-top: 8px; }
.check-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.check-tag { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--c-line); border-radius: 999px; padding: 6px 14px; font-size: 12.5px; background: #fff; cursor: pointer; font-weight: 400; }
.check-tag:has(input:checked) { background: var(--c-brown); color: #fff; border-color: var(--c-brown); }
.acc-hp-wrap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- mypage ---------- */
.mypage { display: grid; grid-template-columns: 280px 1fr; gap: 30px; padding-top: 30px; padding-bottom: 70px; }
.mypage__side { display: flex; flex-direction: column; gap: 18px; }
.mypage__user { padding: 20px; display: flex; gap: 14px; align-items: center; }
.mypage__user img { border-radius: 50%; object-fit: cover; }
.mypage__name { font-size: 15px; color: var(--c-brown); }
.mypage__role { font-size: 11.5px; color: var(--c-ink-soft); margin-bottom: 4px; }
.mypage__nav { padding: 18px 14px; }
.mypage__nav-title { font-size: 11px; letter-spacing: .14em; color: var(--c-ink-soft); padding: 0 10px 10px; }
.mypage__nav a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius-sm); font-size: 13.5px; color: var(--c-ink-soft); }
.mypage__nav a:hover { background: var(--c-bg-soft); opacity: 1; }
.mypage__nav a.is-active { background: var(--c-brown); color: #fff; }
.mypage__logout { border-top: 1px solid var(--c-line); margin-top: 12px; padding-top: 12px; }
.mypage__logout button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; background: none; color: var(--c-ink-soft); cursor: pointer; font-size: 13.5px; border-radius: var(--radius-sm); }
.mypage__logout button:hover { background: var(--c-bg-soft); }
.mypage__title { font-size: 22px; color: var(--c-brown); margin-bottom: 6px; }
.mypage__lead { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 22px; }
.mypage__sub { font-size: 16.5px; color: var(--c-brown); margin: 26px 0 14px; }
.mypage__head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }

.stat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 10px; }
.stat-grid li { padding: 18px 16px; display: flex; flex-direction: column; gap: 4px; }
.stat-grid__icon { color: var(--c-gold-deep); }
.stat-grid__label { font-size: 11.5px; color: var(--c-ink-soft); }
.stat-grid strong { font-size: 22px; font-family: var(--ff-serif); color: var(--c-brown); }

.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.quick-grid a { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 14px; font-size: 13px; font-weight: 600; color: var(--c-brown); text-align: center; transition: transform .2s ease; }
.quick-grid a:hover { transform: translateY(-3px); opacity: 1; }
.quick-grid svg { color: var(--c-gold-deep); }
.dash-two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 26px; }
.date-list li a { display: flex; gap: 14px; padding: 10px 0; font-size: 13.5px; border-bottom: 1px dashed var(--c-line); }
.date-list__date { color: var(--c-gold-deep); font-weight: 600; flex-shrink: 0; }

.manage-list { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.manage-list__item { display: grid; grid-template-columns: 24px 84px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 18px; }
.manage-list__thumb { width: 84px; height: 84px; border-radius: var(--radius-sm); overflow: hidden; background: var(--c-bg-soft); }
.manage-list__thumb img { width: 100%; height: 100%; object-fit: cover; }
.manage-list__body { display: flex; flex-direction: column; gap: 5px; font-size: 14px; }
.manage-list__meta { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--c-ink-soft); }
.manage-list__actions { display: flex; gap: 8px; align-items: center; }
.manage-list__actions form { margin: 0; }

.app-list { display: flex; flex-direction: column; gap: 16px; }
.app-list__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.app-list__head strong { font-size: 15px; color: var(--c-brown); }
.app-list__date { font-size: 12px; color: var(--c-ink-soft); margin-left: auto; }
.app-list__target, .app-list__contact { font-size: 13px; color: var(--c-ink-soft); }
.app-list__msg { font-size: 13.5px; background: var(--c-bg-soft); border-radius: var(--radius-sm); padding: 14px 16px; margin: 10px 0; }
.app-list__actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.app-list__actions form { display: flex; gap: 10px; margin: 0; }

.msg-layout { display: grid; grid-template-columns: 280px 1fr; gap: 20px; align-items: start; }
.msg-layout__list { padding: 16px; }
.msg-layout__title { font-size: 12px; letter-spacing: .1em; color: var(--c-ink-soft); padding: 0 6px 10px; }
.msg-layout__list a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--radius-sm); font-size: 13.5px; }
.msg-layout__list a img { border-radius: 50%; object-fit: cover; }
.msg-layout__list a.is-active { background: var(--c-bg-soft); }
.msg-layout__thread { padding: 22px; min-height: 420px; display: flex; flex-direction: column; }
.msg-layout__with { font-size: 13.5px; font-weight: 600; color: var(--c-brown); padding-bottom: 12px; border-bottom: 1px solid var(--c-line); margin-bottom: 14px; }
.msg-thread { flex: 1; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; max-height: 460px; padding: 4px; }
.msg-bubble { max-width: 74%; align-self: flex-start; }
.msg-bubble--me { align-self: flex-end; }
.msg-bubble__body { background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: 14px 14px 14px 4px; padding: 11px 15px; font-size: 13.5px; }
.msg-bubble--me .msg-bubble__body { background: #efe6d2; border-radius: 14px 14px 4px 14px; }
.msg-bubble__time { display: block; font-size: 10.5px; color: var(--c-ink-soft); margin-top: 3px; }
.msg-bubble--me .msg-bubble__time { text-align: right; }
.msg-form { display: flex; gap: 10px; margin-top: 16px; align-items: flex-end; }
.msg-form textarea { flex: 1; border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 10px 14px; }

/* ---------- footer ---------- */
.site-footer { background: #efe9dd; border-top: 1px solid var(--c-line); margin-top: 70px; }
.site-footer__inner { max-width: var(--w-container); margin: 0 auto; padding: 54px 24px 34px; display: grid; grid-template-columns: 1.15fr 2.1fr .6fr; gap: 40px; align-items: start; }
.site-footer__logo { font-family: var(--ff-display); font-size: 21px; letter-spacing: .12em; color: var(--c-brown); }
.site-footer__tag { font-size: 12px; color: var(--c-ink-soft); margin-top: 4px; }
.site-footer__note { font-size: 11.5px; color: var(--c-ink-soft); margin-top: 14px; line-height: 1.9; }
.site-footer__nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.fnav-col__title { font-size: 13px; letter-spacing: .1em; font-weight: 600; color: var(--c-brown); margin-bottom: 13px; }
.fnav-col li { margin-bottom: 9px; }
.fnav-col li a { font-size: 12.5px; color: var(--c-ink-soft); }
.site-footer__sns .sns-list { display: flex; gap: 14px; color: var(--c-brown); }
.site-footer__bottom { border-top: 1px solid var(--c-line); text-align: center; padding: 18px 20px; font-size: 11.5px; color: var(--c-ink-soft); }
.site-footer__bottom a { color: var(--c-gold-deep); }

/* =========================================================
   Responsive (SP 375px カンプ準拠)
   ========================================================= */
@media (max-width: 1080px) {
	.work-grid, .feature-grid { grid-template-columns: repeat(3, 1fr); }
	.recruit-grid, .voice-grid, .detail-bottom, .merit-grid, .about-quick { grid-template-columns: repeat(2, 1fr); }
	.pickup-creators { grid-template-columns: repeat(4, 1fr); }
	.stat-grid { grid-template-columns: repeat(3, 1fr); }
	.flow { grid-template-columns: repeat(3, 1fr); }
	.panel-grid, .side-trio { grid-template-columns: 1fr 1fr; }
	.about-two, .cta-two, .staff-band { grid-template-columns: 1fr; }
	.popup-detail { grid-template-columns: 1fr; }
	.popup-detail__side { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
}

@media (max-width: 860px) {
	body { font-size: 14px; }
	.section { padding: 40px 0; }
	.container { padding: 0 18px; }


	.work-grid, .work-grid--3, .feature-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.popup-grid, .popup-grid--half, .recruit-grid, .voice-grid, .merit-grid, .detail-bottom, .dash-two, .quick-grid, .staff-band__items, .cta-two, .form__cols, .msg-layout, .panel-grid, .side-trio, .popup-detail__side { grid-template-columns: 1fr; }
	.about-quick { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.flow, .flow--4, .about-two .flow--4 { grid-template-columns: 1fr 1fr; gap: 12px; }
	.pickup-creators { grid-template-columns: repeat(3, 1fr); }
	.stat-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }

	.creator-card, .popup-card, .popup-featured { grid-template-columns: 1fr; }
	.creator-card__img { min-height: 0; aspect-ratio: 16 / 9; }
	.popup-card__img { min-height: 0; aspect-ratio: 16 / 9; }
	.popup-card__arrow { display: none; }
	.popup-featured__img { min-height: 0; aspect-ratio: 16 / 9; }
	.staff-band { padding: 24px 18px; }
	.staff-band__item { grid-template-columns: 100px 1fr; }

	.work-detail { grid-template-columns: 1fr; gap: 26px; }
	.concept-panel { grid-template-columns: 1fr; padding: 24px; }
	.profile-hero__body { grid-template-columns: 1fr; padding: 0 20px 24px; gap: 12px; }
	.profile-hero__avatar { width: 100px; height: 100px; margin-top: -44px; }
	.profile-hero__actions { flex-direction: row; padding-top: 0; }
	.pd-creator { grid-template-columns: 1fr; text-align: left; }
	.pd-creator__works { grid-template-columns: repeat(4, 1fr); }
	.schedule__head, .schedule__row { grid-template-columns: 90px 110px 1fr; padding: 11px 12px; font-size: 12.5px; gap: 8px; }

	.filter-bar { padding: 18px; }
	.filter-bar__selects { grid-template-columns: 1fr; }
	.slider__btn { width: 38px; height: 38px; opacity: .96; }
	.slider__track > * { flex-basis: 78%; }

	.mypage { grid-template-columns: 1fr; padding-top: 18px; }
	.mypage__side { position: static; }
	.mypage__nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
	.manage-list__item { grid-template-columns: 22px 64px 1fr; gap: 12px; }
	.manage-list__thumb { width: 64px; height: 64px; }
	.manage-list__actions { grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; }
	.manage-list__check { align-self: center; }
	.msg-bubble { max-width: 88%; }

	.cta-band { padding: 36px 22px; }
	.pagination .page-numbers { min-width: 36px; height: 36px; }
}

@media (max-width: 480px) {
	.work-grid, .work-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.work-card__body { padding: 11px 12px 13px; }
	.work-card__title { font-size: 12.5px; }
	.about-quick, .flow, .flow--4, .about-two .flow--4 { grid-template-columns: 1fr; }
	.pickup-creators { grid-template-columns: repeat(3, 1fr); gap: 12px; }
	.pickup-creators img { width: 72px; height: 72px; }
	.site-footer__inner { grid-template-columns: 1fr; }
	.hero__actions .btn { width: 100%; }
	.form__submit { flex-direction: column; }
	.form__submit .btn { width: 100%; }
	.wd-slider__thumbs button { width: 58px; height: 58px; }
	.mypage__nav ul { grid-template-columns: 1fr; }
	.stat-grid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================
   Template alignment layer (実マークアップ整合・追補)
   ========================================================= */

/* hero buttons (2行ラベル) */
.hero__btns { margin-top: 30px; display: flex; gap: 14px; flex-wrap: wrap; }
.hero__btns .btn { flex-direction: column; gap: 2px; padding: 13px 30px; line-height: 1.5; align-items: flex-start; text-align: left; }
.btn__sub { display: block; font-size: 10.5px; font-weight: 400; letter-spacing: .06em; opacity: .8; }
.section--tint { background: var(--c-bg-soft); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }

/* section head variants */
.sec-head--center { justify-content: space-between; }
.sec-head__more { font-size: 13px; color: var(--c-gold-deep); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }

/* 注目の作家スライダー(縦カード) */
.creator-grid { list-style: none; }
.creator-tile { overflow: hidden; }
.creator-tile a { display: flex; flex-direction: column; height: 100%; padding-bottom: 20px; }
.creator-tile__img { display: block; position: relative; aspect-ratio: 4 / 3; width: 100%; overflow: hidden; background: #fff; }
.creator-tile__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center top; transition: transform .4s ease; }
.creator-tile:hover .creator-tile__img img { transform: scale(1.03); }
.creator-tile__name { padding: 16px 18px 4px; font-size: 16px; color: var(--c-brown); }
.creator-tile__desc { padding: 0 18px 14px; font-size: 12.5px; color: var(--c-ink-soft); flex: 1; }
.creator-tile .btn { margin: 0 18px; }
.slider__track > .empty-note { flex: 1 1 100%; text-align: center; padding: 30px 60px; }
.slider:has(.slider__track > .empty-note) .slider__btn { display: none; }

/* トップ機能カード(feature) */
.feature { overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.feature:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.feature__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.feature__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.feature:hover .feature__img img { transform: scale(1.05); }
.feature__body { display: flex; flex-direction: column; gap: 9px; padding: 24px 24px 26px; flex: 1; }
.feature__title { display: flex; flex-direction: column; font-size: 16.5px; color: var(--c-brown); line-height: 1.5; }
.feature__title em { font-style: normal; font-family: var(--ff-display); font-size: 11px; letter-spacing: .22em; color: var(--c-gold); text-transform: uppercase; }
.feature__desc { font-size: 12.5px; color: var(--c-ink-soft); flex: 1; }
.feature__link { font-size: 13px; font-weight: 600; color: var(--c-gold-deep); display: inline-flex; align-items: center; gap: 4px; }

/* 作家を探す: 横型リスト */
.creator-rows { display: flex; flex-direction: column; gap: 18px; }
.creator-row { display: grid; grid-template-columns: 200px 1fr 220px; gap: 24px; padding: 20px; align-items: center; }
.creator-row__thumb { display: block; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 1 / 1; }
.creator-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.creator-row__name { font-size: 18px; color: var(--c-brown); margin-bottom: 6px; }
.creator-row__desc { font-size: 13.5px; color: var(--c-ink-soft); margin-bottom: 10px; }
.creator-row__side { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; border-left: 1px solid var(--c-line); padding-left: 22px; }
.dot-note { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--c-open); font-weight: 600; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-open); }
.follower { font-size: 12px; color: var(--c-ink-soft); }
.follower strong { color: var(--c-gold-deep); font-size: 14px; }
.count-badge { display: inline-flex; align-items: center; background: var(--c-gold); color: #fff; border-radius: 999px; padding: 2px 12px; font-size: 12px; margin-left: 10px; vertical-align: middle; }
.filter-bar__search { display: flex; flex: 1; min-width: 220px; }
.filter-bar__search input { flex: 1; border: 1px solid var(--c-line); border-radius: var(--radius-sm) 0 0 var(--radius-sm); border-right: 0; padding: 10px 14px; background: #fff; font-size: 13.5px; min-width: 0; }
.filter-bar__search button { border: 1px solid var(--c-line); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--c-brown); color: #fff; padding: 0 16px; cursor: pointer; }
.notice-band__icon { flex-shrink: 0; color: var(--c-gold-deep); margin-top: 3px; }
.pickup-creators__meta { font-size: 11px; color: var(--c-ink-soft); }

/* 作品一覧: 並び替え・注目の作品 */
.sort-form { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--c-ink-soft); }
.sort-form select { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 7px 12px; background: #fff; font-size: 13px; }
.featured-works > * { flex: 0 0 240px; }
.fw-item { display: block; }
.fw-item__img { position: relative; display: block; border-radius: var(--radius); overflow: hidden; aspect-ratio: 1 / 1; box-shadow: var(--shadow-soft); }
.fw-item__img .badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.fw-item__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.fw-item:hover .fw-item__img img { transform: scale(1.06); }
.fw-item__title { display: block; font-size: 13.5px; font-weight: 600; margin-top: 10px; }
.fw-item__brand { display: block; font-size: 11.5px; color: var(--c-ink-soft); }

/* カードのサムネ実クラス(__thumb) */
.work-card { position: relative; }
.work-card__thumb { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.work-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.work-card:hover .work-card__thumb img { transform: scale(1.05); }
.work-card__fav { position: absolute; left: 12px; top: 12px; right: auto; z-index: 4; width: 40px; height: 40px; padding: 0; gap: 0; border-radius: 50%; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .95); box-shadow: 0 2px 10px rgba(93, 74, 47, .18); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform .2s ease, color .2s ease; }
.work-card__fav:hover { transform: scale(1.1); color: #d64545; }
.work-card__fav svg { width: 20px; height: 20px; }
.work-card .tags { margin: 2px 0 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.popup-card__thumb { position: relative; height: 100%; min-height: 170px; display: block; }
.popup-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.popup-card { position: relative; grid-template-columns: 240px 1fr; }
.popup-card__body { position: relative; padding-right: 44px; }
.popup-card__body .badge { align-self: flex-start; }
.popup-card__arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); padding: 0; color: var(--c-gold); }
.popup-card__venue svg { margin-right: 4px; }
.recruit-card__thumb { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.recruit-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.recruit-card:hover .recruit-card__thumb img { transform: scale(1.05); }
.recruit-card__thumb .badge { position: absolute; top: 10px; left: 10px; }
.recruit-card__thumb .badge--type { top: auto; bottom: 10px; }
.recruit-card__excerpt { font-size: 12.5px; color: var(--c-ink-soft); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.tags--lg .tag { font-size: 12.5px; padding: 4px 15px; }

/* 作家プロフィール(背景ヒーロー版) */
.profile-hero { background-size: cover; background-position: center; background-color: var(--c-line); padding: 60px 0 0; margin-bottom: 40px; }
.profile-hero__inner { max-width: var(--w-container); margin: 0 auto; padding: 90px 24px 0; }
.profile-hero__card { background: rgba(255, 255, 255, .96); border: 1px solid var(--c-line); border-radius: var(--radius) var(--radius) 0 0; box-shadow: var(--shadow); padding: 30px 36px 28px; max-width: 860px; }
.profile-hero__head { display: flex; align-items: center; gap: 20px; margin-bottom: 14px; }
.profile-hero__avatar { width: 108px; height: 108px; border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: var(--shadow-soft); margin-top: -70px; background: #fff; }
.profile-hero__name { font-size: 24px; color: var(--c-brown); padding-top: 0; }
.profile-hero__kana { font-size: 11px; letter-spacing: .16em; color: var(--c-ink-soft); margin-top: 2px; }
.profile-hero__concept { color: var(--c-ink-soft); font-size: 13.5px; margin-bottom: 14px; }
.profile-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 26px; margin-bottom: 16px; }
.profile-meta__row { display: flex; gap: 10px; font-size: 12.5px; align-items: baseline; }
.profile-meta__row dt { color: var(--c-ink-soft); display: flex; align-items: center; gap: 6px; flex-shrink: 0; min-width: 84px; }
.profile-meta__row dt svg { flex-shrink: 0; }
.profile-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; padding-top: 0; flex-direction: row; }

/* ブランド情報3パネル */
.brand-panels { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 22px; }
.brand-panel { padding: 26px; }
.brand-panel__title { font-size: 16px; color: var(--c-brown); margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--c-line); }
.brand-panel p { font-size: 13.5px; color: var(--c-ink-soft); }
.brand-panel .dot-list li { position: relative; padding-left: 16px; font-size: 13.5px; color: var(--c-ink-soft); margin-bottom: 5px; }
.brand-panel .dot-list li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--c-gold); }

/* ギャラリー(作家ページの作品) */
.gallery-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.gallery-item { overflow: hidden; padding-bottom: 12px; }
.gallery-item__img { display: block; aspect-ratio: 1 / 1; overflow: hidden; }
.gallery-item__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery-item:hover .gallery-item__img img { transform: scale(1.06); }
.gallery-item__title { display: block; font-size: 13px; padding: 10px 12px 2px; color: var(--c-brown); }
.gallery-item__desc { display: block; font-size: 11px; color: var(--c-ink-soft); padding: 0 12px; }

/* 作家ページ下部3パネル */
.profile-bottom { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pb-panel { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.pb-panel__title { font-size: 15.5px; color: var(--c-brown); padding-bottom: 10px; border-bottom: 1px solid var(--c-line); }
.pb-panel__note { font-size: 12.5px; color: var(--c-ink-soft); }
.pb-panel .btn { align-self: flex-start; }

/* 詳細ページ列(既存gridの子) */
.work-detail__media, .work-detail__info { min-width: 0; }
.popup-detail__main, .popup-detail__side, .mypage__main { min-width: 0; }
.popup-detail__head { margin-bottom: 10px; }
.entry { font-size: 14.5px; line-height: 2.1; }
.entry h2 { font-family: var(--ff-serif); font-size: 20px; color: var(--c-brown); margin: 34px 0 14px; padding-left: 14px; border-left: 3px solid var(--c-gold); }
.entry h3 { font-size: 16px; color: var(--c-brown); margin: 26px 0 10px; }
.entry p { margin-bottom: 16px; }
.entry ul, .entry ol { margin: 0 0 16px 22px; }
.entry ul li { list-style: disc; margin-bottom: 6px; }
.entry ol li { list-style: decimal; margin-bottom: 6px; }
.entry a { color: var(--c-gold-deep); text-decoration: underline; }

/* honeypot */
.acc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* 追補: レスポンシブ */
@media (max-width: 1240px) {
	.gnav__list { gap: 15px; }
	.gnav__list a { font-size: 12.5px; }
	.site-brand__tag { display: none; }
}
@media (max-width: 1080px) {
	.gallery-grid { grid-template-columns: repeat(3, 1fr); }
	.brand-panels { grid-template-columns: 1fr 1fr; }
	.profile-bottom { grid-template-columns: 1fr 1fr; }
	.creator-row { grid-template-columns: 160px 1fr 190px; }
}
@media (max-width: 1024px) {
	.gnav.is-open { transform: translateX(0); }
	.gnav__list { flex-direction: column; gap: 0; }
	.gnav__list a { display: block; padding: 17px 6px; font-size: 16px; font-weight: 600; border-bottom: 1px solid var(--c-line); white-space: normal; }
	.gnav__list a::after { display: none; }
	.gnav__actions { flex-direction: column; align-items: stretch; gap: 12px; }
	.gnav__actions form { display: block; }
	.gnav__actions .btn { width: 100%; justify-content: center; }
	.menu-toggle { display: block; margin-left: auto; position: relative; z-index: 100; }
	.site-brand__tag { display: block; }
}
@media (max-width: 860px) {
	.creator-row { grid-template-columns: 1fr; gap: 14px; }
	.creator-row__thumb { aspect-ratio: 16 / 9; }
	.creator-row__side { border-left: 0; padding-left: 0; border-top: 1px solid var(--c-line); padding-top: 14px; flex-direction: row; flex-wrap: wrap; align-items: center; }
	.gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.brand-panels, .profile-bottom { grid-template-columns: 1fr; }
	.profile-hero__inner { padding: 70px 18px 0; }
	.profile-hero__card { padding: 22px 20px; }
	.profile-hero__avatar { width: 88px; height: 88px; margin-top: -56px; }
	.profile-meta { grid-template-columns: 1fr; }
	.featured-works > * { flex-basis: 46%; }
	.hero__btns { flex-direction: column; }
	.hero__btns .btn { width: 100%; align-items: center; text-align: center; }
	.site-footer__inner { grid-template-columns: 1fr; gap: 30px; }
	.site-footer__nav { grid-template-columns: 1fr 1fr; }
	.popup-card { grid-template-columns: 1fr; }
	.popup-card__thumb { min-height: 0; aspect-ratio: 16 / 9; }
	.popup-card__body { padding-right: 20px; }
	.popup-card__arrow { display: none; }
	.feature__body { padding: 14px 16px 18px; }
	.sec-head { flex-wrap: wrap; gap: 8px; }
}
@media (max-width: 480px) {
	.site-footer__nav { grid-template-columns: 1fr; }
	.gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.featured-works > * { flex-basis: 70%; }
	.creator-tile a .btn { margin: 0 14px; }
}

/* 構造ラッパの保険定義 */
.site-main { display: block; }
.site-footer__brand, .page-hero__text, .creator-row__body, .pd-creator__body, .concept-panel__col, .about-two__flow, .about-two__faq { min-width: 0; }
.app-list__item { display: block; }
.wd-slider { display: block; }
.fld--range input[type="date"] { max-width: 160px; }
.filter-bar--works, .filter-bar--popup, .filter-bar--recruit { align-items: flex-end; }
.filter-bar--works .cat-tabs { width: 100%; margin-bottom: 4px; }

/* =========================================================
   カンプ準拠 追加調整レイヤー v2
   ========================================================= */

/* セクション帯: 白基調+薄アイボリー交互(カンプ準拠) */
.section--tint { background: var(--c-bg-soft); }
.site-footer { background: var(--c-bg-soft); }
.site-header { background: rgba(255, 255, 255, .95); }

/* カードの影を控えめに(カンプはフラット寄り) */
.card { box-shadow: none; }
.card:hover { box-shadow: var(--shadow-soft); }

/* 注目の作品バッジ(カンプ: 画像左上の金ラベル) */


/* 作品コンセプト+おすすめのスタイリング(カンプ準拠 横並び) */
.concept-row { display: grid; grid-template-columns: 1fr 1.35fr; gap: 0; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.concept-block, .styling-block { padding: 30px 32px; }
.concept-block { border-right: 1px solid var(--c-line); }
.block-title { font-size: 17px; color: var(--c-brown); margin-bottom: 14px; }
.concept-block__inner { display: flex; gap: 18px; align-items: flex-start; }
.concept-block__inner p { font-size: 13.5px; color: var(--c-ink-soft); line-height: 2.05; flex: 1; }
.concept-block__inner img { width: 130px; height: auto; border-radius: var(--radius-sm); flex-shrink: 0; }
.styling-block__lead { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 16px; line-height: 2; }
.styling-imgs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.styling-imgs img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-sm); }

/* 会員について: 4アイコン帯(枠なし横並び カンプ準拠) */
.about-quick { border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; padding: 8px 0; }
.about-quick li { border: 0; border-radius: 0; padding: 20px 22px; text-align: left; flex-direction: row; align-items: center; gap: 14px; display: flex; }
.about-quick li + li { border-left: 1px solid var(--c-line); }
.about-quick__icon { width: 48px; height: 48px; margin: 0; flex-shrink: 0; }
.about-quick li > strong { display: block; }
.about-quick li > span:last-child { display: block; }
.about-quick__txt { display: flex; flex-direction: column; gap: 2px; }

/* 統一: セクション見出し(左)+右リンク */
.sec-head__title { font-size: 22px; }

/* ダッシュボード等マイページの白基調化 */
.mypage__nav a.is-active { background: var(--c-bg-soft); color: var(--c-brown); border-left: 3px solid var(--c-gold); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }

/* バッジ色(カンプ準拠) */
.badge--solid { background: #7c5c43; }
.badge--open { background: #7a9a6d; }
.badge--upcoming { background: #fff; color: var(--c-gold-deep); border: 1px solid var(--c-gold); }
.badge--ended { background: #b5ac9f; }

/* レスポンシブ: 新ヒーロー */
@media (max-width: 860px) {
	.hero { min-height: 0; }
	.hero__media img { object-position: 78% center; }
	.hero__media::after { background: linear-gradient(180deg, rgba(250, 248, 243, .94) 0%, rgba(250, 248, 243, .82) 55%, rgba(250, 248, 243, .55) 100%); }
	.hero__inner { padding: 44px 18px; }
	.page-hero { min-height: 260px; margin-bottom: 28px; }
	.page-hero__media img { object-position: 76% center; }
	.page-hero__media::after { background: linear-gradient(180deg, rgba(250, 248, 243, .94) 0%, rgba(250, 248, 243, .8) 60%, rgba(250, 248, 243, .5) 100%); }
	.page-hero__inner { padding: 34px 18px; }
	.voice { flex-direction: row; }
	.voice__avatar { width: 64px; height: 64px; }
	.concept-row { grid-template-columns: 1fr; }
	.concept-block { border-right: 0; border-bottom: 1px solid var(--c-line); }
	.about-quick { display: grid; grid-template-columns: 1fr 1fr; padding: 0; }
	.about-quick li + li { border-left: 0; }
	.about-quick li:nth-child(even) { border-left: 1px solid var(--c-line); }
	.about-quick li:nth-child(n+3) { border-top: 1px solid var(--c-line); }
	.flow--plain { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.styling-imgs { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.about-quick { grid-template-columns: 1fr; }
	.about-quick li:nth-child(even) { border-left: 0; }
	.about-quick li + li { border-top: 1px solid var(--c-line); }
}

/* =========================================================
   追加ページ・機能レイヤー v3(みんなの声 / 会場の様子 / 検索)
   ========================================================= */

/* みんなの声(レビュー) */
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 18px; }
.review { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.review__head { display: flex; align-items: center; gap: 10px; }
.review__head img { border-radius: 50%; object-fit: cover; width: 40px; height: 40px; }
.review__name { font-size: 13px; font-weight: 600; color: var(--c-brown); }
.review__body { font-size: 13px; color: var(--c-ink-soft); line-height: 1.95; }
.review__del { margin-left: auto; }
.review__del button { border: 0; background: none; color: var(--c-ink-soft); cursor: pointer; font-size: 15px; padding: 2px 6px; border-radius: 50%; }
.review__del button:hover { background: var(--c-bg-soft); color: var(--c-danger); }
.stars { display: inline-flex; gap: 1px; }
.stars svg { stroke: none; }
.stars__on { fill: var(--c-gold); }
.stars__off { fill: #ddd5c6; }
.review-form { margin-top: 8px; overflow: hidden; }
.review-form summary { list-style: none; cursor: pointer; padding: 15px 22px; font-size: 14px; font-weight: 600; color: var(--c-brown); position: relative; }
.review-form summary::-webkit-details-marker { display: none; }
.review-form summary::after { content: "+"; position: absolute; right: 22px; color: var(--c-gold); font-size: 18px; }
.review-form[open] summary::after { content: "−"; }
.review-form .form { padding: 0 22px 20px; }
.review-form select { max-width: 180px; letter-spacing: 2px; color: var(--c-gold-deep); }
.review-login-note { font-size: 13px; color: var(--c-ink-soft); margin-top: 12px; }

/* 会場の様子 */
.venue-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.venue-gallery li { border-radius: var(--radius-sm); overflow: hidden; }
.venue-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.venue-gallery li:hover img { transform: scale(1.05); }

/* 検索結果 */
.search-list { display: flex; flex-direction: column; gap: 14px; }
.search-item { position: relative; display: grid; grid-template-columns: 110px 1fr; gap: 18px; padding: 16px 48px 16px 16px; align-items: center; }
.search-item__thumb { display: block; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 1 / 1; }
.search-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-item__body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.search-item__body .badge { align-self: flex-start; }
.search-item__title { font-size: 15.5px; color: var(--c-brown); }
.search-item__desc { font-size: 12.5px; color: var(--c-ink-soft); }

/* お問い合わせ */
.contact-note { font-size: 12.5px; color: var(--c-ink-soft); margin-top: 16px; text-align: center; }

@media (max-width: 860px) {
	.review-grid { grid-template-columns: 1fr; }
	.venue-gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.search-item { grid-template-columns: 84px 1fr; padding-right: 40px; }
}

/* =========================================================
   トップ改修レイヤー v4(自動スライダー / フル幅の声)
   ========================================================= */

/* 注目の作家: 矢印ボタンを常時表示(カンプ準拠の丸ボタン) */
.slider { position: relative; }
.slider .slider__btn { opacity: .95; }

/* 作家の声: 無限ループマーキー(スクロールバーなし・ホバーで一時停止) */
.voice-section { overflow: hidden; padding-bottom: 64px; }
.voice-section .sec-head { margin-bottom: 20px; }
.voice-marquee { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%); }
.voice-marquee__track { display: flex; width: max-content; animation: acc-marquee 55s linear infinite; will-change: transform; }
.voice-marquee:hover .voice-marquee__track { animation-play-state: paused; }
.voice-marquee__group { display: flex; gap: 22px; padding: 4px 11px 10px; }
.voice-marquee .voice { flex: 0 0 460px; }
.voice__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.voice__tags .tag { font-size: 11px; padding: 2px 10px; background: #fff; }
.voice__name span { margin-top: 1px; }

@keyframes acc-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (max-width: 860px) {
	.voice-marquee .voice { flex-basis: 320px; }
	.voice-marquee__group { gap: 14px; padding: 4px 7px 8px; }
	.voice-marquee__track { animation-duration: 42s; }
}

/* モーション軽減設定時: アニメを止め、バー非表示の手動スクロールに */
@media (prefers-reduced-motion: reduce) {
	.voice-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; scrollbar-width: none; -ms-overflow-style: none; }
	.voice-marquee::-webkit-scrollbar { display: none; }
	.voice-marquee__track { animation: none; }
	.voice-marquee__group[aria-hidden="true"] { display: none; }
}

/* =========================================================
   運営管理レイヤー v5(会員管理・投稿管理)
   ========================================================= */
.mypage__nav-title--admin { border-top: 1px solid var(--c-line); margin-top: 12px; padding-top: 14px; color: var(--c-gold-deep); }
.admin-search { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-bottom: 20px; }
.admin-search .filter-bar__search { max-width: 420px; }
.admin-search__count { font-size: 13px; color: var(--c-ink-soft); }
.admin-search__count strong { color: var(--c-gold-deep); font-size: 16px; }

.admin-table { overflow: hidden; }
.admin-table__head, .admin-table__row { display: grid; grid-template-columns: 1.5fr 1.5fr .8fr .8fr .7fr 1.6fr; gap: 12px; align-items: center; padding: 12px 18px; }
.admin-table__head { background: var(--c-bg-soft); font-size: 11.5px; letter-spacing: .08em; color: var(--c-ink-soft); }
.admin-table__row { border-top: 1px solid var(--c-line); font-size: 13px; }
.admin-table__member { display: flex; align-items: center; gap: 10px; min-width: 0; }
.admin-table__member img { border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.admin-table__member a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-table__sub { font-size: 12px; color: var(--c-ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-table__actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.admin-table__actions form { display: flex; gap: 6px; margin: 0; }

.admin-list__row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--c-line); font-size: 13px; }
.admin-list__row:last-child { border-bottom: 0; }
.admin-list__row img { border-radius: 50%; object-fit: cover; }
.admin-list__name { font-weight: 600; color: var(--c-brown); }
.admin-list__sub { font-size: 12px; color: var(--c-ink-soft); }
.admin-list__row .text-link { margin-left: auto; white-space: nowrap; }

@media (max-width: 1080px) {
	.admin-table__head { display: none; }
	.admin-table__row { grid-template-columns: 1fr 1fr; gap: 8px 14px; padding: 14px 16px; }
	.admin-table__actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 560px) {
	.admin-table__row { grid-template-columns: 1fr; }
	.admin-search { flex-direction: column; align-items: stretch; }
	.admin-list__row { flex-wrap: wrap; }
	.admin-list__row .text-link { margin-left: 46px; }
}

/* =========================================================
   仕上げレイヤー v6(アンカー / 会社概要 / お問い合わせ)
   ========================================================= */
[id] { scroll-margin-top: 96px; }

/* 運営者情報の表組み */
.company-table { border-top: 1px solid var(--c-line); margin-top: 8px; }
.company-table > div { display: grid; grid-template-columns: 180px 1fr; gap: 14px; padding: 14px 6px; border-bottom: 1px solid var(--c-line); font-size: 14px; }
.company-table dt { color: var(--c-ink-soft); font-weight: 600; }

/* お問い合わせ完了 */
.contact-done { padding: 8px 0 2px; }

@media (max-width: 640px) {
	.company-table > div { grid-template-columns: 1fr; gap: 4px; }
}

/* =========================================================
   不具合修正レイヤー v7
   ========================================================= */

/* 4アイコン帯: テキストが1行に潰れるバグ修正(子孫セレクタ誤り) */
.about-quick__txt strong { display: block; font-size: 14.5px; color: var(--c-brown); }
.about-quick__txt span { display: block; font-size: 12px; color: var(--c-ink-soft); line-height: 1.8; }

/* ヒーロー見出しの不自然な折返し防止 */
.page-hero__text { max-width: 620px; }
.page-hero__title { line-height: 1.7; }
.hero__text { max-width: 600px; }

/* 作家を探す: フィルタバー専用グリッド(カンプ準拠1行/SP縦) */
.filter-bar--creators { display: grid; grid-template-columns: minmax(230px, 1.7fr) repeat(4, minmax(104px, 1fr)) auto auto; gap: 12px; align-items: center; padding: 20px 22px; }
.filter-bar--creators .filter-bar__search { min-width: 0; max-width: none; }
.fb-select { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 10px 8px; background: #fff; font-size: 13px; min-width: 0; width: 100%; color: var(--c-ink); }
.fb-check { display: flex; align-items: center; gap: 7px; font-size: 11px; line-height: 1.55; color: var(--c-ink-soft); white-space: nowrap; }
.fb-check input { flex-shrink: 0; }
.fb-reset { justify-self: end; }

/* 会員登録の流れ(会員について): コンパクト横並び+矢印 */
.flow--steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.flow--steps .flow__item { padding: 8px 4px; position: relative; }
.flow--steps .flow__item:not(:last-child)::after { content: "→"; position: absolute; right: -10px; top: 56px; color: var(--c-gold); font-size: 15px; }
.flow--steps .flow__icon { width: 50px; height: 50px; margin-bottom: 8px; }
.flow--steps .flow__title { font-size: 13px; }
.flow--steps .flow__item p { font-size: 11.5px; }
.flow-note { font-size: 11.5px; color: var(--c-ink-soft); margin-top: 14px; }

@media (max-width: 1200px) {
	.filter-bar--creators { grid-template-columns: 1fr 1fr 1fr 1fr; }
	.filter-bar--creators .filter-bar__search { grid-column: 1 / -1; }
	.fb-check { grid-column: 1 / 3; }
	.fb-reset { grid-column: 4; }
	.fb-check br { display: none; }
}
@media (max-width: 640px) {
	.filter-bar--creators { grid-template-columns: 1fr 1fr; padding: 16px; }
	.fb-check { grid-column: 1 / 2; }
	.fb-reset { grid-column: 2; }
	.flow--steps { grid-template-columns: repeat(2, 1fr); gap: 14px 8px; }
	.flow--steps .flow__item:nth-child(2)::after { display: none; }
}
.seed-box { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.seed-box__btns { flex-shrink: 0; }
@media (max-width: 640px) { .seed-box { flex-direction: column; align-items: stretch; } }

/* v8: メッセージ監査 / 画像プレビュー */
.msg-bubble__from { display: block; font-size: 10.5px; color: var(--c-gold-deep); margin-bottom: 2px; font-weight: 600; }
.admin-thread { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: var(--radius-sm); }
.admin-thread:hover, .admin-thread.is-active { background: var(--c-bg-soft); opacity: 1; }
.admin-thread__pair { font-size: 13px; font-weight: 600; color: var(--c-brown); }
.admin-thread__pair em { font-style: normal; color: var(--c-gold); margin: 0 6px; font-size: 11px; }
.admin-thread__meta { font-size: 11px; color: var(--c-ink-soft); }
.admin-thread__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--c-line); }
.img-preview { display: inline-block; margin-bottom: 8px; }
.img-preview img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--c-line); }
.img-preview--round img { border-radius: 50%; }
.form__note { font-size: 12px; color: var(--c-ink-soft); margin: 4px 0 14px; }

/* v9: エリアピル(8地方区分) */
.popup-filter__areas { width: 100%; }
.area-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.area-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--c-line); background: #fff; border-radius: 999px; padding: 8px 20px; font-size: 13px; color: var(--c-ink); cursor: pointer; transition: all .2s ease; }
.area-pill:hover { border-color: var(--c-gold); box-shadow: var(--shadow-soft); }
.area-pill.is-active { border-color: var(--c-brown); background: var(--c-brown); color: #fff; }
.area-pill__dot { width: 12px; height: 12px; border-radius: 4px; flex-shrink: 0; }
.area-pill__dot--all { background: var(--c-gold); }
.area-pill__dot--1 { background: #7fc8ad; }
.area-pill__dot--2 { background: #a8d8ea; }
.area-pill__dot--3 { background: #f5b06c; }
.area-pill__dot--4 { background: #b5d284; }
.area-pill__dot--5 { background: #f2d06b; }
.area-pill__dot--6 { background: #ec9a9a; }
.area-pill__dot--7 { background: #b9a5e3; }
.area-pill__dot--8 { background: #f2a0c6; }
@media (max-width: 640px) {
	.area-pill { padding: 7px 14px; font-size: 12px; }
}

/* =========================================================
   v10: ロゴ / モバイルメニュー(カンプ準拠) / 2段マーキー / to-top / SP総点検
   ========================================================= */

/* サイトロゴ画像 */
.site-brand__img img, .custom-logo { height: 40px; width: auto; display: block; }
.site-brand { gap: 2px; }
.site-brand__tag { font-size: 9.5px; }
.site-footer__logo img { height: 34px; width: auto; }
.sns-list a, .sns-list__off { display: inline-flex; width: 36px; height: 36px; border: 1px solid var(--c-line); border-radius: 50%; align-items: center; justify-content: center; color: var(--c-brown); background: #fff; }
.sns-list a:hover { border-color: var(--c-gold); color: var(--c-gold-deep); }
.sns-list__off { opacity: .45; }

/* 商品・ブランドの2段マーキー */
.top-marquee { border-bottom: 1px solid var(--c-line); background: #fff; padding: 26px 0 22px; }
.top-marquee__row + .top-marquee__row { margin-top: 14px; }
.voice-marquee__track--reverse { animation-direction: reverse; }
.top-marquee__products { gap: 14px; padding: 0 7px; }
.top-marquee__item { display: block; width: 150px; border-radius: var(--radius-sm); overflow: hidden; box-shadow: var(--shadow-soft); }
.top-marquee__item img { width: 150px; height: 150px; object-fit: cover; display: block; transition: transform .35s ease; }
.top-marquee__item:hover img { transform: scale(1.06); }
.top-marquee .voice-marquee__track { animation-duration: 40s; }
.top-marquee__brands { gap: 12px; padding: 0 6px; align-items: center; }
.brand-chip { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--c-line); background: #fff; border-radius: 999px; padding: 7px 20px 7px 8px; white-space: nowrap; }
.brand-chip img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.brand-chip span { font-size: 13.5px; letter-spacing: .06em; color: var(--c-brown); }
.brand-chip:hover { border-color: var(--c-gold); box-shadow: var(--shadow-soft); }

/* 上に戻るボタン(左下) */
.to-top { position: fixed; left: 18px; bottom: 18px; z-index: 90; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--c-gold); background: rgba(255, 255, 255, .95); color: var(--c-gold-deep); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-soft); opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .3s ease; }
.to-top svg { transform: rotate(-90deg); }
.to-top.is-show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--c-gold); color: #fff; }

/* モバイルメニュー: 右スライドパネル(カンプ準拠) */
.gnav__mobile-extra { display: none; }
.gnav-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background: rgba(60, 52, 40, .45); z-index: 98; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.gnav-overlay.is-show { opacity: 1; pointer-events: auto; }
@media (max-width: 1024px) {
	.gnav__list a { display: flex; justify-content: space-between; align-items: center; }
	.gnav__list a::before { content: none; }
	.gnav__list li { position: relative; }
	.gnav__list li::after { content: "›"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); color: var(--c-ink-soft); pointer-events: none; }
	.gnav__mobile-extra { display: flex; flex-direction: column; gap: 18px; margin-top: 4px; }
	.gnav__mobile-extra .sns-list { justify-content: center; display: flex; gap: 14px; }
	.gnav__cta { background: url(../img/menu-cta-bg.webp) center/cover no-repeat; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 22px 20px; text-align: center; display: flex; flex-direction: column; gap: 10px; }
	.gnav__cta-title { font-size: 14px; font-weight: 600; color: var(--c-brown); }
	.gnav__cta-text { font-size: 12px; color: var(--c-ink-soft); line-height: 1.9; }
	.gnav__cta .btn { justify-content: center; }
	.gnav__cta-more { font-size: 12px; color: var(--c-gold-deep); font-weight: 600; }
	.menu-toggle { z-index: 101; }
	.site-header { z-index: 100; }
	.gnav { z-index: 99; }
}

/* SP総点検: フル幅で気持ちよく収まる調整 */
@media (max-width: 860px) {
	.container { padding-left: 16px; padding-right: 16px; }
	.section { padding: 34px 0; }
	.sec-head__title { font-size: 19px; }
	.top-marquee__item, .top-marquee__item img { width: 110px; height: 110px; }
	.top-marquee { padding: 18px 0 14px; }
	.mypage { grid-template-columns: 1fr; }
	.mypage__side { position: static; margin-bottom: 18px; }
	.mypage__nav ul { display: flex; overflow-x: auto; gap: 4px; padding-bottom: 6px; scrollbar-width: none; }
	.mypage__nav ul::-webkit-scrollbar { display: none; }
	.mypage__nav li { flex-shrink: 0; }
	.mypage__nav a { white-space: nowrap; padding: 9px 13px; border: 1px solid var(--c-line); border-radius: 999px; }
	.mypage__nav a.is-active { border-color: var(--c-brown); border-left-width: 1px; border-radius: 999px; background: var(--c-brown); color: #fff; }
	.mypage__nav-title { display: none; }
	.mypage__user { display: none; }
	.mypage__logout { text-align: center; }
	.form__cols { grid-template-columns: 1fr; }
	.filter-bar { padding: 14px; }
	.filter-bar__selects { grid-template-columns: 1fr 1fr; }
	.result-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
	.work-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
	.msg-layout { grid-template-columns: 1fr; }
	.msg-layout__list { max-height: 220px; overflow-y: auto; }
	.stat-grid { grid-template-columns: 1fr 1fr; }
	.quick-grid { grid-template-columns: 1fr 1fr; }
	.to-top { left: 12px; bottom: 12px; width: 42px; height: 42px; }
	.concept-block, .styling-block { padding: 20px 18px; }
	.pd-grid, .work-detail { grid-template-columns: 1fr; }
	.review-form .form { padding: 0 16px 16px; }
	.hero__btns .btn { padding: 13px 18px; }
	.page-hero__title { font-size: 21px; }
	.flow--plain { grid-template-columns: 1fr 1fr; display: grid; gap: 14px 10px; }
	.flow--plain .flow__item:nth-child(5) { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
	.work-grid { grid-template-columns: 1fr; }
	.stat-grid, .quick-grid { grid-template-columns: 1fr 1fr; }
	.filter-bar__selects { grid-template-columns: 1fr; }
	.gallery-grid { grid-template-columns: 1fr 1fr; }
}

/* v11: ナビ英語サブラベル / 作家SNS */
.gnav__list a { display: flex; flex-direction: column; align-items: center; gap: 0; line-height: 1.4; text-align: center; }
.gnav__ja { display: block; }
.gnav__en { display: block; font-family: var(--ff-display); font-size: 9px; letter-spacing: .22em; color: var(--c-gold); text-transform: uppercase; }
.profile-sns { margin-bottom: 14px; }
.profile-sns a { width: 34px; height: 34px; }
@media (max-width: 1024px) {
	.gnav__list a { flex-direction: row; align-items: center; gap: 10px; justify-content: flex-start; text-align: left; }
	.gnav__en { font-size: 9.5px; }
}

/* v11.1: ヘッダーロゴ余白調整 */
.site-brand { flex-direction: column; align-items: flex-start; }
.site-brand .custom-logo-link { display: block; line-height: 0; }
.site-brand__img { display: block; line-height: 0; }
@media (max-width: 1240px) { .site-brand__img img, .custom-logo { height: 34px; } }

/* v12: 注目の作家マーキー */
.creators-marquee-section { overflow: hidden; }
.creators-marquee-section .sec-head { margin-bottom: 20px; }
.creators-marquee .voice-marquee__track { animation-duration: 48s; }
.creators-marquee .creator-tile { flex: 0 0 265px; }
.creators-marquee .creator-tile a { padding-bottom: 18px; }
@media (max-width: 860px) {
	.creators-marquee .creator-tile { flex-basis: 220px; }
	.creators-marquee .voice-marquee__track { animation-duration: 38s; }
}

/* v13: 新作紹介 / POP UP情報 マーキー */
.nw-tile { flex: 0 0 205px; overflow: hidden; }
.nw-tile a { display: flex; flex-direction: column; height: 100%; padding-bottom: 16px; }
.nw-tile__img { display: block; position: relative; aspect-ratio: 1 / 1; width: 100%; overflow: hidden; background: #fff; }
.nw-tile__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center top; transition: transform .35s ease; }
.nw-tile:hover .nw-tile__img img { transform: scale(1.03); }
.nw-tile__title { font-size: 13px; font-weight: 600; color: var(--c-brown); padding: 10px 14px 1px; }
.nw-tile__brand { font-size: 11px; color: var(--c-ink-soft); padding: 0 14px; }
.works-marquee .voice-marquee__track { animation-duration: 44s; }
.pu-tile { flex: 0 0 300px; overflow: hidden; }
.pu-tile a { display: flex; flex-direction: column; padding-bottom: 14px; }
.pu-tile__img { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.pu-tile__img { background: #fff; }
.pu-tile__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center top; transition: transform .35s ease; }
.pu-tile:hover .pu-tile__img img { transform: scale(1.03); }
.pu-tile__img .badge { position: absolute; top: 10px; left: 10px; }
.pu-tile__title { font-size: 13.5px; font-weight: 600; color: var(--c-brown); padding: 11px 14px 2px; }
.pu-tile__meta { font-size: 11.5px; color: var(--c-ink-soft); padding: 0 14px; }
.popups-marquee .voice-marquee__track { animation-duration: 50s; }
@media (max-width: 860px) {
	.nw-tile { flex-basis: 160px; }
	.pu-tile { flex-basis: 250px; }
	.works-marquee .voice-marquee__track { animation-duration: 36s; }
	.popups-marquee .voice-marquee__track { animation-duration: 42s; }
}

/* v14: フル幅矢印スライダー(注目の作家/新作/POP UP) + SNS拡大 */
.full-slider { position: relative; }
.full-slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; padding: 4px max(24px, calc((100vw - var(--w-container)) / 2 + 24px)) 10px; }
.full-slider__track::-webkit-scrollbar { display: none; }
.full-slider__group { display: flex; gap: 22px; }
.full-slider__group > * { scroll-snap-align: start; }
.full-slider .slider__btn { position: absolute; top: 42%; z-index: 3; }
.full-slider .slider__btn--prev { left: max(10px, calc((100vw - var(--w-container)) / 2 - 12px)); }
.full-slider .slider__btn--next { right: max(10px, calc((100vw - var(--w-container)) / 2 - 12px)); }
.creators-marquee .creator-tile, .works-marquee .nw-tile, .popups-marquee .pu-tile { flex-shrink: 0; }

/* SNSアイコン拡大 */
.sns-list a, .sns-list__off { width: 46px; height: 46px; }
.sns-list a svg, .sns-list__off svg { width: 24px; height: 24px; }
.profile-sns a { width: 42px; height: 42px; }
.site-footer__sns .sns-list { gap: 16px; }

@media (max-width: 860px) {
	.full-slider__track { padding: 4px 16px 8px; }
	.works-marquee .nw-tile { flex-basis: 44%; }
	.full-slider__group { gap: 14px; }
	.full-slider .slider__btn { display: flex; width: 38px; height: 38px; }
	.full-slider .slider__btn--prev { left: 6px; }
	.full-slider .slider__btn--next { right: 6px; }
	.sns-list a, .sns-list__off { width: 42px; height: 42px; }
}

/* =========================================================
   v16: モバイルメニュー最終定義(単一・vh基準) / 矢印位置 / admin bar
   ========================================================= */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

/* フル幅スライダー矢印: コンテンツ両端の内側に重ねる */
.full-slider__track { gap: 22px; }
.full-slider .slider__btn { position: absolute; top: 38%; z-index: 3; width: 46px; height: 46px; background: #fff; border: 1px solid var(--c-line); box-shadow: 0 6px 20px rgba(93, 74, 47, .16); border-radius: 50%; color: var(--c-brown); }
.full-slider .slider__btn--prev { left: max(16px, calc((100vw - var(--w-container)) / 2 + 10px)); }
.full-slider .slider__btn--next { right: max(16px, calc((100vw - var(--w-container)) / 2 + 10px)); }

@media (max-width: 1024px) {
	.gnav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: auto;
		left: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		margin-left: 0;
		background: #fff;
		box-shadow: 0 8px 30px rgba(0, 0, 0, .08);
		padding: 86px 24px 40px;
		display: flex;
		flex-direction: column;
		gap: 20px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		transform: translateX(100%);
		transition: transform .3s ease;
		z-index: 99;
	}
	.admin-bar .gnav { top: 46px; height: calc(100vh - 46px); }
	.gnav.is-open { transform: translateX(0); }
	.gnav-overlay { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 98; }
}
@media (max-width: 860px) {
	.full-slider__track { gap: 14px; }
	.full-slider .slider__btn--prev { left: 8px; }
	.full-slider .slider__btn--next { right: 8px; }
}

/* =========================================================
   v17: 横はみ出しの遮断(モバイル縮小描画の根本対策) / 固定ページ保険
   ========================================================= */
html, body { overflow-x: hidden; max-width: 100%; }
html { width: 100%; }

/* ページヒーローのテキスト幅保険(flex収縮による縦割れ防止) */
.page-hero__text, .hero__text { display: block; }
.page-hero__text { width: 100%; max-width: 620px; }
.hero__text { width: 100%; max-width: 600px; }

/* マイページSPナビの折返し防止 */
@media (max-width: 860px) {
	.mypage__nav ul { flex-wrap: nowrap; max-width: 100%; }
}

/* 開いていないメニューパネルはレイアウト外へ(はみ出し源を遮断) */
@media (max-width: 1024px) {
	.gnav { visibility: hidden; }
	.gnav.is-open { visibility: visible; }
}

/* =========================================================
   v18: SPカンプ準拠(注目の作家/機能カード/流れ/フッター)
   ========================================================= */
.flow--plain .flow__num { display: none; }

@media (max-width: 860px) {
	/* 注目の作家スライダー: スマホでも複数カードが見えるよう幅を調整 */
	.creators-marquee .creator-tile { flex: 0 0 46%; }
	.creators-marquee .creator-tile__desc { display: none; }
	.creators-marquee .creator-tile .btn { display: none; }

	/* 機能カード: 横長バー(左テキスト+右画像、カンプ準拠) */
	.feature-grid { grid-template-columns: 1fr; gap: 12px; }
	.feature { flex-direction: row; align-items: stretch; }
	.feature__img { order: 2; width: 104px; flex: 0 0 104px; aspect-ratio: auto; }
	.feature__img img { height: 100%; }
	.feature__body { order: 1; padding: 14px 16px; gap: 3px; justify-content: center; }
	.feature__title { font-size: 14.5px; }
	.feature__title em { font-size: 10px; }
	.feature__desc, .feature__link { display: none; }

	/* ご利用の流れ: 番号+アイコンの横一列(カンプ準拠) */
	.flow--plain { display: flex; justify-content: center; align-items: flex-start; gap: 4px; grid-template-columns: none; }
	.flow--plain .flow__item { padding: 0 6px; position: relative; display: flex; flex-direction: column; align-items: center; }
	.flow--plain .flow__item:nth-child(5) { grid-column: auto; }
	.flow--plain .flow__num { display: block; font-family: var(--ff-display); font-size: 10px; letter-spacing: .14em; color: var(--c-gold-deep); margin-bottom: 6px; }
	.flow--plain .flow__icon { width: 42px; height: 42px; margin: 0; }
	.flow--plain .flow__icon svg { width: 18px; height: 18px; }
	.flow--plain .flow__title, .flow--plain .flow__item p { display: none; }
	.flow--plain .flow__item:not(:last-child)::after { content: "→"; position: absolute; right: -8px; top: 32px; color: var(--c-gold); font-size: 12px; }

	/* フッター: アコーディオン(カンプ準拠) */
	.site-footer__nav { grid-template-columns: 1fr; gap: 0; }
	.fnav-col { border-top: 1px solid var(--c-line); }
	.fnav-col__title { display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 15px 2px; cursor: pointer; }
	.fnav-col__title::after { content: "+"; color: var(--c-gold); font-size: 18px; font-weight: 400; }
	.fnav-col.is-open .fnav-col__title::after { content: "−"; }
	.fnav-col ul { display: none; padding-bottom: 12px; }
	.fnav-col.is-open ul { display: block; }
	.site-footer__sns { border-top: 1px solid var(--c-line); padding-top: 15px; }
	.site-footer__sns .fnav-col__title { cursor: default; padding: 0 2px 12px; }
	.site-footer__sns .fnav-col__title::after { content: none; }
}

/* v19: スライダーのスクロールバー完全非表示 / 価格帯 / サイトアイコン */
.slider__track { scrollbar-width: none; -ms-overflow-style: none; }
.slider__track::-webkit-scrollbar { display: none; height: 0; }

/* v20: DM強化(未読バッジ/新規開始) */
.msg-unread { margin-left: auto; background: #c96e6e; color: #fff; font-style: normal; font-size: 10.5px; min-width: 18px; height: 18px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.msg-new { border-top: 1px solid var(--c-line); margin-top: 12px; padding-top: 12px; }
.msg-new label { display: block; font-size: 11px; color: var(--c-ink-soft); margin-bottom: 6px; }
.msg-new select { width: 100%; border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 9px 8px; background: #fff; font-size: 13px; }

/* v21: オートドリフト(自動微速送り)対象はブラウザのsmooth維持のまま */
[data-slider-drift] .slider__track { scroll-behavior: auto; }

/* v22: お問い合わせタブ / 申込フォーム / 会員向けお知らせ */
.contact-tabs { margin-bottom: 22px; }
.apply-intro { font-size: 13px; color: var(--c-ink-soft); line-height: 2; margin-bottom: 20px; }
.apply-sec { font-size: 15px; color: var(--c-brown); margin: 22px 0 12px; padding-left: 10px; border-left: 3px solid var(--c-gold); }
.notice-list__item { border: 1px solid var(--c-line); border-radius: var(--radius-sm); margin-bottom: 8px; background: #fff; }
.notice-list__item summary { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; font-size: 13px; }
.notice-list__item summary .badge { margin-left: auto; }
.notice-list__body { padding: 0 14px 14px; font-size: 13px; line-height: 2; color: var(--c-ink-soft); border-top: 1px dashed var(--c-line); padding-top: 12px; }
.notice-users__list { display: flex; flex-wrap: wrap; gap: 8px; max-height: 180px; overflow-y: auto; border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 12px; background: #fff; }

/* =========================================================
   v23: SPヒーロー最終確定(文字サイズ縮小・幅保証)
   ========================================================= */
@media (max-width: 860px) {
	.page-hero { min-height: 260px; }
	.page-hero__inner, .hero__inner { display: block; width: 100%; max-width: 100%; min-width: 100%; padding: 34px 18px; }
	.hero__inner { padding: 54px 18px 46px; }
	.page-hero__text, .hero__text { display: block; width: 100%; max-width: 100%; min-width: 0; }
	.page-hero__title { font-size: 20px; line-height: 1.8; letter-spacing: .1em; }
	.page-hero__lead { font-size: 12.5px; line-height: 2; }
	.page-hero__note { font-size: 11px; }
	.hero__title { font-size: 25px; line-height: 1.85; }
	.hero__lead { font-size: 13px; }
}
@media (max-width: 400px) {
	.page-hero__title { font-size: 18.5px; }
	.hero__title { font-size: 23px; }
}

/* =========================================================
   v24: 今風演出レイヤー(カスタマイザーでON/OFF可)
   ========================================================= */
/* 出現アニメ */
.will-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.22, .8, .3, 1); }
.will-reveal.is-reveal { opacity: 1; transform: translateY(0); }

/* タイトル文字アニメ */
.hero__title .ttl-ch { display: inline-block; opacity: 0; transform: translateY(.55em); }
.hero__title.is-stagger .ttl-ch { animation: acc-ch .72s cubic-bezier(.22, .8, .3, 1) forwards; }
@keyframes acc-ch {
	to { opacity: 1; transform: translateY(0); }
}

/* ヒーロー粒子 */
.hero { isolation: isolate; }
.hero-particles { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.hero__inner { z-index: 2; }

/* SCROLL回転バッジ */
.scroll-badge { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); width: 86px; height: 86px; border: 0; background: none; cursor: pointer; z-index: 3; }
.scroll-badge svg { width: 100%; height: 100%; animation: acc-spin 14s linear infinite; }
.scroll-badge:hover svg { animation-duration: 5s; }
.scroll-badge text { font-size: 9.2px; letter-spacing: .32em; fill: var(--c-gold-deep); font-family: var(--ff-display); }
.scroll-badge__arrow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: var(--c-gold-deep); font-size: 15px; animation: acc-bob 1.8s ease-in-out infinite; }
@keyframes acc-spin {
	to { transform: rotate(360deg); }
}
@keyframes acc-bob {
	0%, 100% { transform: translate(-50%, -58%); }
	50% { transform: translate(-50%, -42%); }
}
@media (max-width: 860px) { .scroll-badge { display: none; } }

/* フローティングヘッダー(グラス) */
@media (min-width: 1025px) {
	.site-header { transition: margin .35s ease, border-radius .35s ease, box-shadow .35s ease, background .35s ease; }
	.site-header.is-float { margin: 10px 22px 0; border-radius: 999px; background: rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 10px 34px rgba(93, 74, 47, .13); border-bottom: 0; }
	.site-header.is-float .site-header__inner { padding-top: 8px; padding-bottom: 8px; }
	.admin-bar .site-header.is-float { margin-top: 42px; }
}

/* ナビ追従ハイライト */
.gnav__list { position: relative; }
.gnav-pill { position: absolute; top: 0; left: 0; background: var(--c-bg-soft); border-radius: 999px; z-index: -1; opacity: 0; transition: transform .32s cubic-bezier(.3, .8, .3, 1), width .32s ease, height .32s ease, opacity .25s ease; }

/* カスタムカーソル */
@media (pointer: fine) and (min-width: 1025px) {
	.acc-cursor { position: fixed; top: 0; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--c-gold); pointer-events: none; z-index: 9999; transition: width .25s ease, height .25s ease, background .25s ease; mix-blend-mode: multiply; }
	.acc-cursor span { display: none; font-family: var(--ff-display); font-size: 10px; letter-spacing: .18em; color: #fff; }
	.acc-cursor.is-link { width: 30px; height: 30px; margin: -11px 0 0 -11px; background: rgba(179, 145, 84, .28); }
	.acc-cursor.is-view { width: 62px; height: 62px; margin: -27px 0 0 -27px; background: rgba(93, 74, 47, .85); display: flex; align-items: center; justify-content: center; mix-blend-mode: normal; }
	.acc-cursor.is-view span { display: block; }
}

/* 3Dチルト */
.tilt-card { transition: transform .35s cubic-bezier(.22, .8, .3, 1), box-shadow .3s ease; will-change: transform; }
.tilt-card:hover { box-shadow: 0 18px 44px rgba(93, 74, 47, .14); }

/* パララックス */
.hero__media img, .page-hero__media img { will-change: transform; }

/* =========================================================
   v25: 下層最先端化(レイヤード英字/パンくず/QV/統計/遷移)
   ========================================================= */
/* 背景英字レイヤー */
.page-hero { isolation: isolate; }
.page-hero__en { position: absolute; right: -8px; bottom: -22px; z-index: 0; font-size: clamp(64px, 11vw, 150px); letter-spacing: .08em; color: var(--c-brown); opacity: .06; pointer-events: none; white-space: nowrap; line-height: 1; }
.page-hero__inner { z-index: 1; }

/* ミニマルパンくず */
.breadcrumbs { display: flex; align-items: center; gap: 8px; font-family: var(--ff-display); font-size: 10px; letter-spacing: .22em; color: var(--c-ink-soft); margin-bottom: 10px; text-transform: uppercase; }
.breadcrumbs a { color: var(--c-gold-deep); }
.breadcrumbs a:hover { opacity: .7; }
.breadcrumbs em { font-style: normal; }
.breadcrumbs span { color: var(--c-line); }

/* クイックビュー */
.work-card { position: relative; }
.work-card__qv { position: absolute; right: 10px; top: 10px; z-index: 3; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .92); color: var(--c-gold-deep); font-size: 17px; line-height: 1; cursor: pointer; opacity: 0; transition: all .25s ease; }
.work-card:hover .work-card__qv { opacity: 1; }
.work-card__qv:hover { background: var(--c-brown); border-color: var(--c-brown); color: #fff; transform: rotate(90deg); }
@media (max-width: 1024px) { .work-card__qv { opacity: 1; width: 30px; height: 30px; } }
.qv-modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 300; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s ease; }
.qv-modal[hidden] { display: none !important; }
.qv-modal.is-open { opacity: 1; }
.qv-modal__overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(60, 52, 40, .55); }
.qv-modal__box { position: relative; z-index: 1; display: flex; width: min(720px, 92vw); max-height: 86vh; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .25); transform: translateY(14px) scale(.98); transition: transform .3s cubic-bezier(.22, .8, .3, 1); }
.qv-modal.is-open .qv-modal__box { transform: translateY(0) scale(1); }
.qv-modal__img { flex: 0 0 52%; }
.qv-modal__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qv-modal__body { flex: 1; padding: 30px 26px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.qv-modal__brand { font-size: 11.5px; color: var(--c-ink-soft); letter-spacing: .08em; }
.qv-modal__title { font-size: 19px; color: var(--c-brown); line-height: 1.6; }
.qv-modal__price { font-size: 15px; color: var(--c-gold-deep); font-weight: 600; }
.qv-modal__link { align-self: flex-start; margin-top: 8px; }
.qv-modal__close { position: absolute; right: 10px; top: 8px; z-index: 2; width: 34px; height: 34px; border: 0; background: none; font-size: 21px; color: var(--c-ink-soft); cursor: pointer; }
@media (max-width: 640px) {
	.qv-modal__box { flex-direction: column; width: 92vw; }
	.qv-modal__img { flex-basis: auto; max-height: 44vh; }
}

/* 統計カウントアップ */
.stats-band-wrap { padding-top: 8px; padding-bottom: 8px; }
.stats-band { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; text-align: center; }
.stats-band li { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 26px 12px 22px; }
.stats-band__num { display: block; font-size: 42px; color: var(--c-brown); line-height: 1.2; font-weight: 600; font-family: var(--ff-serif); }
.stats-band__num::after { content: "+"; color: var(--c-gold); font-size: 22px; margin-left: 2px; }
.stats-band__label { display: block; margin-top: 6px; font-size: 12px; color: var(--c-ink-soft); letter-spacing: .08em; }
@media (max-width: 640px) { .stats-band { grid-template-columns: 1fr; gap: 10px; } .stats-band__num { font-size: 30px; } }

/* ページ遷移フェード */
body { opacity: 1; transition: opacity .24s ease; }
body.page-enter { animation: acc-page-in .4s ease; }
body.page-leave { opacity: 0; }
@keyframes acc-page-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
.tag--link:hover { border-color: var(--c-gold); color: var(--c-gold-deep); background: #fff; }

/* v26: 登録申し込み管理 */
.apply-detail { margin-bottom: 8px; }
.apply-detail summary { display: inline-flex; cursor: pointer; list-style: none; }
.apply-detail summary::-webkit-details-marker { display: none; }
.apply-detail__list { margin-top: 10px; font-size: 12px; max-width: 460px; text-align: left; }
.apply-detail__list > div { padding: 8px 4px; grid-template-columns: 130px 1fr; }

/* =========================================================
   v27: 注目バッジ位置修正 / ヘッダー余白のコンパクト化
   ========================================================= */
/* 注目の作品: バッジを画像枠の内側に固定(枠外への浮き解消) */


/* PCヘッダー: 余白を締める */
.site-header__inner { min-height: 60px; padding-top: 6px; padding-bottom: 6px; }
.site-brand__img img, .custom-logo { height: 34px; }
.site-brand__tag { font-size: 9px; margin-top: 1px; }
.site-header.is-float .site-header__inner { padding-top: 4px; padding-bottom: 4px; }

/* SPヘッダー: 高さを最小限に */
@media (max-width: 1024px) {
	.site-header { padding: 0; }
	.site-header__inner { min-height: 0; padding: 9px 16px; gap: 12px; }
	.site-brand__img img, .custom-logo { height: 28px; }
	.site-brand__tag { font-size: 8.5px; letter-spacing: .04em; }
	.menu-toggle { width: 40px; height: 40px; }
	.gnav { padding-top: 72px; }
	.admin-bar .site-header { top: 46px; }
}

/* v27b: 透明状態のQVボタンはクリックを奪わない */
.work-card__qv { pointer-events: none; }
.work-card:hover .work-card__qv, .work-card__qv:focus-visible { pointer-events: auto; }
@media (max-width: 1024px) { .work-card__qv { pointer-events: auto; } }

/* v28: 一括操作バー / チェック列 */
.bulk-bar { display: flex; align-items: center; gap: 14px; padding: 12px 16px; margin-bottom: 12px; flex-wrap: wrap; }
.bulk-bar select { border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: 8px 10px; background: #fff; font-size: 13px; }
.admin-table--check .admin-table__head, .admin-table--check .admin-table__row { grid-template-columns: 26px 1.4fr 1.4fr 1.1fr .8fr .7fr 1.6fr; }
.admin-table--check input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--c-gold); }
.manage-list__check { display: flex; align-items: center; }
.manage-list__check input { width: 16px; height: 16px; accent-color: var(--c-gold); }
.admin-table__sub small { color: var(--c-ink-soft); font-size: 10.5px; line-height: 1.7; display: inline-block; }
@media (max-width: 860px) {
	.admin-table--check .admin-table__head { display: none; }
	.admin-table--check .admin-table__row { grid-template-columns: 26px 1fr; }
}

/* v28b: リビール要素の透明中クリック透過(作品一覧などのクリック不能を根本解消) */
.will-reveal { pointer-events: auto; }

/* v29: ヒーローflex復帰に伴う縦割れ防止(text幅の確実な保証) */
.page-hero__inner, .hero__inner { flex: 1 1 auto; min-width: 0; width: 100%; }
.page-hero__text { max-width: 640px; }
.hero__text { max-width: 620px; }

/* v30: お問い合わせ確認ステップ */
.confirm-preview__note { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 16px; }
.confirm-preview__list { display: grid; grid-template-columns: 150px 1fr; gap: 1px; background: var(--c-line); border: 1px solid var(--c-line); border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 20px; }
.confirm-preview__list dt { background: var(--c-bg-soft); padding: 12px 14px; font-size: 12.5px; font-weight: 600; color: var(--c-brown); margin: 0; }
.confirm-preview__list dd { background: #fff; padding: 12px 14px; font-size: 13px; margin: 0; white-space: pre-wrap; word-break: break-word; }
.confirm-preview__btns { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
@media (max-width: 640px) {
	.confirm-preview__list { grid-template-columns: 1fr; }
	.confirm-preview__list dt { padding-bottom: 4px; }
	.confirm-preview__btns { flex-direction: column-reverse; }
	.confirm-preview__btns .btn { width: 100%; }
}

/* v31: トップ改善(コンセプト/CTA整理/マーキー抑制) */
.section--concept { padding-top: 56px; padding-bottom: 48px; }
.sec-head__en { font-family: var(--ff-display); font-size: 11px; letter-spacing: .34em; color: var(--c-gold-deep); margin-bottom: 8px; }
.sec-head__lead { max-width: 620px; margin: 12px auto 0; font-size: 13.5px; line-height: 2; color: var(--c-ink-soft); }
.concept-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.concept-card { text-align: center; padding: 34px 22px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); transition: transform .3s ease, box-shadow .3s ease; }
.concept-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(93, 74, 47, .1); }
.concept-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: var(--c-bg-soft); color: var(--c-gold-deep); margin-bottom: 16px; }
.concept-card__title { font-size: 17px; color: var(--c-brown); margin-bottom: 10px; }
.concept-card__text { font-size: 13px; line-height: 1.95; color: var(--c-ink-soft); }
@media (max-width: 860px) {
	.concept-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; }
	.concept-card { padding: 26px 20px; }
}

/* CTA: テキストリンク型のセカンダリ */
.btn--text { background: none; border: 0; color: var(--c-brown); padding: 10px 6px; display: inline-flex; align-items: center; gap: 6px; box-shadow: none; }
.btn--text:hover { color: var(--c-gold-deep); background: none; transform: none; }
.hero__btns { align-items: center; gap: 14px 24px; }
.hero__note--soft { opacity: .8; font-size: 11.5px; margin-top: 16px; }

/* 2段マーキーを上品に(高さ・不透明度を抑える) */
.top-marquee { opacity: .82; }
.top-marquee .voice-marquee__track { animation-duration: 68s; }
.top-marquee__row + .top-marquee__row .voice-marquee__track { animation-duration: 82s; }

/* v31b: ボトムCTAバンド */
.cta-band { position: relative; overflow: hidden; margin-top: 20px; }
.cta-band__media { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.cta-band__media img { width: 100%; height: 100%; object-fit: cover; }
.cta-band__media::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(105deg, rgba(250, 248, 243, .96) 0%, rgba(250, 248, 243, .86) 46%, rgba(250, 248, 243, .5) 100%); }
.cta-band__inner { position: relative; z-index: 1; max-width: var(--w-container); margin: 0 auto; padding: 84px 24px; }
.cta-band__en { font-family: var(--ff-display); font-size: 12px; letter-spacing: .34em; color: var(--c-gold-deep); margin-bottom: 12px; }
.cta-band__title { font-size: 32px; line-height: 1.6; color: var(--c-brown); margin-bottom: 16px; }
.cta-band__lead { max-width: 520px; font-size: 13.5px; line-height: 2; color: var(--c-ink-soft); margin-bottom: 26px; }
.cta-band__btns { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 860px) {
	.cta-band__inner { padding: 54px 18px; }
	.cta-band__title { font-size: 24px; }
	.cta-band__media::after { background: linear-gradient(180deg, rgba(250, 248, 243, .95) 0%, rgba(250, 248, 243, .9) 100%); }
	.cta-band__btns .btn { width: 100%; }
}

/* =========================================================
   v32: ビッグタイポ(キネティック) / Bento / 全幅ガード
   ========================================================= */
/* 横揺れ防止の全幅ガード(中間幅800〜1100pxでの横スクロール根絶) */
html, body { max-width: 100%; overflow-x: clip; }
*, *::before, *::after { min-width: 0; }
img, svg, video, canvas { max-width: 100%; }

/* ビッグタイポ(キネティック帯) */
.bigtype { padding: 68px 0; overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--c-bg-soft) 100%); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.bigtype__track { display: flex; gap: 48px; white-space: nowrap; width: max-content; animation: bigtype-scroll 34s linear infinite; }
.bigtype__track--rev { animation-direction: reverse; animation-duration: 44s; margin-top: 6px; }
.bigtype__word { font-size: clamp(46px, 9vw, 128px); line-height: 1; letter-spacing: .02em; color: var(--c-brown); opacity: .26; font-weight: 500; }
.bigtype__word--outline { color: transparent; -webkit-text-stroke: 1.6px var(--c-gold); opacity: .72; }
@keyframes bigtype-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* Bento(弁当箱グリッド) */
.bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 168px; gap: 16px; margin-top: 40px; }
.bento__cell { position: relative; overflow: hidden; padding: 26px; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; display: flex; flex-direction: column; justify-content: center; transition: transform .3s ease, box-shadow .3s ease; }
.bento__cell:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(93, 74, 47, .1); }
.bento__cell--lead { grid-column: span 2; grid-row: span 2; justify-content: flex-end; background: var(--c-bg-soft); }
.bento__cell--media { grid-column: span 2; grid-row: span 1; padding: 0; }
.bento__cell--media img { width: 100%; height: 100%; object-fit: cover; }
.bento__cell--media:hover { transform: none; }
.bento__cell--accent { grid-column: span 2; background: linear-gradient(120deg, #f3ede1, var(--c-bg-soft)); color: var(--c-brown); align-items: flex-start; border-color: #e8dfcd; }
.bento__cell--accent .bento__accent-num { font-size: 54px; line-height: 1; color: var(--c-gold-deep); }
.bento__cell--accent .bento__accent-num::after { content: "+"; font-size: 30px; }
.bento__accent-label { font-size: 13px; line-height: 1.7; margin-top: 6px; }
.bento__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 12.5px; color: var(--c-gold-deep); font-weight: 600; }
.bento .concept-card__icon { width: 54px; height: 54px; background: #fff; }
.bento__cell--lead .concept-card__icon { background: #fff; }
@media (max-width: 980px) {
	.bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
	.bento__cell--lead { grid-column: span 2; grid-row: span 2; }
	.bento__cell--media { grid-column: span 2; }
	.bento__cell--accent { grid-column: span 2; }
}
@media (max-width: 560px) {
	.bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
	.bento__cell { grid-column: span 1 !important; grid-row: span 1 !important; padding: 22px; min-height: 130px; }
	.bento__cell--media { min-height: 200px; }
}

/* v33: 指摘反映(黒ブロック調整済) + 画像未設定フォールバック統一 + 矢印視認性 */
/* 画像プレースホルダーの上品な代替表示 */
.acc-ph { position: relative; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #faf8f3, #f1ebdf); color: var(--c-gold); overflow: hidden; }
.acc-ph::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-image: radial-gradient(circle at 30% 30%, rgba(179,145,84,.06), transparent 60%); }
.acc-ph svg { width: 34%; max-width: 60px; height: auto; opacity: .5; }
.acc-ph__logo { font-family: var(--ff-display); font-size: 13px; letter-spacing: .2em; color: var(--c-gold-deep); opacity: .7; }

/* スライダー矢印: 全スライダーで白丸+濃いめの縁を強調 */
.slider__btn { background: #fff !important; box-shadow: 0 8px 26px rgba(93, 74, 47, .22) !important; border-color: rgba(179, 145, 84, .35) !important; }
.slider__btn:hover { background: var(--c-brown); color: #fff; border-color: var(--c-brown); }

/* ビッグタイポと前後セクションの余白確保 */
.bigtype + section, section + .bigtype { margin-top: 0; }
.acc-ph--fill { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; }
.work-card__thumb, .nw-tile__img, .fw-item__img, .pu-tile__img { position: relative; }

/* v34: コンセプトを中央寄せ3列+横幅いっぱいの実績帯に */
.section--concept .container { max-width: var(--w-container); margin: 0 auto; }
.concept-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.concept-grid--3 .concept-card { text-align: left; display: flex; flex-direction: column; align-items: flex-start; padding: 32px 28px; }
.concept-grid--3 .concept-card__icon { margin-bottom: 16px; }
.concept-grid--3 .concept-card__text { flex: 1; }
.concept-card__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 12.5px; font-weight: 600; color: var(--c-gold-deep); }
.concept-card__link:hover { gap: 9px; }

.concept-stats { display: flex; align-items: center; justify-content: center; gap: 0; margin-top: 22px; padding: 30px 24px; background: linear-gradient(120deg, #f6f0e5, var(--c-bg-soft)); border: 1px solid #ece3d3; border-radius: var(--radius); }
.concept-stats__item { flex: 1; text-align: center; display: flex; flex-direction: column; gap: 6px; }
.concept-stats__num { font-size: 50px; line-height: 1; color: var(--c-brown); font-weight: 600; font-family: var(--ff-serif); }
.concept-stats__num[data-count-to]::after { content: "+"; color: var(--c-gold); font-size: 30px; margin-left: 1px; }
.concept-stats__label { font-size: 13px; color: var(--c-brown); letter-spacing: .04em; font-weight: 500; }
.concept-stats__divider { width: 1px; align-self: stretch; background: #e3d9c6; margin: 0 8px; }
@media (max-width: 860px) {
	.concept-grid--3 { grid-template-columns: 1fr; gap: 14px; }
	.concept-stats { flex-direction: column; gap: 20px; padding: 26px 18px; }
	.concept-stats__divider { width: 60%; height: 1px; align-self: center; margin: 0; }
	.concept-stats__num { font-size: 34px; }
}

/* v35: CF7 確認ステップ(バージョン非依存) */
.cf7-confirm { margin-top: 4px; }
.cf7-confirm__note { font-size: 13px; color: var(--c-ink-soft); margin-bottom: 16px; padding: 12px 14px; background: var(--c-bg-soft); border-radius: var(--radius-sm); }
.cf7-confirm__list { display: grid; grid-template-columns: 160px 1fr; gap: 1px; background: var(--c-line); border: 1px solid var(--c-line); border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 22px; }
.cf7-confirm__list dt { background: var(--c-bg-soft); padding: 13px 15px; font-size: 12.5px; font-weight: 600; color: var(--c-brown); margin: 0; }
.cf7-confirm__list dd { background: #fff; padding: 13px 15px; font-size: 13px; margin: 0; white-space: pre-wrap; word-break: break-word; }
.cf7-confirm__btns { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.cf7-confirm__next { margin-top: 4px; }
@media (max-width: 640px) {
	.cf7-confirm__list { grid-template-columns: 1fr; }
	.cf7-confirm__list dt { padding-bottom: 3px; }
	.cf7-confirm__btns { flex-direction: column-reverse; }
	.cf7-confirm__btns .btn, .cf7-confirm__btns .wpcf7-submit { width: 100%; }
}

/* v36: ヘッダー通知ベル(ブログ的お知らせ) */
.notif { position: relative; }
.notif__bell { position: relative; width: 40px; height: 40px; border: 1px solid var(--c-line); background: #fff; border-radius: 50%; color: var(--c-brown); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, border-color .2s ease; }
.notif__bell:hover { background: var(--c-bg-soft); border-color: var(--c-gold); }
.notif__badge { position: absolute; top: -3px; right: -3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #d64545; color: #fff; font-size: 10.5px; font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px #fff; }
.notif__panel { position: absolute; top: calc(100% + 12px); right: 0; width: 340px; max-width: 86vw; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: 0 20px 50px rgba(93, 74, 47, .18); z-index: 200; overflow: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .22s ease, transform .22s cubic-bezier(.22, .8, .3, 1); }
.notif.is-open .notif__panel { opacity: 1; transform: translateY(0); }
.notif__panel::before { content: ""; position: absolute; top: -6px; right: 15px; width: 12px; height: 12px; background: #fff; border-left: 1px solid var(--c-line); border-top: 1px solid var(--c-line); transform: rotate(45deg); }
.notif__head { display: flex; align-items: center; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--c-line); font-weight: 600; font-size: 13.5px; color: var(--c-brown); }
.notif__head-badge { font-size: 10.5px; color: #d64545; font-weight: 700; background: #fdeaea; padding: 2px 8px; border-radius: 999px; }
.notif__list { max-height: 360px; overflow-y: auto; }
.notif__item { display: block; padding: 13px 16px; border-bottom: 1px solid var(--c-bg-soft); position: relative; }
.notif__item.is-new { background: #fffdf8; }
.notif__item.is-new::before { content: ""; position: absolute; left: 6px; top: 18px; width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); }
.notif__date { display: block; font-size: 10.5px; color: var(--c-ink-soft); letter-spacing: .04em; margin-bottom: 3px; }
.notif__title { display: block; font-size: 13px; font-weight: 600; color: var(--c-brown); line-height: 1.5; margin-bottom: 3px; }
.notif__body { display: block; font-size: 11.5px; color: var(--c-ink-soft); line-height: 1.6; }
.notif__empty { padding: 28px 16px; text-align: center; font-size: 12.5px; color: var(--c-ink-soft); }
.notif__more { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 12px; font-size: 12px; font-weight: 600; color: var(--c-gold-deep); border-top: 1px solid var(--c-line); background: var(--c-bg-soft); }
.notif__more:hover { background: #f3ece0; }
@media (max-width: 1024px) {
	.notif__bell { width: 38px; height: 38px; }
	.notif__panel { position: fixed; top: auto; right: 12px; left: 12px; width: auto; max-width: none; }
	.notif__panel::before { display: none; }
}

/* v37: ヘッダーお気に入りハート(ベルと同じ丸ボタン) */
.notif__fav { width: 40px; height: 40px; border: 1px solid var(--c-line); background: #fff; border-radius: 50%; color: var(--c-brown); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.notif__fav:hover { background: #fff5f5; border-color: #e6a5a5; color: #d64545; }
@media (max-width: 1024px) { .notif__fav { width: 38px; height: 38px; } }

/* v37b: FV右下の新着お知らせ帯(非会員も閲覧可) */
.hero__inner { position: relative; }
.hero-news { position: absolute; right: 0; bottom: 8px; width: 380px; max-width: 44%; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, .7); border-radius: var(--radius); box-shadow: 0 14px 40px rgba(93, 74, 47, .14); overflow: hidden; }
.hero-news__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--c-line); }
.hero-news__label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--c-brown); letter-spacing: .06em; }
.hero-news__all { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: var(--c-gold-deep); font-weight: 600; }
.hero-news__list { max-height: 160px; overflow-y: auto; }
.hero-news__item a { display: flex; align-items: baseline; gap: 10px; padding: 9px 14px; border-bottom: 1px solid var(--c-bg-soft); transition: background .2s ease; }
.hero-news__item:last-child a { border-bottom: 0; }
.hero-news__item a:hover { background: var(--c-bg-soft); }
.hero-news__date { flex: 0 0 auto; font-size: 11px; color: var(--c-gold-deep); font-family: var(--ff-sans); font-weight: 600; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.hero-news__title { flex: 1; font-size: 12px; color: var(--c-brown); line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1024px) {
	.hero-news { position: static; width: auto; max-width: none; margin-top: 24px; background: #fff; }
}

/* v38: 非会員お気に入り(作家)パネル */
.guestfav__list { max-height: 320px; overflow-y: auto; padding: 6px; }
.guestfav__item { position: relative; display: flex; align-items: center; gap: 10px; padding: 8px 34px 8px 8px; border-radius: var(--radius-sm); transition: background .18s ease; }
.guestfav__item:hover { background: var(--c-bg-soft); }
.guestfav__thumb { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; background-size: cover; background-position: center; background-color: var(--c-bg-soft); }
.guestfav__thumb--ph { background: linear-gradient(135deg, #faf8f3, #f1ebdf); }
.guestfav__name { flex: 1; font-size: 13px; color: var(--c-brown); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guestfav__del { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border: 0; background: none; color: var(--c-ink-soft); font-size: 16px; cursor: pointer; border-radius: 50%; line-height: 1; }
.guestfav__del:hover { background: #fdeaea; color: #d64545; }
.guestfav__empty { padding: 24px 16px; text-align: center; font-size: 12px; color: var(--c-ink-soft); line-height: 1.7; }

/* v39: 非会員お気に入り専用ページ */
.guestfav-page__head { margin-bottom: 30px; }
.guestfav-page__title { font-size: 22px; color: var(--c-brown); margin-bottom: 10px; }
.guestfav-page__note { font-size: 12.5px; color: var(--c-ink-soft); line-height: 1.9; max-width: 640px; }
.guestfav-page__sub { font-size: 15px; color: var(--c-brown); font-weight: 600; margin: 28px 0 14px; padding-left: 12px; border-left: 3px solid var(--c-gold); }
.guestfav-page__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.guestfav-page__item { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.guestfav-page__item:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(93, 74, 47, .1); }
.guestfav-page__link { display: flex; align-items: center; gap: 12px; padding: 14px; }
.guestfav-page__thumb { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 50%; background-size: cover; background-position: center; background-color: var(--c-bg-soft); }
.guestfav-page__thumb--ph { background: linear-gradient(135deg, #faf8f3, #f1ebdf); }
.guestfav-page__name { flex: 1; font-size: 14px; color: var(--c-brown); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guestfav-page__del { width: 100%; padding: 9px; border: 0; border-top: 1px solid var(--c-bg-soft); background: none; color: var(--c-ink-soft); font-size: 11.5px; cursor: pointer; transition: background .18s ease, color .18s ease; }
.guestfav-page__del:hover { background: #fdeaea; color: #d64545; }
.guestfav-page__empty { grid-column: 1 / -1; padding: 30px 16px; text-align: center; font-size: 12.5px; color: var(--c-ink-soft); line-height: 1.8; background: var(--c-bg-soft); border-radius: var(--radius); }
.guestfav-page__cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--c-line); }
@media (max-width: 640px) {
	.guestfav-page__grid { grid-template-columns: 1fr; }
	.guestfav-page__cta { flex-direction: column; }
	.guestfav-page__cta .btn { width: 100%; }
}

/* v40: 管理者の管理ビューは全幅レイアウト(サイドナビを上部横並びに) */
.mypage--admin-wide { display: block; max-width: 1500px; }
.mypage--admin-wide .mypage__side { position: static; margin-bottom: 24px; }
.mypage--admin-wide .mypage__nav ul { display: flex; flex-wrap: wrap; gap: 4px; }
.mypage--admin-wide .mypage__nav .mypage__nav-group { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.mypage--admin-wide .mypage__profile-card { display: none; }
.mypage--admin-wide .mypage__main { width: 100%; }

/* 投稿管理カードの崩れ修正(グリッド列を明示、縦積み防止) */
.manage-list__body { min-width: 0; }
.manage-list__body strong { overflow: hidden; text-overflow: ellipsis; }
.manage-list__actions { flex-wrap: wrap; justify-content: flex-end; }
.manage-list__actions .btn { white-space: nowrap; }
@media (min-width: 861px) {
	.mypage--admin-wide .manage-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

/* v40b: 投稿管理の非公開カードを視覚的に区別 */
.manage-list__item.is-unpublished { background: #faf7f2; border-style: dashed; }
.manage-list__item.is-unpublished .manage-list__thumb { opacity: .6; }

/* v41: POP UPカードのアイキャッチ上オーバーレイ(開催日/地域/場所) */
.popup-card__thumb { position: relative; display: block; overflow: hidden; }
.pu-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; }
.pu-overlay::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(180deg, rgba(60, 52, 40, .34) 0%, rgba(60, 52, 40, 0) 32%, rgba(60, 52, 40, 0) 55%, rgba(60, 52, 40, .5) 100%); }
.pu-overlay__date { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 1; color: #fff; font-family: var(--ff-display); font-size: 14px; font-weight: 600; letter-spacing: .04em; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.pu-overlay__area { position: absolute; left: 12px; bottom: 12px; z-index: 1; display: inline-flex; align-items: center; gap: 3px; padding: 4px 10px 4px 8px; background: rgba(255, 255, 255, .92); color: var(--c-brown); font-size: 11.5px; font-weight: 600; border-radius: 999px; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
.pu-overlay__area svg { color: var(--c-gold-deep); }
.pu-overlay__venue { position: absolute; right: 12px; bottom: 12px; z-index: 1; max-width: 58%; color: #fff; font-size: 11.5px; font-weight: 500; text-align: right; text-shadow: 0 1px 5px rgba(0, 0, 0, .45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 560px) {
	.pu-overlay__date { font-size: 12.5px; }
	.pu-overlay__area, .pu-overlay__venue { font-size: 10.5px; }
}

/* v42: 事業者情報一覧テーブル */
.business-table-wrap { overflow-x: auto; padding: 0; }
.business-table { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 900px; }
.business-table thead th { background: var(--c-bg-soft); color: var(--c-brown); font-weight: 600; text-align: left; padding: 12px 14px; white-space: nowrap; border-bottom: 1px solid var(--c-line); font-size: 12px; }
.business-table tbody td { padding: 12px 14px; border-bottom: 1px solid var(--c-bg-soft); vertical-align: top; color: var(--c-ink); }
.business-table tbody tr:hover td { background: #fdfbf7; }
.business-table__email { font-size: 11px; color: var(--c-ink-soft); }
.business-table__sub td { background: #faf8f3; font-size: 11.5px; color: var(--c-ink-soft); padding-top: 6px; padding-bottom: 10px; }
.business-table__sub-label { color: var(--c-gold-deep); font-weight: 600; }

/* v43: POP UP / スタッフ募集カードのお気に入りハート(アイキャッチ右上) */
.popup-card, .recruit-card { position: relative; }
.popup-card__fav, .recruit-card__fav { position: absolute; top: 12px; right: 12px; z-index: 4; width: 40px; height: 40px; padding: 0; gap: 0; border-radius: 50%; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .95); color: var(--c-ink-soft); box-shadow: 0 2px 10px rgba(93, 74, 47, .18); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform .2s ease, color .2s ease, background .2s ease; }
.popup-card__fav svg, .recruit-card__fav svg { width: 20px; height: 20px; }
.popup-card__fav:hover, .recruit-card__fav:hover { transform: scale(1.1); background: #fff; color: #d64545; }
.popup-card__fav.is-on, .recruit-card__fav.is-on { color: #d64545; }
.popup-card__fav.is-on svg, .recruit-card__fav.is-on svg, .work-card__fav.is-on svg { fill: #d64545; stroke: #d64545; animation: acc-heart-pop .3s ease; }
.work-card__fav.is-on { color: #d64545; }

/* v44: プロフィールの実績リスト */
.achievement-list { display: flex; flex-direction: column; gap: 10px; }
.achievement-list li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; line-height: 1.7; color: var(--c-ink); }
.achievement-list li svg { flex: 0 0 auto; margin-top: 3px; color: var(--c-gold-deep); }

/* v45: プロフィールの各種リンク(表示名付き) */
.profile-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.profile-links li a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid var(--c-line); border-radius: 999px; background: #fff; font-size: 12.5px; color: var(--c-brown); font-weight: 500; transition: background .2s ease, border-color .2s ease; }
.profile-links li a:hover { background: var(--c-bg-soft); border-color: var(--c-gold); }
.profile-links li a svg { color: var(--c-gold-deep); }

/* v45b: 各種リンク入力欄のスタイル */
.form__label-group { font-weight: 600; font-size: 13.5px; color: var(--c-brown); margin: 20px 0 8px; }
.form__label-group .form__note { display: block; font-weight: 400; margin-top: 3px; }
.form__cols--link { margin-bottom: 6px; }

/* v46: トップ3セクションをコンテナ幅グリッドに(注目の作家/新作紹介/POP UP) */
.tile-grid { display: grid; gap: 22px; margin-top: 36px; }
.tile-grid--creators { grid-template-columns: repeat(4, 1fr); }
.tile-grid--works { grid-template-columns: repeat(4, 1fr); }
.tile-grid--popups { grid-template-columns: repeat(3, 1fr); }
/* グリッド内タイルは幅固定を解除して伸縮させる */
.tile-grid .creator-tile, .tile-grid .nw-tile, .tile-grid .pu-tile { width: auto; flex: none; margin: 0; }
@media (max-width: 1000px) {
	.tile-grid--creators, .tile-grid--works { grid-template-columns: repeat(3, 1fr); }
	.tile-grid--popups { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
	.tile-grid--creators, .tile-grid--works { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.tile-grid--popups { grid-template-columns: 1fr; }
}

/* v47: トップ表示スタイル(幅収めスライダー) */
.contained-slider { position: relative; }
.contained-slider .full-slider__track { padding: 4px 4px 10px; }
.contained-slider .creator-tile, .contained-slider .nw-tile, .contained-slider .pu-tile { flex: 0 0 265px; }
@media (max-width: 680px) {
	.contained-slider .creator-tile { flex-basis: 46%; }
	.contained-slider .nw-tile { flex-basis: 46%; }
	.contained-slider .pu-tile { flex-basis: 78%; }
}

/* POP UP 開催終了(ACHIEVEMENT風 ENDEDリボン) */
.pu-tile--ended .pu-tile__img img { filter: grayscale(.4) brightness(.82); }
.pu-tile__ribbon { position: absolute; top: 14px; left: -34px; transform: rotate(-45deg); width: 140px; text-align: center; background: rgba(60, 52, 40, .92); color: #fff; font-family: var(--ff-display); font-size: 12px; font-weight: 700; letter-spacing: .18em; padding: 4px 0; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); z-index: 2; }


/* v48: カード内画像の高さを揃える(小さい画像は上寄せ+下余白でカバー) */
.tile-grid .creator-tile, .tile-grid .nw-tile, .tile-grid .pu-tile,
.contained-slider .creator-tile, .contained-slider .nw-tile, .contained-slider .pu-tile,
.full-slider .creator-tile, .full-slider .nw-tile, .full-slider .pu-tile { display: flex; flex-direction: column; align-self: stretch; }
.tile-grid .creator-tile a, .tile-grid .nw-tile a, .tile-grid .pu-tile a { height: 100%; }
.nw-tile__title, .pu-tile__title { padding-top: 14px; }

/* v49: セクション見出しの英語サブ(タイトルの上に配置) */
.sec-head { flex-wrap: wrap; }
.sec-head .sec-head__sub { flex: 1 0 100%; margin-bottom: 2px; }
.sec-head .sec-head__title { flex: 1 1 auto; }
.sec-head--center { text-align: left; }
.sec-head--center .sec-head__sub { text-align: left; }

/* v50: モバイルメニューを見やすく + 上部ロゴ / フッターロゴ画像 */
/* フッターのロゴ画像 */
.site-footer__logo { line-height: 0; margin-bottom: 14px; }
.site-footer__logo img { height: 46px; width: auto; display: block; }

/* モバイルメニュー上部のロゴ(PCでは非表示) */
.gnav__mobile-head { display: none; }
.gnav__mobile-logo img { height: 40px; width: auto; display: block; }

@media (max-width: 1024px) {
	.gnav__mobile-head { display: block; padding: 0 50px 18px 0; margin-bottom: 8px; border-bottom: 1px solid var(--c-line); }
	.gnav { padding-top: 24px !important; }
}

/* v51: POP UP委託販売募集 */
.side-box--consign { border-color: #e0d3bd; background: linear-gradient(160deg, #fbf7ef, #f6efe2); }
.side-box--consign .side-box__title { color: var(--c-brown); }
.consign-terms { margin: 12px 0; padding: 12px 14px; background: #fff; border-radius: var(--radius-sm); font-size: 12.5px; line-height: 1.8; color: var(--c-ink); white-space: pre-wrap; }
.side-box__note { font-size: 11.5px; color: var(--c-ink-soft); line-height: 1.7; margin-top: 8px; }
.badge--consign { background: #8a6d3b; color: #fff; }
.popup-card__badges { display: inline-flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }

/* v52: プロフィールのセクション案内文 / ログインブランド補助 */
.form__section-note { font-size: 12.5px; color: var(--c-ink-soft); line-height: 1.7; margin: -6px 0 16px; padding: 10px 14px; background: var(--c-bg-soft); border-radius: var(--radius-sm); }

/* v53: 会員管理などの全幅/通常幅トグル */
.mypage__head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.admin-width-toggle { flex-shrink: 0; }
.mypage--admin-wide.mypage--admin-narrow { max-width: var(--w-container); }
.mypage--admin-wide.mypage--admin-narrow .admin-contents-grid,
.mypage--admin-wide.mypage--admin-narrow .member-table { max-width: 100%; }

/* v54: 運営管理ビューの表示幅3モード切替スイッチ */
.admin-width-bar { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-bottom: 18px; }
.admin-width-bar__label { font-size: 12.5px; color: var(--c-ink-soft); }
.admin-width-switch { display: inline-flex; border: 1px solid var(--c-line); border-radius: 999px; overflow: hidden; background: #fff; }
.admin-width-btn { border: 0; background: none; padding: 8px 16px; font-size: 12.5px; color: var(--c-ink-soft); cursor: pointer; transition: background .2s ease, color .2s ease; white-space: nowrap; }
.admin-width-btn + .admin-width-btn { border-left: 1px solid var(--c-line); }
.admin-width-btn:hover { background: var(--c-bg-soft); }
.admin-width-btn.is-active { background: var(--c-brown); color: #fff; font-weight: 600; }

/* v54b: 会員と同じ表示(memberモード)で管理テーブルが溢れないよう保険 */
.mypage:not(.mypage--admin-wide) .member-table,
.mypage:not(.mypage--admin-wide) .business-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* v55: ログイン画面のTOPへ戻るボタン */
.auth__back { text-align: center; margin-top: 4px; margin-bottom: 60px; }
.btn--dark { background: #2b2620; color: #fff; border: 0; border-radius: 999px; padding: 15px 44px; font-weight: 600; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, transform .2s ease; }
.btn--dark:hover { background: #100d09; transform: translateY(-1px); color: #fff; }

/* v56: 作家プロフィールのハートをカードと同じ40px丸ボタンに統一 */
.profile-hero__actions .fav-btn { width: 40px; height: 40px; padding: 0; gap: 0; border-radius: 50%; border: 1px solid var(--c-line); background: rgba(255, 255, 255, .95); justify-content: center; flex-shrink: 0; }
.profile-hero__actions .fav-btn.is-on svg { fill: #d64545; stroke: #d64545; }
.profile-hero__actions .fav-btn.is-on { color: #d64545; border-color: #e6c4c4; }

/* v57: チェックボックスなしの管理リスト(作品/POP UP/募集)は3カラム */
.manage-list--simple .manage-list__item { grid-template-columns: 84px minmax(0, 1fr) auto; }
@media (max-width: 860px) {
	.manage-list--simple .manage-list__item { grid-template-columns: 64px 1fr; }
}
/* バッジは横書きを保証(縦書き崩れ防止) */
.manage-list__meta .badge { writing-mode: horizontal-tb; white-space: nowrap; flex-shrink: 0; }

/* v58: 管理テーブルの横スクロールを確実に(会員と同じ表示・通常幅でも切れず全列閲覧可) */
.business-table-wrap { overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch; position: relative; }
.business-table-wrap::-webkit-scrollbar { height: 10px; }
.business-table-wrap::-webkit-scrollbar-thumb { background: var(--c-line); border-radius: 999px; }
.business-table-wrap::-webkit-scrollbar-track { background: var(--c-bg-soft); }
/* フル幅表示のときはテーブルが全部見えるので min-width を活かして広く */
.mypage--admin-wide .business-table { min-width: 100%; }

/* v59: トップページのJOIN US(cta-band)は全幅背景セクションなので、フッターと密着させる */
.home .site-main:has(.cta-band) + .site-footer,
.home .site-footer { margin-top: 0; }
.cta-band { margin-bottom: 0; }

/* v60: テーブルページ(会員と同じ表示・通常幅)でテーブルを右方向に画面端まで広げる */
/* コンテンツエリアの左端は保ちつつ、右端を画面端(余白24px)まで拡張して全列を見やすく */
.mypage:not(.mypage--admin-wide) .business-table-wrap {
	margin-right: calc((100vw - var(--w-container)) / -2 + 24px);
	max-width: none;
}
@media (max-width: 1248px) {
	/* コンテナがビューポート幅に達したら、右余白24pxぶんだけはみ出す */
	.mypage:not(.mypage--admin-wide) .business-table-wrap { margin-right: -24px; }
}
@media (max-width: 1024px) {
	/* サイドナビが上に回る幅では、左右いっぱいに広げる */
	.mypage:not(.mypage--admin-wide) .business-table-wrap { margin-left: -24px; margin-right: -24px; }
}

/* v61: フル幅レスポンシブメニューの内容を中央に集約(横に間延びさせない) */
@media (max-width: 1024px) {
	.gnav__list, .gnav__actions, .gnav__mobile-head, .gnav__mobile-extra { width: 100%; max-width: 560px; margin-left: auto; margin-right: auto; }
	.gnav-overlay { display: none; }
}

/* v62: できることカードを4ブロックに(告知/委託/スタッフ + ブランド) */
.concept-grid--4 { grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; }
.concept-grid--4 .concept-card { text-align: left; display: flex; flex-direction: column; align-items: flex-start; padding: 30px 24px; }
.concept-grid--4 .concept-card__icon { margin-bottom: 16px; }
.concept-grid--4 .concept-card__text { flex: 1; }
@media (max-width: 980px) {
	.concept-grid--4 { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 560px) {
	.concept-grid--4 { grid-template-columns: 1fr; gap: 14px; }
}

/* v63: ダークテーマ(ノワール)で白背景固定の箇所を地色に馴染ませる */
.acc-theme-dark input[type="text"], .acc-theme-dark input[type="email"], .acc-theme-dark input[type="password"], .acc-theme-dark input[type="search"], .acc-theme-dark input[type="url"], .acc-theme-dark input[type="tel"], .acc-theme-dark input[type="number"], .acc-theme-dark textarea, .acc-theme-dark select { background: var(--c-bg-soft); color: var(--c-ink); border-color: var(--c-line); }
.acc-theme-dark input::placeholder, .acc-theme-dark textarea::placeholder { color: var(--c-ink-soft); }
.acc-theme-dark .btn--ghost { background: transparent; border-color: var(--c-gold); color: var(--c-gold); }
.acc-theme-dark .btn--ghost:hover { background: var(--c-gold); color: #1a1a1c; }
.acc-theme-dark .badge, .acc-theme-dark .tag { background: var(--c-bg-soft); color: var(--c-ink-soft); }
.acc-theme-dark .badge--line { background: var(--c-card); border-color: var(--c-line); }
.acc-theme-dark .badge--type { background: rgba(42, 42, 47, .92); color: var(--c-ink); }
.acc-theme-dark .fav-btn, .acc-theme-dark .work-card__fav, .acc-theme-dark .popup-card__fav, .acc-theme-dark .recruit-card__fav { background: rgba(42, 42, 47, .92); border-color: var(--c-line); color: var(--c-ink-soft); }
.acc-theme-dark .work-card, .acc-theme-dark .creator-card, .acc-theme-dark .popup-card, .acc-theme-dark .recruit-card, .acc-theme-dark .concept-card, .acc-theme-dark .card, .acc-theme-dark .wd-slider__main, .acc-theme-dark .voice { background: var(--c-card); border-color: var(--c-line); }
.acc-theme-dark .business-table thead th { background: var(--c-bg-soft); color: var(--c-gold); }
.acc-theme-dark .business-table tbody tr:hover td { background: rgba(255, 255, 255, .04); }
.acc-theme-dark .admin-width-switch { background: var(--c-card); border-color: var(--c-line); }
.acc-theme-dark .admin-width-btn { color: var(--c-ink-soft); }
.acc-theme-dark .admin-width-btn:hover { background: var(--c-bg-soft); }
.acc-theme-dark .admin-width-btn.is-active { background: var(--c-gold); color: #1a1a1c; }
.acc-theme-dark .gnav { background: #1f1f22; }
.acc-theme-dark .mypage__side .card, .acc-theme-dark .mypage__nav a { color: var(--c-ink); }
.acc-theme-dark .concept-stats { background: linear-gradient(120deg, #26262b, #2a2a2f); border-color: var(--c-line); }
.acc-theme-dark .alert--ok { background: rgba(122, 154, 109, .16); }
.acc-theme-dark .alert--err { background: rgba(176, 85, 74, .16); }
.acc-theme-dark .alert--info { background: rgba(196, 168, 106, .14); }

/* v63: 角スタイルをbodyクラスで統一制御(モード系は自動シャープ) */
.acc-corner-rounded { --radius: 14px; --radius-sm: 8px; }
.acc-corner-soft { --radius: 8px; --radius-sm: 5px; }
.acc-corner-sharp { --radius: 2px; --radius-sm: 1px; }
.acc-corner-sharp .btn, .acc-corner-sharp .badge, .acc-corner-sharp .tag { border-radius: 2px; }

/* v64: ダークテーマ(ノワール)の視認性改善(ボタン・見出し・本文の色) */
.acc-theme-dark .btn--solid { background: var(--c-gold) !important; color: #16161a !important; }
.acc-theme-dark .btn--solid:hover { background: var(--c-gold-deep) !important; color: #16161a !important; }
.acc-theme-dark .hero__title, .acc-theme-dark .page-hero__title, .acc-theme-dark .sec-head__title, .acc-theme-dark .cta-band__title, .acc-theme-dark .concept-card__title, .acc-theme-dark .mypage__title { color: var(--c-ink) !important; }
.acc-theme-dark .hero__lead, .acc-theme-dark .page-hero__lead, .acc-theme-dark .sec-head__desc, .acc-theme-dark .concept-card__text, .acc-theme-dark .mypage__lead { color: #cfcdc7 !important; }
.acc-theme-dark .hero__note, .acc-theme-dark .creator-card__kana, .acc-theme-dark .work-card__price { color: var(--c-ink-soft) !important; }
.acc-theme-dark .concept-card__link, .acc-theme-dark .sec-head__more, .acc-theme-dark .text-link, .acc-theme-dark a.more-link { color: var(--c-gold) !important; }
.acc-theme-dark .page-hero { background: #1f1f22; }
.acc-theme-dark .cta-band__title, .acc-theme-dark .cta-band__lead { color: var(--c-ink) !important; }
.acc-theme-dark .cta-band__media::after { background: linear-gradient(105deg, rgba(26,26,28,.92) 0%, rgba(26,26,28,.8) 46%, rgba(26,26,28,.4) 100%) !important; }

/* v65: ダークテーマ(ノワール)で見にくい箇所をまとめて改善 */
.acc-theme-dark .sec-title-center, .acc-theme-dark .flow__title, .acc-theme-dark .voice__name strong { color: var(--c-ink) !important; }
.acc-theme-dark .flow__item p, .acc-theme-dark .voice__body, .acc-theme-dark .voice__meta { color: #cfcdc7 !important; }
.acc-theme-dark .sec-head__en, .acc-theme-dark .sec-head__sub, .acc-theme-dark .flow__num { color: var(--c-gold) !important; }
.acc-theme-dark .flow__icon { background: rgba(196,168,106,.14); color: var(--c-gold); }
.acc-theme-dark .brand-chip { background: #232327 !important; border-color: var(--c-line) !important; }
.acc-theme-dark .brand-chip span { color: var(--c-ink) !important; }
.acc-theme-dark .brand-chip:hover { border-color: var(--c-gold) !important; }
.acc-theme-dark .voice { background: #232327 !important; }
.acc-theme-dark .site-footer__nav a, .acc-theme-dark .site-footer a { color: #d8d6d0 !important; }
.acc-theme-dark .site-footer__nav a:hover, .acc-theme-dark .site-footer a:hover { color: #fff !important; }
.acc-theme-dark .site-footer h4, .acc-theme-dark .site-footer__title { color: var(--c-gold) !important; }
.acc-theme-dark .work-card__title, .acc-theme-dark .creator-card__name, .acc-theme-dark .popup-card__title, .acc-theme-dark .recruit-card__title { color: var(--c-ink) !important; }
.acc-theme-dark .notice-ticker, .acc-theme-dark .notice-ticker a { color: var(--c-ink) !important; }
.acc-theme-dark .hero__scroll, .acc-theme-dark .hero__scroll span { color: var(--c-ink-soft) !important; }
