/*
Theme Name: FUROKU.jp Child
Theme URI: https://furoku.jp/
Description: A child theme for FUROKU.jp with FUROKU design.
Author: Antigravity
Template: furokujp
Version: 1.0.0
*/
/* Material Symbols フォント読み込み完了前の代替テキスト巨大化・ちらつき（FOUT）防止 */
.material-symbols-outlined {
	font-family: 'Material Symbols Outlined' !important;
	font-weight: normal;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;
	overflow: hidden;
	user-select: none;
	vertical-align: middle;
	text-shadow: none !important;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	background: transparent;
	color: currentColor;
	-webkit-font-feature-settings: 'liga';
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* SVGスプライト用共通スタイル */
.furoku-icon {
	display: inline-block;
	width: 1.5rem;
	height: 1.5rem;
	fill: currentColor;
	vertical-align: middle;
	flex-shrink: 0;
	user-select: none;
	pointer-events: none;
}

/* ヘッダーなどの固定サイズアイコンボタン（h-8 w-8等）内で文字列がはみ出さないようにガード */
.dark-mode-toggle {
	overflow: hidden;
	position: relative;
}


:root {
	--wp--preset--color--primary: #e6b319;
	--wp--preset--color--background-light: #ffffff;
	--wp--preset--color--background-dark: #211d11;
}

/* ==========================================================================
   CSS Reset / Preflight Replacement (Tailwind撤去に伴う標準スタイル正常化)
   ========================================================================== */
*, *::before, *::after {
	box-sizing: border-box;
}

html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	tab-size: 4;
}

body {
	margin: 0;
	line-height: inherit;
}

hr {
	height: 0;
	color: inherit;
	border-top-width: 1px;
}

abbr:where([title]) {
	text-decoration: underline dotted;
}

h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit;
	margin: 0;
}

a {
	color: inherit;
	text-decoration: inherit;
}

b, strong {
	font-weight: bolder;
}

small {
	font-size: 80%;
}

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub { bottom: -0.25em; }
sup { top: -0.5em; }

table {
	text-indent: 0;
	border-color: inherit;
	border-collapse: collapse;
}

button, input, optgroup, select, textarea {
	font-family: inherit;
	font-feature-settings: inherit;
	font-variation-settings: inherit;
	font-size: 100%;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
}

button, select {
	text-transform: none;
}

button, input:where([type='button']), input:where([type='reset']), input:where([type='submit']) {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
	border: none;
}

progress {
	vertical-align: baseline;
}

::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
	height: auto;
}

[type='search'] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

summary {
	display: list-item;
}

blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
	margin: 0;
}

fieldset {
	margin: 0;
	padding: 0;
}

legend {
	padding: 0;
}

ol, ul, menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

dialog {
	padding: 0;
}

textarea {
	resize: vertical;
}

input::placeholder, textarea::placeholder {
	opacity: 1;
	color: #94a3b8;
}

button, [role="button"] {
	cursor: pointer;
}

img, svg, video, canvas, audio, iframe, embed, object {
	display: block;
	vertical-align: middle;
}

img, video {
	max-width: 100%;
	height: auto;
}

/* ==========================================================================
   Tailwind Utility Compatibility (parts/templates 内で使用中のTailwindクラスをstyle.cssで完全再現)
   tailwind.min.css 由来の定義のうち、使用中のクラスのみを抽出。レスポンシブ(sm/md/lg)・dark: バリアント含む
   ========================================================================== */
*,::before,::after{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}
.pointer-events-none{pointer-events:none}
.static{position:static}
.fixed{position:fixed}
.absolute{position:absolute}
.relative{position:relative}
.sticky{position:sticky}
.inset-0{inset:0}
.-bottom-1{bottom:-.25rem}
.-right-1{right:-.25rem}
.bottom-2{bottom:.5rem}
.left-2{left:.5rem}
.left-3{left:.75rem}
.right-2{right:.5rem}
.right-4{right:1rem}
.top-1\/2{top:50%}
.top-2{top:.5rem}
.top-20{top:5rem}
.top-24{top:6rem}
.top-4{top:1rem}
.z-10{z-index:10}
.z-\[999\]{z-index:999}
.col-span-2{grid-column:span 2/span 2}
.m-0{margin:0}
.mx-1{margin-left:.25rem;margin-right:.25rem}
.mx-3{margin-left:.75rem;margin-right:.75rem}
.mx-auto{margin-left:auto;margin-right:auto}
.-mt-0\.5{margin-top:-.125rem}
.mb-0{margin-bottom:0}
.mb-0\.5{margin-bottom:.125rem}
.mb-1{margin-bottom:.25rem}
.mb-1\.5{margin-bottom:.375rem}
.mb-12{margin-bottom:3rem}
.mb-2{margin-bottom:.5rem}
.mb-2\.5{margin-bottom:.625rem}
.mb-3{margin-bottom:.75rem}
.mb-4{margin-bottom:1rem}
.mb-5{margin-bottom:1.25rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.ml-0\.5{margin-left:.125rem}
.ml-1{margin-left:.25rem}
.mt-0\.5{margin-top:.125rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mt-16{margin-top:4rem}
.mt-2{margin-top:.5rem}
.mt-20{margin-top:5rem}
.mt-24{margin-top:6rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.mt-auto{margin-top:auto}
.box-border{box-sizing:border-box}
.line-clamp-1{-webkit-line-clamp:1}
.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}
.line-clamp-2{-webkit-line-clamp:2}
.block{display:block}
.inline-block{display:inline-block}
.inline{display:inline}
.flex{display:flex}
.inline-flex{display:inline-flex}
.table{display:table}
.grid{display:grid}
.contents{display:contents}
.hidden{display:none}
.aspect-\[3\/4\]{aspect-ratio:3/4}
.aspect-\[4\/3\]{aspect-ratio:4/3}
.size-8{width:2rem;height:2rem}
.h-10{height:2.5rem}
.h-12{height:3rem}
.h-14{height:3.5rem}
.h-16{height:4rem}
.h-20{height:5rem}
.h-3\.5{height:.875rem}
.h-48{height:12rem}
.h-5{height:1.25rem}
.h-56{height:14rem}
.h-6{height:1.5rem}
.h-8{height:2rem}
.h-9{height:2.25rem}
.h-auto{height:auto}
.h-full{height:100%}
.max-h-80{max-height:20rem}
.max-h-\[3\.8rem\]{max-height:3.8rem}
.max-h-\[500px\]{max-height:500px}
.min-h-\[44px\]{min-height:44px}
.min-h-full{min-height:100%}
.w-1\.5{width:.375rem}
.w-10{width:2.5rem}
.w-12{width:3rem}
.w-14{width:3.5rem}
.w-16{width:4rem}
.w-20{width:5rem}
.w-3\.5{width:.875rem}
.w-5{width:1.25rem}
.w-72{width:18rem}
.w-8{width:2rem}
.w-9{width:2.25rem}
.w-full{width:100%}
.min-w-0{min-width:0}
.min-w-\[200px\]{min-width:200px}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-\[1600px\]{max-width:1600px}
.max-w-full{max-width:100%}
.max-w-md{max-width:28rem}
.max-w-xs{max-width:20rem}
.flex-1{flex:1 1 0%}
.flex-shrink{flex-shrink:1}
.flex-shrink-0{flex-shrink:0}
.shrink-0{flex-shrink:0}
.flex-grow{flex-grow:1}
.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.-translate-y-1\/2{--tw-translate-y:-50%}
.translate-y-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.translate-y-12{--tw-translate-y:3rem}
.scale-100{--tw-scale-x:1;--tw-scale-y:1}
.scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}
.scale-95,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
@keyframes spin{to{transform:rotate(1turn)}
}
.animate-spin{animation:spin 1s linear infinite}
.cursor-pointer{cursor:pointer}
.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}
.resize-y{resize:vertical}
.resize{resize:both}
.list-disc{list-style-type:disc}
.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-start{align-items:flex-start}
.items-center{align-items:center}
.justify-end{justify-content:flex-end}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.gap-1{gap:.25rem}
.gap-1\.5{gap:.375rem}
.gap-2{gap:.5rem}
.gap-2\.5{gap:.625rem}
.gap-3{gap:.75rem}
.gap-3\.5{gap:.875rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}
.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}
.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}
.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}
.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}
.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}
.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}
.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}
.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}
.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}
.self-start{align-self:flex-start}
.overflow-hidden{overflow:hidden}
.overflow-y-auto{overflow-y:auto}
.truncate{overflow:hidden;white-space:nowrap}
.truncate{text-overflow:ellipsis}
.rounded{border-radius:.5rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:.5rem}
.rounded-sm{border-radius:.125rem}
.rounded-xl{border-radius:.75rem}
.border{border-style:solid;border-color:#e5e7eb;border-width:1px}
.border-0{border-style:solid;border-color:#e5e7eb;border-width:0}
.border-2{border-style:solid;border-color:#e5e7eb;border-width:2px}
.border-b{border-style:solid;border-color:#e5e7eb;border-bottom-width:1px}
.border-b-2{border-style:solid;border-color:#e5e7eb;border-bottom-width:2px}
.border-l-4{border-style:solid;border-color:#e5e7eb;border-left-width:4px}
.border-t{border-style:solid;border-color:#e5e7eb;border-top-width:1px}
.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}
.border-amber-300\/60{border-color:rgba(252,211,77,.6)}
.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}
.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}
.border-on-surface{--tw-border-opacity:1;border-color:rgb(15 23 42/var(--tw-border-opacity,1))}
.border-outline{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}
.border-outline-variant{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}
.border-outline-variant\/60{border-color:rgba(226,232,240,.6)}
.border-primary{--tw-border-opacity:1;border-color:rgb(230 179 25/var(--tw-border-opacity,1))}
.border-primary\/20{border-color:rgba(230,179,25,.2)}
.border-rose-200{--tw-border-opacity:1;border-color:rgb(254 205 211/var(--tw-border-opacity,1))}
.border-rose-200\/60{border-color:rgba(254,205,211,.6)}
.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}
.border-sky-300{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity,1))}
.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}
.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}
.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}
.border-zinc-100{--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity,1))}
.border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}
.border-zinc-200\/60{border-color:hsla(240,6%,90%,.6)}
.border-zinc-200\/70{border-color:hsla(240,6%,90%,.7)}
.border-zinc-300{--tw-border-opacity:1;border-color:rgb(212 212 216/var(--tw-border-opacity,1))}
.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}
.bg-black\/40{background-color:rgba(0,0,0,.4)}
.bg-black\/60{background-color:rgba(0,0,0,.6)}
.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}
.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}
.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}
.bg-primary{--tw-bg-opacity:1;background-color:rgb(230 179 25/var(--tw-bg-opacity,1))}
.bg-primary-container{--tw-bg-opacity:1;background-color:rgb(254 247 224/var(--tw-bg-opacity,1))}
.bg-primary\/10{background-color:rgba(230,179,25,.1)}
.bg-primary\/20{background-color:rgba(230,179,25,.2)}
.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}
.bg-rose-50{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}
.bg-rose-50\/40{background-color:rgba(255,241,242,.4)}
.bg-rose-50\/60{background-color:rgba(255,241,242,.6)}
.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}
.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}
.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}
.bg-slate-900\/80{background-color:rgba(15,23,42,.8)}
.bg-surface-container{--tw-bg-opacity:1;background-color:rgb(241 243 245/var(--tw-bg-opacity,1))}
.bg-surface-container-low{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity,1))}
.bg-surface-container-low\/70{background-color:rgba(248,249,250,.7)}
.bg-tertiary-container{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}
.bg-transparent{background-color:transparent}
.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}
.bg-white\/80{background-color:hsla(0,0%,100%,.8)}
.bg-white\/90{background-color:hsla(0,0%,100%,.9)}
.bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}
.bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}
.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}
.from-primary\/10{--tw-gradient-from:rgba(230,179,25,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(230,179,25,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.via-amber-500\/5{--tw-gradient-to:rgba(245,158,11,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(245,158,11,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}
.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}
.fill-current{fill:currentColor}
.object-contain{-o-object-fit:contain;object-fit:contain}
.object-cover{-o-object-fit:cover;object-fit:cover}
.object-center{-o-object-position:center;object-position:center}
.p-0{padding:0}
.p-1\.5{padding:.375rem}
.p-2{padding:.5rem}
.p-3{padding:.75rem}
.p-3\.5{padding:.875rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.px-1\.5{padding-left:.375rem;padding-right:.375rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.px-2\.5{padding-left:.625rem;padding-right:.625rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-3\.5{padding-left:.875rem;padding-right:.875rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.pb-1{padding-bottom:.25rem}
.pb-4{padding-bottom:1rem}
.pl-10{padding-left:2.5rem}
.pl-3\.5{padding-left:.875rem}
.pl-4{padding-left:1rem}
.pl-5{padding-left:1.25rem}
.pl-6{padding-left:1.5rem}
.pr-1{padding-right:.25rem}
.pr-11{padding-right:2.75rem}
.pr-4{padding-right:1rem}
.pr-8{padding-right:2rem}
.pt-16{padding-top:4rem}
.pt-2{padding-top:.5rem}
.pt-3{padding-top:.75rem}
.pt-4{padding-top:1rem}
.pt-5{padding-top:1.25rem}
.pt-6{padding-top:1.5rem}
.text-left{text-align:left}
.text-center{text-align:center}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-5xl{font-size:3rem;line-height:1}
.text-\[10px\]{font-size:10px}
.text-\[11px\]{font-size:11px}
.text-\[13px\]{font-size:13px}
.text-\[14px\]{font-size:14px}
.text-\[20px\]{font-size:20px}
.text-\[9px\]{font-size:9px}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-xs{font-size:.75rem;line-height:1rem}
.font-black{font-weight:900}
.font-bold{font-weight:700}
.font-medium{font-weight:500}
.font-normal{font-weight:400}
.font-semibold{font-weight:600}
.uppercase{text-transform:uppercase}
.italic{font-style:italic}
.leading-none{line-height:1}
.leading-relaxed{line-height:1.625}
.leading-snug{line-height:1.375}
.leading-tight{line-height:1.25}
.tracking-tight{letter-spacing:-.025em}
.tracking-tighter{letter-spacing:-.05em}
.tracking-wide{letter-spacing:.025em}
.tracking-wider{letter-spacing:.05em}
.tracking-widest{letter-spacing:.1em}
.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}
.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}
.text-background-dark{--tw-text-opacity:1;color:rgb(33 29 17/var(--tw-text-opacity,1))}
.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}
.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}
.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}
.text-emerald-900{--tw-text-opacity:1;color:rgb(6 78 59/var(--tw-text-opacity,1))}
.text-on-primary{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
.text-on-primary-container{--tw-text-opacity:1;color:rgb(119 90 0/var(--tw-text-opacity,1))}
.text-on-surface{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}
.text-on-surface-variant{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}
.text-on-surface-variant\/80{color:rgba(71,85,105,.8)}
.text-on-surface\/90{color:rgba(15,23,42,.9)}
.text-on-tertiary-container{--tw-text-opacity:1;color:rgb(0 79 116/var(--tw-text-opacity,1))}
.text-outline{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}
.text-outline-variant{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}
.text-primary{--tw-text-opacity:1;color:rgb(230 179 25/var(--tw-text-opacity,1))}
.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}
.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity,1))}
.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}
.text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}
.text-rose-900{--tw-text-opacity:1;color:rgb(136 19 55/var(--tw-text-opacity,1))}
.text-secondary{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}
.text-sky-900{--tw-text-opacity:1;color:rgb(12 74 110/var(--tw-text-opacity,1))}
.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}
.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}
.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}
.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}
.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}
.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}
.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}
.text-stone-400{--tw-text-opacity:1;color:rgb(168 162 158/var(--tw-text-opacity,1))}
.text-stone-600{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity,1))}
.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}
.underline{text-decoration-line:underline}
.underline-offset-4{text-underline-offset:4px}
.placeholder-zinc-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}
.placeholder-zinc-400::placeholder{--tw-placeholder-opacity:1;color:rgb(161 161 170/var(--tw-placeholder-opacity,1))}
.opacity-0{opacity:0}
.opacity-100{opacity:1}
.opacity-70{opacity:.7}
.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}
.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}
.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}
.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}
.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}
.outline-none{outline:2px solid transparent;outline-offset:2px}
.outline{outline-style:solid}
.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}
.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
.backdrop-blur{--tw-backdrop-blur:blur(8px)}
.backdrop-blur{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}
.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}
.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
.duration-200{transition-duration:.2s}
.duration-300{transition-duration:.3s}
.duration-500{transition-duration:.5s}
.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}
.hover\:-translate-y-1:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgb(230 179 25/var(--tw-border-opacity,1))}
.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}
.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(230 179 25/var(--tw-bg-opacity,1))}
.hover\:bg-primary-container:hover{--tw-bg-opacity:1;background-color:rgb(254 247 224/var(--tw-bg-opacity,1))}
.hover\:bg-primary\/10:hover{background-color:rgba(230,179,25,.1)}
.hover\:bg-rose-100\/80:hover{background-color:rgba(255,228,230,.8)}
.hover\:bg-rose-700:hover{--tw-bg-opacity:1;background-color:rgb(190 18 60/var(--tw-bg-opacity,1))}
.hover\:bg-surface-container:hover{--tw-bg-opacity:1;background-color:rgb(241 243 245/var(--tw-bg-opacity,1))}
.hover\:bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}
.hover\:bg-zinc-200:hover{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}
.hover\:text-amber-600:hover{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}
.hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(230 179 25/var(--tw-text-opacity,1))}
.hover\:text-slate-950:hover{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}
.hover\:text-zinc-600:hover{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}
.hover\:text-zinc-700:hover{--tw-text-opacity:1;color:rgb(63 63 70/var(--tw-text-opacity,1))}
.hover\:underline:hover{text-decoration-line:underline}
.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}
.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}
.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.hover\:brightness-105:hover{--tw-brightness:brightness(1.05)}
.hover\:brightness-105:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
.focus\:border-primary:focus{--tw-border-opacity:1;border-color:rgb(230 179 25/var(--tw-border-opacity,1))}
.focus\:border-transparent:focus{border-color:transparent}
.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}
.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}
.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}
.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
.focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(230 179 25/var(--tw-ring-opacity,1))}
.active\:scale-90:active{--tw-scale-x:.9;--tw-scale-y:.9}
.active\:scale-90:active,.active\:scale-95:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}
.active\:scale-\[0\.99\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.active\:scale-\[0\.99\]:active{--tw-scale-x:0.99;--tw-scale-y:0.99}
.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}
.disabled\:opacity-50:disabled{opacity:.5}
.group:hover .group-hover\:-translate-y-0\.5{--tw-translate-y:-0.125rem}
.group:hover .group-hover\:-translate-y-0\.5,.group:hover .group-hover\:translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}
.group:hover .group-hover\:translate-y-0{--tw-translate-y:0px}
.group:hover .group-hover\:scale-105,.group:hover .group-hover\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}
.group:hover .group-hover\:bg-primary{--tw-bg-opacity:1;background-color:rgb(230 179 25/var(--tw-bg-opacity,1))}
.group:hover .group-hover\:text-primary{--tw-text-opacity:1;color:rgb(230 179 25/var(--tw-text-opacity,1))}
.group:hover .group-hover\:opacity-100{opacity:1}
.group:hover .group-hover\:opacity-75{opacity:.75}
.group:hover .group-hover\:shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}
.group:hover .group-hover\:shadow-md,.group:hover .group-hover\:shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.group:hover .group-hover\:shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}
.dark\:block:is(.dark *){display:block}
.dark\:hidden:is(.dark *){display:none}
.dark\:divide-slate-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}
.dark\:divide-slate-700\/60:is(.dark *)>:not([hidden])~:not([hidden]){border-color:rgba(51,65,85,.6)}
.dark\:border-amber-700\/60:is(.dark *){border-color:rgba(180,83,9,.6)}
.dark\:border-amber-800\/60:is(.dark *){border-color:rgba(146,64,14,.6)}
.dark\:border-amber-900\/50:is(.dark *){border-color:rgba(120,53,15,.5)}
.dark\:border-emerald-800\/60:is(.dark *){border-color:rgba(6,95,70,.6)}
.dark\:border-emerald-900\/50:is(.dark *){border-color:rgba(6,78,59,.5)}
.dark\:border-neutral-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}
.dark\:border-neutral-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}
.dark\:border-primary\/20:is(.dark *){border-color:rgba(230,179,25,.2)}
.dark\:border-rose-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(159 18 57/var(--tw-border-opacity,1))}
.dark\:border-rose-800\/60:is(.dark *){border-color:rgba(159,18,57,.6)}
.dark\:border-rose-900\/40:is(.dark *){border-color:rgba(136,19,55,.4)}
.dark\:border-rose-900\/50:is(.dark *){border-color:rgba(136,19,55,.5)}
.dark\:border-sky-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}
.dark\:border-sky-800\/60:is(.dark *){border-color:rgba(7,89,133,.6)}
.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}
.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}
.dark\:border-slate-700\/50:is(.dark *){border-color:rgba(51,65,85,.5)}
.dark\:border-slate-700\/60:is(.dark *){border-color:rgba(51,65,85,.6)}
.dark\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}
.dark\:border-white\/10:is(.dark *){border-color:hsla(0,0%,100%,.1)}
.dark\:border-white\/20:is(.dark *){border-color:hsla(0,0%,100%,.2)}
.dark\:border-zinc-100:is(.dark *){--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity,1))}
.dark\:border-zinc-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}
.dark\:border-zinc-700\/60:is(.dark *){border-color:rgba(63,63,70,.6)}
.dark\:border-zinc-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity,1))}
.dark\:border-zinc-800\/80:is(.dark *){border-color:rgba(39,39,42,.8)}
.dark\:bg-amber-900\/40:is(.dark *){background-color:rgba(120,53,15,.4)}
.dark\:bg-amber-950\/40:is(.dark *){background-color:rgba(69,26,3,.4)}
.dark\:bg-amber-950\/60:is(.dark *){background-color:rgba(69,26,3,.6)}
.dark\:bg-background-dark:is(.dark *){--tw-bg-opacity:1;background-color:rgb(33 29 17/var(--tw-bg-opacity,1))}
.dark\:bg-black\/30:is(.dark *){background-color:rgba(0,0,0,.3)}
.dark\:bg-black\/50:is(.dark *){background-color:rgba(0,0,0,.5)}
.dark\:bg-black\/65:is(.dark *){background-color:rgba(0,0,0,.65)}
.dark\:bg-black\/80:is(.dark *){background-color:rgba(0,0,0,.8)}
.dark\:bg-blue-950\/60:is(.dark *){background-color:rgba(23,37,84,.6)}
.dark\:bg-emerald-950\/40:is(.dark *){background-color:rgba(2,44,34,.4)}
.dark\:bg-emerald-950\/60:is(.dark *){background-color:rgba(2,44,34,.6)}
.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}
.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}
.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}
.dark\:bg-neutral-900\/60:is(.dark *){background-color:hsla(0,0%,9%,.6)}
.dark\:bg-rose-900\/60:is(.dark *){background-color:rgba(136,19,55,.6)}
.dark\:bg-rose-950\/20:is(.dark *){background-color:rgba(76,5,25,.2)}
.dark\:bg-rose-950\/40:is(.dark *){background-color:rgba(76,5,25,.4)}
.dark\:bg-rose-950\/60:is(.dark *){background-color:rgba(76,5,25,.6)}
.dark\:bg-sky-900\/60:is(.dark *){background-color:rgba(12,74,110,.6)}
.dark\:bg-sky-950\/60:is(.dark *){background-color:rgba(8,47,73,.6)}
.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}
.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}
.dark\:bg-slate-800\/30:is(.dark *){background-color:rgba(30,41,59,.3)}
.dark\:bg-slate-800\/50:is(.dark *){background-color:rgba(30,41,59,.5)}
.dark\:bg-slate-800\/60:is(.dark *){background-color:rgba(30,41,59,.6)}
.dark\:bg-slate-800\/70:is(.dark *){background-color:rgba(30,41,59,.7)}
.dark\:bg-slate-800\/80:is(.dark *){background-color:rgba(30,41,59,.8)}
.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}
.dark\:bg-slate-900\/60:is(.dark *){background-color:rgba(15,23,42,.6)}
.dark\:bg-slate-900\/90:is(.dark *){background-color:rgba(15,23,42,.9)}
.dark\:bg-zinc-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(82 82 91/var(--tw-bg-opacity,1))}
.dark\:bg-zinc-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}
.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}
.dark\:bg-zinc-800\/50:is(.dark *){background-color:rgba(39,39,42,.5)}
.dark\:bg-zinc-800\/60:is(.dark *){background-color:rgba(39,39,42,.6)}
.dark\:bg-zinc-800\/80:is(.dark *){background-color:rgba(39,39,42,.8)}
.dark\:bg-zinc-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}
.dark\:bg-zinc-900\/30:is(.dark *){background-color:rgba(24,24,27,.3)}
.dark\:bg-zinc-900\/40:is(.dark *){background-color:rgba(24,24,27,.4)}
.dark\:bg-zinc-900\/50:is(.dark *){background-color:rgba(24,24,27,.5)}
.dark\:bg-zinc-900\/60:is(.dark *){background-color:rgba(24,24,27,.6)}
.dark\:bg-zinc-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(9 9 11/var(--tw-bg-opacity,1))}
.dark\:bg-zinc-950\/50:is(.dark *){background-color:rgba(9,9,11,.5)}
.dark\:from-primary\/15:is(.dark *){--tw-gradient-from:rgba(230,179,25,.15) var(--tw-gradient-from-position);--tw-gradient-to:rgba(230,179,25,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.dark\:from-primary\/20:is(.dark *){--tw-gradient-from:rgba(230,179,25,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(230,179,25,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.dark\:via-zinc-800\/40:is(.dark *){--tw-gradient-to:rgba(39,39,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(39,39,42,.4) var(--tw-gradient-via-position),var(--tw-gradient-to)}
.dark\:via-zinc-900\/60:is(.dark *){--tw-gradient-to:rgba(24,24,27,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(24,24,27,.6) var(--tw-gradient-via-position),var(--tw-gradient-to)}
.dark\:to-zinc-900:is(.dark *){--tw-gradient-to:#18181b var(--tw-gradient-to-position)}
.dark\:to-zinc-900\/40:is(.dark *){--tw-gradient-to:rgba(24,24,27,.4) var(--tw-gradient-to-position)}
.dark\:text-amber-200:is(.dark *){--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}
.dark\:text-amber-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}
.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}
.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}
.dark\:text-emerald-200:is(.dark *){--tw-text-opacity:1;color:rgb(167 243 208/var(--tw-text-opacity,1))}
.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}
.dark\:text-neutral-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}
.dark\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}
.dark\:text-neutral-500:is(.dark *){--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}
.dark\:text-primary:is(.dark *){--tw-text-opacity:1;color:rgb(230 179 25/var(--tw-text-opacity,1))}
.dark\:text-primary\/5:is(.dark *){color:rgba(230,179,25,.05)}
.dark\:text-rose-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}
.dark\:text-rose-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1))}
.dark\:text-rose-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}
.dark\:text-sky-200:is(.dark *){--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity,1))}
.dark\:text-sky-300:is(.dark *){--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}
.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}
.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}
.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}
.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}
.dark\:text-slate-500:is(.dark *){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}
.dark\:text-slate-600:is(.dark *){--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}
.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
.dark\:text-zinc-100:is(.dark *){--tw-text-opacity:1;color:rgb(244 244 245/var(--tw-text-opacity,1))}
.dark\:text-zinc-200:is(.dark *){--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}
.dark\:text-zinc-300:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}
.dark\:text-zinc-400:is(.dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}
.dark\:text-zinc-500:is(.dark *){--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}
.dark\:text-zinc-600:is(.dark *){--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}
.dark\:text-zinc-700:is(.dark *){--tw-text-opacity:1;color:rgb(63 63 70/var(--tw-text-opacity,1))}
.dark\:placeholder-zinc-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(113 113 122/var(--tw-placeholder-opacity,1))}
.dark\:placeholder-zinc-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(113 113 122/var(--tw-placeholder-opacity,1))}
.dark\:opacity-40:is(.dark *){opacity:.4}
.dark\:hover\:border-primary\/30:hover:is(.dark *){border-color:rgba(230,179,25,.3)}
.dark\:hover\:bg-black\/70:hover:is(.dark *){background-color:rgba(0,0,0,.7)}
.dark\:hover\:bg-neutral-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}
.dark\:hover\:bg-primary\/10:hover:is(.dark *){background-color:rgba(230,179,25,.1)}
.dark\:hover\:bg-primary\/15:hover:is(.dark *){background-color:rgba(230,179,25,.15)}
.dark\:hover\:bg-rose-950\/40:hover:is(.dark *){background-color:rgba(76,5,25,.4)}
.dark\:hover\:bg-slate-700\/80:hover:is(.dark *){background-color:rgba(51,65,85,.8)}
.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}
.dark\:hover\:bg-white\/20:hover:is(.dark *){background-color:hsla(0,0%,100%,.2)}
.dark\:hover\:bg-zinc-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}
.dark\:hover\:bg-zinc-700\/80:hover:is(.dark *){background-color:rgba(63,63,70,.8)}
.dark\:hover\:bg-zinc-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}
.dark\:hover\:bg-zinc-800\/50:hover:is(.dark *){background-color:rgba(39,39,42,.5)}
.dark\:hover\:bg-zinc-800\/60:hover:is(.dark *){background-color:rgba(39,39,42,.6)}
.dark\:hover\:text-slate-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}
.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
.dark\:hover\:text-zinc-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(244 244 245/var(--tw-text-opacity,1))}
.dark\:hover\:text-zinc-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity,1))}
.dark\:focus\:border-neutral-700:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}
.peer:checked~.dark\:peer-checked\:border-zinc-100:is(.dark *){--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity,1))}
.peer:checked~.dark\:peer-checked\:bg-zinc-100:is(.dark *){--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))}
.peer:checked~.dark\:peer-checked\:text-zinc-900:is(.dark *){--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity,1))}
@media (min-width:640px){.sm\:line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.sm\:inline{display:inline}.sm\:h-56{height:14rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-2{gap:.5rem}.sm\:p-5{padding:1.25rem}.sm\:p-8{padding:2rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}
}
@media (min-width:768px){.md\:mb-12{margin-bottom:3rem}.md\:mb-2{margin-bottom:.5rem}.md\:mb-3{margin-bottom:.75rem}.md\:hidden{display:none}.md\:h-60{height:15rem}.md\:h-auto{height:auto}.md\:w-48{width:12rem}.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:gap-8{gap:2rem}.md\:p-6{padding:1.5rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pl-6{padding-left:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}.md\:leading-tight{line-height:1.25}
}
@media (min-width:1024px){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-12{gap:3rem}.lg\:dark\:bg-background-dark\/80:is(.dark *){background-color:rgba(33,29,17,.8)}
}
@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* ===== /Tailwind Utility Compatibility ===== */

html,
body {
	font-family: 'Inter', sans-serif;
	background-color: #ffffff !important;
}

.dark html,
.dark body {
	background-color: #211d11 !important;
}

/* 商品説明文などブロックコンテンツ内の段落間マージン */
.wp-block-post-content p,
.product-description-content p {
	margin-top: 0;
	margin-bottom: 0.85rem;
}
.product-description-content {
	font-size: 0.9375rem; /* 15px */
	line-height: 1.8;
}
@media (min-width: 640px) {
	.product-description-content {
		font-size: 1rem; /* 16px */
	}
}
.wp-block-post-content p:last-child,
.product-description-content p:last-child {
	margin-bottom: 0;
}
.product-description-content h2 {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}
.product-description-content h3 {
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}
.product-description-content figure {
	border-radius: 0.5rem;
	overflow: hidden;
	margin: 0.75rem 0;
}
.product-description-content figure img {
	width: 100%;
	border-radius: 0.5rem;
}

/* タブレット・スマホ時（1024px未満）：商品概要枠外のメイン画像（高さ180px制限） */
.product-thumb-intro {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 180px;
	max-height: 180px;
	margin-top: 1.25rem;
	border-radius: 0.75rem;
	overflow: hidden;
	cursor: pointer;
}
:is(.dark .product-thumb-intro) {
	border-color: rgba(51, 65, 85, 0.8);
	background-color: #1e293b;
}
.product-thumb-intro img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.3s ease;
}
.product-thumb-intro:hover img {
	transform: scale(1.03);
}

/* PCサイズ（1024px以上）では左カラムに大画像ギャラリーがあるため非表示 */
@media (min-width: 1024px) {
	.product-thumb-intro {
		display: none !important;
	}
}

/* ニュース記事本文・詳細内の画像中央揃えおよびマージン設定 */
article.prose figure,
.prose .wp-block-image {
	text-align: center;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 2rem !important;
	margin-bottom: 2rem !important;
}

/* figure直下のimgは親figureのマージンと重複しないようリセット */
article.prose figure img,
.prose .wp-block-image img {
	display: block;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	max-width: 100%;
	height: auto;
	border-radius: 0.75rem;
}

/* 単体imgタグ（figureで囲まれていない場合）のみマージンを適用 */
article.prose > img,
article.prose p > img {
	display: block;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 2rem !important;
	margin-bottom: 2rem !important;
	max-width: 100%;
	height: auto;
	border-radius: 0.75rem;
}

/* ニュース記事本文の段落間マージン・フォントサイズ */
article.prose,
article.prose p {
	font-size: 0.9375rem; /* モバイル表示時: 15px相当 */
	line-height: 1.8;
}

article.prose p {
	margin-top: 0 !important;
	margin-bottom: 1.25rem !important;
}

@media (min-width: 640px) {
	article.prose,
	article.prose p {
		font-size: 1rem; /* タブレット・PC表示時: 16px */
		line-height: 1.85;
	}
	article.prose p {
		margin-bottom: 1.5rem !important;
	}
}

/* モバイル表示での横スクロール・はみ出し防止と左右均等パディングの保証 */
article.prose {
	overflow-wrap: break-word;
	word-break: break-word;
	max-width: 100%;
}

article.prose table,
article.prose pre {
	max-width: 100%;
	overflow-x: auto;
}

/* ニュース詳細画面の左右余白をヘッダー・他ページと一致させる (px-4 md:px-10) */
.news-content-main {
	width: 100% !important;
	box-sizing: border-box !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}

@media (min-width: 768px) {
	.news-content-main {
		padding-left: 2.5rem !important;
		padding-right: 2.5rem !important;
	}
}

/* 商品概要枠ブロック（カード・枠囲みボックス表示） */
article.prose .wp-block-quote.product-summary-box,
article.prose blockquote.product-summary-box {
	border: 1.5px solid rgba(230, 179, 25, 0.4) !important;
	background: rgba(230, 179, 25, 0.06) !important;
	border-radius: 0.75rem !important;
	padding: 1.25rem 1.5rem !important;
	margin: 2rem 0 !important;
	font-style: normal !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

article.prose .wp-block-quote.product-summary-box p,
article.prose blockquote.product-summary-box p {
	font-style: normal !important;
	margin-top: 0 !important;
	margin-bottom: 0.5rem !important;
}

article.prose .wp-block-quote.product-summary-box p:last-child,
article.prose blockquote.product-summary-box p:last-child {
	margin-bottom: 0 !important;
}

article.prose .wp-block-quote.product-summary-box ul,
article.prose blockquote.product-summary-box ul {
	margin-top: 0.5rem !important;
	margin-bottom: 0 !important;
	padding-left: 1.25rem !important;
	list-style-type: disc !important;
}

article.prose .wp-block-quote.product-summary-box li,
article.prose blockquote.product-summary-box li {
	margin-top: 0.25rem !important;
	margin-bottom: 0.25rem !important;
	font-style: normal !important;
	font-size: 0.9375rem;
}

/* 本文内の見出し（h2, h3）カラー・装飾設定 */
article.prose h2,
.prose .wp-block-heading h2 {
	color: #946c00 !important; /* FUROKUブランドの濃いゴールド・アンバー色 */
	padding-bottom: 0.5rem !important;
}

:is(.dark article.prose h2, .dark .prose .wp-block-heading h2) {
	color: #fbd65b !important;
}

article.prose h3,
.prose .wp-block-heading h3 {
	color: #a87d00 !important;
	border-left: 3px solid var(--wp--preset--color--primary, #e6b319) !important;
	padding-left: 0.75rem !important;
}

:is(.dark article.prose h3, .dark .prose .wp-block-heading h3) {
	color: #f7ce46 !important;
}

/* リンククリック時・フォーカス時の四方の枠線（アウトライン）を非表示 */
a,
a:focus,
a:active,
a:focus-visible {
	outline: none !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

/* ヘッダーの上部固定と透過設定（PC・モバイル共通）
   wrapper は箱を持たせず（display: contents）、.site-header のみをページ全体基準で固定する。
   これによりヘッダー下のモバイルサブナビは固定されずスクロールで流れる。 */
.header-wrapper {
	display: contents !important;
	position: static !important;
}

/* ヘッダーは完全透過（背景色なし） */
.site-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 50 !important;
	width: 100% !important;
	background: transparent !important;
	background-color: transparent !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	border-bottom: none !important;
}

@media (min-width: 1024px) {
	.site-header {
		background: rgba(255, 255, 255, 0.8) !important;
		background-color: rgba(255, 255, 255, 0.8) !important;
		-webkit-backdrop-filter: blur(12px) !important;
		backdrop-filter: blur(12px) !important;
		border-bottom: 1px solid rgba(230, 179, 25, 0.1) !important;
	}

	.dark .site-header {
		background: rgba(33, 29, 17, 0.8) !important;
		background-color: rgba(33, 29, 17, 0.8) !important;
	}
}

/* WordPressのデフォルトのブロック間マージンおよび最上部余白を除去 */
html,
body,
.wp-site-blocks {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

:where(.wp-site-blocks) > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.wp-site-blocks > .header-wrapper,
.wp-site-blocks > .header-wrapper + * {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

.header-wrapper,
.site-header,
.furoku-header {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* 階層リンク（パンくずリスト） */
.furoku-breadcrumbs {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.2rem !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: #a8a29e !important;
	margin-bottom: 1rem !important;
	overflow: hidden !important;
	scrollbar-width: none !important; /* Firefox */
	-ms-overflow-style: none !important; /* IE / Edge */
}
.dark .furoku-breadcrumbs {
	color: #71717a !important;
}
.furoku-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
	flex-shrink: 0;
}
.furoku-breadcrumbs a:hover {
	color: var(--furoku-primary) !important;
}
.furoku-breadcrumbs .material-symbols-outlined {
	font-size: 14px !important;
	flex-shrink: 0;
}
.furoku-breadcrumbs span:last-child {
	color: #57534e;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 20rem;
}
.dark .furoku-breadcrumbs span:last-child {
	color: #a1a1aa;
}
@media (min-width: 768px) {
	.furoku-breadcrumbs span:last-child {
		max-width: 28rem;
	}
}

.furoku-breadcrumbs::-webkit-scrollbar {
	display: none !important; /* Chrome / Safari */
}

.product-hero-gallery {
  margin: 1.5rem 0;
}
@media (max-width: 1023px) {
  .product-hero-gallery:not(:has(.furoku-product-thumb-grid)) {
    display: none;
  }
}
.furoku-no-image {
  font-size: 0.875rem;
  color: var(--furoku-text-subtle);
  margin: 0;
}
/* 雑誌詳細ページ（product.html）の上段PC2カラムレイアウト保証 */
@media (min-width: 1024px) {
	.product-hero-article {
		display: grid !important;
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) !important;
		column-gap: 3rem !important;
		row-gap: 1.5rem !important;
		align-items: start !important;
		width: 100% !important;
	}
	/* PC左カラム: 画像ギャラリー（左半分・縦2段通し） */
	.product-hero-article > .product-hero-gallery {
		grid-column: 1 !important;
		grid-row: 1 / span 2 !important;
		width: 100% !important;
	}
	/* PC右カラム上段: タイトル・商品説明・価格 */
	.product-hero-article > .product-hero-info {
		grid-column: 2 !important;
		grid-row: 1 !important;
		width: 100% !important;
	}
	/* PC右カラム下段: バリエーション・購入ボタン */
	.product-hero-article > .product-hero-actions {
		grid-column: 2 !important;
		grid-row: 2 !important;
		width: 100% !important;
	}
  .product-hero-gallery {
    margin: 0 !important;
  }
}

/* ギャラリー下の関連ニュースカードの余白保証 */
.product-related-news-wrap {
	margin-top: 2rem !important; /* 32px */
}

/* ==========================================================================
   タブレット・スマホ表示（1024px未満）：商品概要の「続きを読む」省略展開スタイル
   ========================================================================== */
@media (max-width: 1023px) {
	/* 商品概要の省略コンテナ */
	.product-desc-collapsible {
		position: relative;
		overflow: hidden;
		transition: max-height 0.35s ease-out;
	}
	.product-desc-collapsible.is-collapsed {
		max-height: 200px;
		/* mask-image でテキストをフェードアウト（背景色に依存しない） */
		-webkit-mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
		mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
	}

	/* 続きを読むボタン（モバイル・タブレットで表示） */
	.furoku-readmore-btn-wrap {
		display: block;
		margin-top: 0.5rem;
		text-align: center;
		position: relative;
		z-index: 20;
	}
}

/* PCサイズ（1024px以上）では商品概要は全文表示し、続きを読むボタンは非表示 */
@media (min-width: 1024px) {
	.product-desc-collapsible {
		max-height: none !important;
		overflow: visible !important;
		-webkit-mask-image: none !important;
		mask-image: none !important;
	}
	/* 商品概要の「続きを読む」ボタンのみ非表示 */
	.product-desc-readmore-btn-wrap {
		display: none !important;
	}
}

/* ==========================================================================
   編集部コメント：画面幅によらず常に省略表示（続きを読むボタンで展開）
   ========================================================================== */
.editorial-comment-collapsible {
	position: relative;
	overflow: hidden;
	transition: max-height 0.35s ease-out;
}
.editorial-comment-collapsible.is-collapsed {
	max-height: 120px;
	/* mask-image でテキストをフェードアウト（背景色に依存しない） */
	-webkit-mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
	mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
}
/* 続きを読むボタン（編集部コメント専用・常に表示） */
.furoku-readmore-btn-wrap {
	display: block;
	margin-top: 0.5rem;
	text-align: center;
	position: relative;
	z-index: 20;
}
/* レビュー本文の続きを読むボタン：長文の場合のみJSで表示 */
.furoku-readmore-btn-wrap.furoku-review-readmore-wrap {
	display: none;
}
.furoku-readmore-btn-wrap.furoku-review-readmore-wrap.is-visible {
	display: block;
}

/* ==========================================================================
   トップページ：ヒーロー見出しの均等割り付け（2行の幅揃え）
   ========================================================================== */
.furoku-hero-heading {
	display: inline-block;
	width: 7.5em;
	max-width: 100%;
	text-align: justify;
	text-align-last: justify;
	text-justify: inter-character;
}

/* ==========================================================================
   Furoku Theme CSS Variables & Base Tokens
   ========================================================================== */
:root {
	--furoku-primary: #e6b319;
	--furoku-primary-hover: #d1a113;
	--furoku-primary-light: rgba(230, 179, 25, 0.1);
	--furoku-primary-subtle: rgba(230, 179, 25, 0.05);
	
	--furoku-bg: #ffffff;
	--furoku-bg-translucent: rgba(255, 255, 255, 0.85);
	--furoku-surface: #f8f9fa;
	--furoku-surface-container: #f1f3f5;
	--furoku-surface-container-high: #e9ecef;
	
	--furoku-text-main: #0f172a;
	--furoku-text-secondary: #334155;
	--furoku-text-muted: #64748b;
	--furoku-text-subtle: #94a3b8;
	
	--furoku-border: #e2e8f0;
	--furoku-border-subtle: rgba(230, 179, 25, 0.2);
	
	--furoku-radius-sm: 0.375rem;
	--furoku-radius-md: 0.5rem;
	--furoku-radius-lg: 0.75rem;
	--furoku-radius-xl: 1rem;
	--furoku-radius-2xl: 1.5rem;
	--furoku-radius-full: 9999px;
}

.dark {
	--furoku-bg: #211d11;
	--furoku-bg-translucent: rgba(33, 29, 17, 0.85);
	--furoku-surface: #1a1812;
	--furoku-surface-container: #262217;
	--furoku-surface-container-high: #2e291c;
	
	--furoku-text-main: #f8fafc;
	--furoku-text-secondary: #cbd5e1;
	--furoku-text-muted: #94a3b8;
	--furoku-text-subtle: #64748b;
	
	--furoku-border: #383220;
	--furoku-border-subtle: rgba(230, 179, 25, 0.25);
}

body {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	background-color: var(--furoku-bg);
	color: var(--furoku-text-main);
	transition: background-color 0.3s ease, color 0.3s ease;
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow-x: hidden;
}

/* ==========================================================================
   Header Layout & Components
   ========================================================================== */
.furoku-header {
	position: sticky;
	top: 0;
	z-index: 50;
	width: 100%;
	border-bottom: 1px solid var(--furoku-border-subtle);
	background-color: transparent;
	padding: 0.5rem 1rem;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
@media (min-width: 768px) {
	.furoku-header {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}
@media (min-width: 1024px) {
	.furoku-header {
		background-color: var(--furoku-bg-translucent);
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
	}
}

.furoku-header-inner {
	max-width: 1600px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	white-space: nowrap;
}

.furoku-header-left {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.furoku-header-logo-link {
	display: flex;
	align-items: center;
	transition: opacity 0.2s ease;
}
.furoku-header-logo-link:hover {
	opacity: 0.8;
}

.furoku-header-logo-img {
	height: 2.25rem;
	width: auto;
	object-fit: contain;
}
@media (min-width: 768px) {
	.furoku-header-logo-img {
		height: 2.5rem;
	}
}
.furoku-header-logo-light {
	display: block;
}
.furoku-header-logo-dark {
	display: none;
}
.dark .furoku-header-logo-light {
	display: none;
}
.dark .furoku-header-logo-dark {
	display: block;
}

.furoku-header-nav {
	display: none;
	align-items: center;
	gap: 1.5rem;
	transform: translateY(6px);
}
@media (min-width: 1280px) {
	.furoku-header-nav {
		display: flex;
	}
}

.furoku-nav-item {
	color: var(--furoku-text-secondary);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s ease;
}
.furoku-nav-item:hover {
	color: var(--furoku-primary);
}

/* Mobile Sub Navigation (Below Header, In Flow) */
.furoku-header-subnav-mobile {
	position: static !important;
	display: block;
	width: 100%;
	background-color: transparent;
	padding: 0.625rem 1rem;
}
/* トップページのみ表示（商品詳細・検索・固定ページ等では非表示にしてファーストビューを確保） */
body:not(.is-front-page):not(.home) .furoku-header-subnav-mobile {
	display: none !important;
}
@media (min-width: 1280px) {
	.furoku-header-subnav-mobile {
		display: none;
	}
}

.furoku-header-subnav-inner {
	max-width: 1600px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.75rem;
}

.furoku-subnav-item {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--furoku-text-secondary);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	background: none;
	border: none;
	padding: 0.125rem 0;
	transition: color 0.2s ease;
}
.furoku-subnav-item:hover {
	color: var(--furoku-primary);
}
.furoku-subnav-item .furoku-icon {
	width: 1rem;
	height: 1rem;
	color: var(--furoku-primary);
	flex-shrink: 0;
}

.furoku-header-right {
	display: flex;
	flex: 1;
	justify-content: flex-end;
	align-items: center;
	gap: 0.75rem;
}
@media (min-width: 768px) {
	.furoku-header-right {
		gap: 1rem;
	}
}

.furoku-header-search-form {
	display: none;
	flex-direction: column;
	min-width: 10rem;
	max-width: 16rem;
	height: 2rem;
}
@media (min-width: 1024px) {
	.furoku-header-search-form {
		display: flex;
	}
}

.furoku-header-search-box {
	display: flex;
	width: 100%;
	flex: 1;
	align-items: stretch;
	border-radius: var(--furoku-radius-md);
	height: 100%;
	background-color: var(--furoku-primary-subtle);
	overflow: hidden;
}

.furoku-header-search-icon {
	color: var(--furoku-text-subtle);
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 0.75rem;
	font-size: 1.125rem;
}

.furoku-header-search-input {
	display: flex;
	width: 100%;
	min-width: 0;
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	padding: 0 0.75rem 0 0.25rem;
	font-size: 0.875rem;
	color: var(--furoku-text-main);
}
.furoku-header-search-input::placeholder {
	color: var(--furoku-text-subtle);
}
.furoku-header-search-box:focus-within {
	box-shadow: 0 0 0 1px var(--furoku-primary);
}

.furoku-header-actions {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.furoku-user-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--furoku-radius-md);
	height: 2rem;
	width: 2rem;
	border: none;
	background-color: var(--furoku-primary-light);
	color: var(--furoku-text-main);
	cursor: pointer;
	transition: background-color 0.2s ease;
	overflow: hidden;
	padding: 0;
	flex-shrink: 0;
}
.furoku-user-btn:hover {
	background-color: rgba(230, 179, 25, 0.25);
}
.furoku-user-btn.has-avatar {
	background-color: transparent;
}
.furoku-user-btn-img {
	width: 100%;
	height: 100%;
	border-radius: var(--furoku-radius-md);
	object-fit: cover;
	display: block;
}
.furoku-user-btn .material-symbols-outlined {
	font-size: 1.25rem;
}

.dark-mode-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--furoku-radius-md);
	height: 2rem;
	width: 2rem;
	border: none;
	background-color: var(--furoku-primary-light);
	color: var(--furoku-text-main);
	cursor: pointer;
	transition: background-color 0.2s ease;
	overflow: hidden;
}
.dark-mode-toggle:hover {
	background-color: rgba(230, 179, 25, 0.2);
}

.mobile-menu-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--furoku-radius-md);
	height: 2rem;
	width: 2rem;
	border: none;
	background-color: var(--furoku-primary);
	color: #211d11;
	cursor: pointer;
	transition: filter 0.2s ease;
}
.mobile-menu-btn:hover {
	filter: brightness(1.1);
}
@media (min-width: 1280px) {
	.mobile-menu-btn {
		display: none;
	}
}

/* Mobile Drawer & Backdrop */
.furoku-mobile-nav-backdrop {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.6);
	z-index: 9998;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
.furoku-mobile-nav-backdrop.is-open {
	opacity: 1;
	pointer-events: auto;
}
@media (min-width: 1280px) {
	.furoku-mobile-nav-backdrop {
		display: none;
	}
}

.furoku-mobile-nav-drawer {
	position: fixed;
	top: 0;
	right: 0;
	width: 20rem;
	max-width: 85vw;
	height: 100%;
	background-color: var(--furoku-bg);
	z-index: 9999;
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
	border-left: 1px solid var(--furoku-border-subtle);
	transform: translateX(100%);
	transition: transform 0.3s ease-in-out;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	overflow: hidden;
}
.furoku-mobile-nav-drawer.is-open {
	transform: translateX(0);
}
@media (min-width: 1280px) {
	.furoku-mobile-nav-drawer {
		display: none;
	}
}

.furoku-drawer-header {
	padding: 0.75rem 1rem;
	display: flex;
	align-items: center;
	gap: 0.625rem;
	box-sizing: border-box;
	width: 100%;
}
.furoku-drawer-search-form {
	flex: 1;
	min-width: 0;
	height: 2.25rem;
}
.furoku-drawer-search-box {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	border-radius: var(--furoku-radius-md);
	background-color: var(--furoku-primary-subtle);
	border: 1px solid var(--furoku-border-subtle);
	padding: 0 0.5rem;
	box-sizing: border-box;
}
.furoku-drawer-search-box .furoku-header-search-icon {
	padding-left: 0;
	flex-shrink: 0;
}
.furoku-drawer-search-box .furoku-header-search-icon .furoku-icon {
	width: 1.125rem;
	height: 1.125rem;
}
.furoku-drawer-search-input {
	flex: 1;
	width: 100%;
	min-width: 0;
	border: none;
	outline: none;
	background: transparent;
	padding-left: 0.375rem;
	font-size: 0.8125rem;
	color: var(--furoku-text-main);
	box-sizing: border-box;
}
.furoku-drawer-close-btn {
	width: 2.25rem;
	height: 2.25rem;
	min-width: 2.25rem;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--furoku-radius-md);
	border: none;
	background-color: var(--furoku-primary-light);
	color: var(--furoku-text-main);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
	box-sizing: border-box;
}
.furoku-drawer-close-btn:hover {
	background-color: rgba(230, 179, 25, 0.25);
}
.furoku-drawer-close-btn:active {
	transform: scale(0.95);
}
.furoku-drawer-close-btn .furoku-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.furoku-drawer-body {
	flex: 1;
	overflow-y: auto;
	padding: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.furoku-drawer-link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem;
	border-radius: var(--furoku-radius-md);
	color: var(--furoku-text-main);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.furoku-drawer-link .material-symbols-outlined,
.furoku-drawer-link .furoku-icon {
	color: var(--furoku-primary);
}
.furoku-drawer-link:hover {
	color: var(--furoku-primary);
	background-color: var(--furoku-primary-light);
}

/* Drawer Recent Products (Async Lazy Load) */
.furoku-drawer-recent-wrap {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--furoku-border-subtle);
}
.furoku-drawer-recent-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
	padding: 0 0.25rem;
}
.furoku-drawer-recent-title {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--furoku-text-secondary);
}
.furoku-drawer-recent-title .furoku-icon {
	width: 1rem;
	height: 1rem;
	color: var(--furoku-primary);
}
.furoku-drawer-recent-clear {
	background: none;
	border: none;
	padding: 0.25rem 0.5rem;
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--furoku-text-subtle);
	cursor: pointer;
	border-radius: var(--furoku-radius-sm);
	transition: color 0.2s ease, background-color 0.2s ease;
}
.furoku-drawer-recent-clear:hover {
	color: #ef4444;
	background-color: rgba(239, 68, 68, 0.1);
}
.furoku-drawer-recent-list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.furoku-drawer-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	border-radius: var(--furoku-radius-md);
	background-color: var(--furoku-surface-container, rgba(0, 0, 0, 0.02));
	border: 1px solid var(--furoku-border-subtle);
	text-decoration: none;
	color: inherit;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.furoku-drawer-card:hover {
	background-color: var(--furoku-primary-light);
	border-color: rgba(230, 179, 25, 0.3);
	transform: translateX(2px);
}
.dark .furoku-drawer-card {
	background-color: rgba(255, 255, 255, 0.03);
}
.dark .furoku-drawer-card:hover {
	background-color: rgba(230, 179, 25, 0.15);
}
.furoku-drawer-card-thumb {
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--furoku-radius-sm);
	overflow: hidden;
	flex-shrink: 0;
	background-color: rgba(0, 0, 0, 0.04);
}
.furoku-drawer-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.furoku-drawer-card-info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}
.furoku-drawer-card-date {
	font-size: 0.6875rem;
	color: var(--furoku-text-subtle);
	font-weight: 600;
	margin: 0;
}
.furoku-drawer-card-title {
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--furoku-text-main);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.furoku-drawer-card-price {
	font-size: 0.75rem;
	font-weight: 800;
	color: var(--furoku-primary);
	margin: 0;
}

/* Skeleton Loading Animation */
.furoku-drawer-recent-skeleton {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	border-radius: var(--furoku-radius-md);
	background-color: var(--furoku-surface-container, rgba(0, 0, 0, 0.02));
	animation: furoku-pulse 1.5s infinite ease-in-out;
}
.furoku-drawer-recent-skeleton .skeleton-thumb {
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--furoku-radius-sm);
	background-color: rgba(0, 0, 0, 0.08);
}
.dark .furoku-drawer-recent-skeleton .skeleton-thumb {
	background-color: rgba(255, 255, 255, 0.08);
}
.furoku-drawer-recent-skeleton .skeleton-lines {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.furoku-drawer-recent-skeleton .line {
	height: 0.75rem;
	border-radius: 4px;
	background-color: rgba(0, 0, 0, 0.08);
	width: 100%;
}
.dark .furoku-drawer-recent-skeleton .line {
	background-color: rgba(255, 255, 255, 0.08);
}
.furoku-drawer-recent-skeleton .line.short {
	width: 50%;
}
@keyframes furoku-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.45; }
}

/* ==========================================================================
   Footer Layout & Components
   ========================================================================== */
.furoku-footer {
	background-color: var(--furoku-bg);
	border-top: 1px solid var(--furoku-border-subtle);
	padding: 2.5rem 1rem;
	margin-top: auto;
}
@media (min-width: 768px) {
	.furoku-footer {
		padding: 2.5rem;
	}
}

.furoku-footer-inner {
	max-width: 1600px;
	margin: 0 auto;
}

.furoku-footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: flex-start;
}
@media (min-width: 768px) {
	.furoku-footer-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 2.5rem;
	}
}
@media (min-width: 1024px) {
	.furoku-footer-grid {
		gap: 3rem;
	}
}

.furoku-footer-heading {
	color: var(--furoku-text-main);
	font-weight: 700;
	font-size: 0.875rem;
	margin-top: 0;
	margin-bottom: 1rem;
}

.furoku-footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.furoku-footer-link {
	color: var(--furoku-text-muted);
	font-size: 0.9rem;
	text-decoration: none;
	transition: color 0.2s ease;
}
.furoku-footer-link:hover {
	color: var(--furoku-primary);
}

.furoku-footer-bottom {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(230, 179, 25, 0.08);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
@media (min-width: 768px) {
	.furoku-footer-bottom {
		flex-direction: row;
	}
}

.furoku-footer-copy {
	color: var(--furoku-text-subtle);
	font-size: 0.625rem;
	margin: 0;
}

/* Footer Account Banner */
.furoku-footer-account-banner {
	position: relative;
	border-radius: var(--furoku-radius-2xl);
	padding: 1.25rem;
	border: 1px solid rgba(230, 179, 25, 0.2);
	background: linear-gradient(135deg, rgba(230, 179, 25, 0.1), rgba(230, 179, 25, 0.05), transparent);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.dark .furoku-footer-account-banner {
	border-color: rgba(230, 179, 25, 0.25);
	background: linear-gradient(135deg, rgba(230, 179, 25, 0.15), rgba(24, 24, 27, 0.6), rgba(24, 24, 27, 0.4));
}
.furoku-footer-banner-bg-icon {
	position: absolute;
	bottom: -0.75rem;
	right: -0.75rem;
	font-size: 4.5rem !important;
	color: rgba(230, 179, 25, 0.1);
	pointer-events: none;
	user-select: none;
	line-height: 1;
}
.dark .furoku-footer-banner-bg-icon {
	color: rgba(230, 179, 25, 0.06);
}
.furoku-footer-banner-content {
	position: relative;
	z-index: 10;
}
.furoku-footer-banner-user {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}
.furoku-footer-banner-avatar {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--furoku-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-weight: 700;
	overflow: hidden;
}
.furoku-footer-banner-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--furoku-radius-md);
}
.furoku-footer-banner-title {
	font-size: 1rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0 0 0.375rem 0;
	letter-spacing: -0.02em;
}
.furoku-footer-banner-desc {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0 0 1rem 0;
	line-height: 1.6;
}
.furoku-footer-banner-actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.furoku-footer-btn-primary {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.625rem 1rem;
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 800;
	border-radius: var(--furoku-radius-xl);
	font-size: 0.75rem;
	border: none;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	transition: filter 0.2s ease, transform 0.1s ease;
}
.furoku-footer-btn-primary:hover {
	filter: brightness(1.05);
}
.furoku-footer-btn-primary:active {
	transform: scale(0.98);
}
.furoku-footer-login-row {
	text-align: center;
	padding-top: 0.25rem;
}
.furoku-footer-login-link {
	font-size: 11px;
	color: var(--furoku-text-subtle);
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	background: none;
	border: none;
	cursor: pointer;
	transition: color 0.2s ease;
}
.furoku-footer-login-link:hover {
	color: var(--furoku-primary);
}
.furoku-footer-login-highlight {
	font-weight: 700;
	text-decoration: underline;
	color: var(--furoku-primary);
}

/* ==========================================================================
   Home Page Layout & Components
   ========================================================================== */
.furoku-main-container {
	max-width: 1600px;
	margin: 0 auto;
	width: 100%;
	flex: 1;
	padding: 0.25rem 1rem 1.5rem;
}
@media (min-width: 768px) {
	.furoku-main-container {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

.furoku-home-container {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}
@media (min-width: 640px) {
	.furoku-home-container {
		gap: 4rem;
	}
}

/* Hero Section */
.furoku-hero-section {
	position: relative;
	border-radius: var(--furoku-radius-2xl);
	padding: 1.5rem 1rem;
	background-color: #faf8f5;
	background-image: 
		linear-gradient(to bottom, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.88)),
		url('/img/furoku_bbg2.jpg');
	background-position: center;
	background-size: 520px auto;
	background-repeat: repeat;
	border: 1px solid var(--furoku-border-subtle);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
}
@media (min-width: 640px) {
	.furoku-hero-section {
		padding: 2.5rem 1.5rem;
	}
}
@media (min-width: 768px) {
	.furoku-hero-section {
		margin-top: 2rem;
		padding: 3rem 2rem;
	}
}
.dark .furoku-hero-section {
	background-color: #121212;
	background-image: 
		linear-gradient(to bottom, rgba(24, 24, 27, 0.90), rgba(18, 18, 18, 0.85)),
		url('/img/furoku_bbg2.jpg');
	background-size: 520px auto;
	background-repeat: repeat;
	border: none;
	box-shadow: none;
}

.furoku-hero-inner {
	max-width: 48rem;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.furoku-hero-subtitle {
	font-size: 0.75rem;
	color: var(--furoku-text-secondary);
	font-weight: 500;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-hero-subtitle {
		font-size: 0.875rem;
	}
}

/* Hero Main Search Form */
.furoku-main-search-form {
	position: relative;
	display: flex;
	align-items: center;
	box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08);
	border-radius: var(--furoku-radius-xl);
	background-color: #ffffff;
	border: 2px solid rgba(230, 179, 25, 0.4);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.dark .furoku-main-search-form {
	background-color: var(--furoku-surface);
	border-color: rgba(230, 179, 25, 0.35);
}
.furoku-main-search-form:focus-within {
	border-color: var(--furoku-primary);
	box-shadow: 0 10px 25px -5px rgba(230, 179, 25, 0.2);
}

.furoku-main-search-icon {
	color: var(--furoku-text-subtle);
	margin-left: 0.75rem;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	box-sizing: content-box;
}
@media (min-width: 640px) {
	.furoku-main-search-icon {
		margin-left: 1rem;
		width: 1.5rem;
		height: 1.5rem;
	}
}

.furoku-main-search-input {
	width: 100%;
	padding: 0.625rem 0.5rem;
	background: transparent;
	border: none;
	outline: none;
	color: var(--furoku-text-main);
	font-size: 0.75rem;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
@media (min-width: 640px) {
	.furoku-main-search-input {
		padding: 1rem 0.75rem;
		font-size: 0.875rem;
	}
}
@media (min-width: 768px) {
	.furoku-main-search-input {
		font-size: 1rem;
	}
}
.furoku-main-search-input::placeholder {
	color: var(--furoku-text-subtle);
}

.furoku-main-search-btn {
	flex-shrink: 0;
	margin: 0.375rem;
	padding: 0.5rem 0.875rem;
	border-radius: var(--furoku-radius-lg);
	border: none;
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 700;
	font-size: 0.75rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	transition: filter 0.2s ease, transform 0.1s ease;
}
@media (min-width: 640px) {
	.furoku-main-search-btn {
		margin: 0.5rem;
		padding: 0.625rem 1.5rem;
		font-size: 0.875rem;
		gap: 0.375rem;
	}
}
.furoku-main-search-btn:hover {
	filter: brightness(1.05);
}
.furoku-main-search-btn:active {
	transform: scale(0.97);
}
.furoku-main-search-btn-icon {
	display: none;
	width: 1rem;
	height: 1rem;
}
@media (min-width: 640px) {
	.furoku-main-search-btn-icon {
		display: inline-block;
	}
}

/* Popular Keywords */
.furoku-quick-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding-top: 0.5rem;
}
.furoku-quick-label {
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--furoku-text-subtle);
	display: flex;
	align-items: center;
	gap: 0.25rem;
	flex-shrink: 0;
}
.furoku-tag-pill {
	padding: 0.25rem 0.75rem;
	border-radius: var(--furoku-radius-full);
	font-size: 0.75rem;
	font-weight: 500;
	background-color: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--furoku-border);
	color: var(--furoku-text-secondary);
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.dark .furoku-tag-pill {
	background-color: rgba(38, 34, 23, 0.85);
	border-color: var(--furoku-border);
}
.furoku-tag-pill:hover {
	border-color: var(--furoku-primary);
	color: var(--furoku-primary);
}

.furoku-calendar-shortcut {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding-top: 0.5rem;
}
.furoku-calendar-shortcut-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-secondary);
	text-decoration: none;
	transition: color 0.2s ease;
}
.furoku-calendar-shortcut-link:hover {
	color: var(--furoku-primary);
}
.furoku-calendar-shortcut-link .material-symbols-outlined {
	color: var(--furoku-primary);
	font-size: 1rem;
}

/* Genre Section */
.furoku-genre-section {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.furoku-genre-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--furoku-border);
	padding-bottom: 0.75rem;
}
.furoku-genre-title-wrap {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	flex-wrap: wrap;
}
.furoku-genre-bar {
	width: 0.375rem;
	height: 1.25rem;
	background-color: var(--furoku-primary);
	border-radius: var(--furoku-radius-full);
	display: inline-block;
}
.furoku-genre-title {
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-genre-title {
		font-size: 1.25rem;
	}
}
.furoku-genre-count {
	font-size: 0.75rem;
	color: var(--furoku-text-subtle);
	font-weight: 400;
}
.furoku-genre-view-all {
	flex-shrink: 0;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-primary);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 0.25rem;
}
.furoku-genre-view-all:hover {
	text-decoration: underline;
}

.furoku-product-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (min-width: 640px) {
	.furoku-product-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25rem;
	}
}
@media (min-width: 768px) {
	.furoku-product-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
@media (min-width: 1024px) {
	.furoku-product-grid {
		grid-template-columns: repeat(6, 1fr);
	}
}

/* Explore Banner */
.furoku-explore-banner {
	padding: 1.5rem 1rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (min-width: 640px) {
	.furoku-explore-banner {
		padding: 2rem;
	}
}
.furoku-explore-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-explore-title {
		font-size: 1.125rem;
	}
}
.furoku-explore-desc {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	max-width: 36rem;
	margin: 0 auto;
	line-height: 1.6;
}
@media (min-width: 640px) {
	.furoku-explore-desc {
		font-size: 0.875rem;
	}
}
.furoku-explore-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: var(--furoku-radius-lg);
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 700;
	font-size: 0.75rem;
	text-decoration: none;
	transition: filter 0.2s ease;
	margin: 0.5rem auto 0;
}
@media (min-width: 640px) {
	.furoku-explore-cta {
		font-size: 0.875rem;
	}
}
.furoku-explore-cta:hover {
	filter: brightness(1.05);
}

/* ==========================================================================
   Product Card Component (furoku-product-card)
   ========================================================================== */
.furoku-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}
.furoku-card-thumb-wrap {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--furoku-radius-lg);
	background-color: var(--furoku-surface-container);
	margin-bottom: 0.75rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	transition: box-shadow 0.3s ease;
}
.furoku-card:hover .furoku-card-thumb-wrap {
	box-shadow: 0 10px 20px -3px rgba(0, 0, 0, 0.12);
}
.furoku-card-thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.furoku-card:hover .furoku-card-thumb-img {
	transform: scale(1.05);
}

.furoku-card-badges {
	position: absolute;
	bottom: 0.375rem;
	left: 0.375rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	align-items: flex-start;
	z-index: 10;
	pointer-events: none;
}
.furoku-card-badge {
	padding: 0.125rem 0.375rem;
	font-size: 9px;
	font-weight: 700;
	border-radius: var(--furoku-radius-sm);
	line-height: 1.2;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
	color: #ffffff;
}
.furoku-card-badge.is-lawson {
	background-color: #E6004C;
}
.furoku-card-badge.is-familymart {
	background-color: #009944;
}
.furoku-card-badge.is-seven {
	background-color: #F58220;
}
.furoku-card-badge.is-category {
	background-color: rgba(255, 255, 255, 0.9);
	color: #1e293b;
	text-transform: uppercase;
}
.dark .furoku-card-badge.is-category {
	background-color: rgba(0, 0, 0, 0.8);
	color: #ffffff;
}

.furoku-card-popular-badge {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 10;
	pointer-events: none;
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-size: 9px;
	font-weight: 900;
	padding: 0.125rem 0.375rem;
	border-radius: var(--furoku-radius-sm);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
	line-height: 1.2;
}

.furoku-card-content {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.furoku-card-date {
	font-size: 0.75rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	color: var(--furoku-text-muted);
}
.furoku-card-date.is-upcoming {
	color: #dc2626;
}
.dark .furoku-card-date.is-upcoming {
	color: #fb7185;
}
.furoku-card-date .furoku-icon,
.furoku-card-date-icon {
	width: 0.8125rem;
	height: 0.8125rem;
	flex-shrink: 0;
}
.furoku-card-date .material-symbols-outlined {
	font-size: 15px;
}

.furoku-card-title {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	line-height: 1.4;
	margin: 0;
	min-height: 2.45rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.2s ease;
}
.furoku-card:hover .furoku-card-title {
	color: var(--furoku-primary);
}

.furoku-card-furoku-box {
	display: flex;
	align-items: flex-start;
	gap: 0.25rem;
	background-color: rgba(245, 245, 244, 0.7);
	padding: 0.5rem;
	border-radius: var(--furoku-radius-md);
	border: 1px solid rgba(231, 229, 228, 0.6);
}
.dark .furoku-card-furoku-box {
	background-color: rgba(38, 38, 38, 0.6);
	border-color: rgba(63, 63, 70, 0.6);
}
.furoku-card-furoku-icon {
	width: 0.8125rem;
	height: 0.8125rem;
	font-size: 13px;
	color: var(--furoku-text-subtle);
	margin-top: 1px;
	flex-shrink: 0;
}
.furoku-card-furoku-text {
	font-size: 11px;
	color: var(--furoku-text-secondary);
	line-height: 1.4;
	font-weight: 500;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.furoku-card-price {
	font-size: 0.875rem;
	font-weight: 900;
	color: var(--furoku-primary);
	margin: 0;
	padding-top: 0.25rem;
}

/* ==========================================================================
   Search & Filter Layout & Components
   ========================================================================== */
.furoku-search-layout {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
@media (min-width: 1024px) {
	.furoku-search-layout {
		flex-direction: row;
	}
}

.furoku-search-sidebar {
	width: 18rem;
	background-color: var(--furoku-bg);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-xl);
	position: sticky;
	top: 6rem;
	height: calc(100vh - 8rem);
	overflow: hidden;
	display: none;
	flex-direction: column;
	flex-shrink: 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
@media (min-width: 1024px) {
	.furoku-search-sidebar {
		display: flex;
	}
}

.furoku-search-sidebar-header {
	padding: 1.25rem 1.25rem 0.75rem;
	border-bottom: 1px solid var(--furoku-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.furoku-search-sidebar-title {
	font-size: 1rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
}
.furoku-search-sidebar-title .material-symbols-outlined {
	color: var(--furoku-primary);
	font-size: 1.25rem;
}
.furoku-search-sidebar-subtitle {
	font-size: 0.6875rem;
	color: var(--furoku-text-subtle);
	margin: 0.25rem 0 0;
}
.furoku-search-sidebar-body {
	padding: 1.25rem;
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.furoku-search-main {
	flex: 1;
	min-width: 0;
	overflow-x: hidden;
}

/* Page Header */
.furoku-page-header {
	margin-bottom: 1.25rem;
	border-left: 4px solid var(--furoku-primary);
	padding-left: 1rem;
}
@media (min-width: 768px) {
	.furoku-page-header {
		margin-bottom: 1rem;
		padding-left: 1.25rem;
	}
}
.furoku-page-title {
	font-size: 1.25rem;
	font-weight: 900;
	letter-spacing: -0.025em;
	color: var(--furoku-text-main);
	margin: 0 0 0.375rem;
}
@media (min-width: 768px) {
	.furoku-page-title {
		font-size: 1.25rem;
		margin-bottom: 0.5rem;
	}
}
.furoku-page-desc {
	font-size: 0.875rem;
	color: var(--furoku-text-muted);
	font-weight: 500;
	margin: 0;
}
@media (min-width: 768px) {
	.furoku-page-desc {
		font-size: 0.875rem;
	}
}

/* Search Bar & Switcher */
.furoku-search-bar-row {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-bottom: 2rem;
}
@media (min-width: 768px) {
	.furoku-search-bar-row {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}
.furoku-search-bar-wrap {
	position: relative;
	flex: 1;
	max-width: 36rem;
}
.furoku-search-bar-icon {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--furoku-text-subtle);
	pointer-events: none;
}
.furoku-search-bar-input {
	width: 100%;
	padding: 0.75rem 1rem 0.75rem 2.75rem;
	background-color: var(--furoku-bg);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-xl);
	outline: none;
	font-size: 0.875rem;
	color: var(--furoku-text-main);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.furoku-search-bar-input:focus {
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 1px var(--furoku-primary);
}

.furoku-view-switcher {
	display: flex;
	align-items: center;
	padding: 0.25rem;
	background-color: var(--furoku-surface-container);
	border-radius: var(--furoku-radius-xl);
	width: fit-content;
}
.furoku-view-btn {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: var(--furoku-radius-md);
	font-size: 0.875rem;
	border: none;
	cursor: pointer;
	background: transparent;
	color: var(--furoku-text-muted);
	font-weight: 500;
	transition: all 0.2s ease;
}
.furoku-view-btn.active {
	background-color: var(--furoku-bg);
	color: var(--furoku-primary);
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.furoku-view-btn:not(.active):hover {
	background-color: var(--furoku-surface-container-high);
}

/* Search Term Badges */
.furoku-search-badges {
	margin-top: 1rem;
	margin-bottom: 0.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}
.furoku-search-badges-title {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-muted);
	margin-right: 0.25rem;
	display: flex;
	align-items: center;
	gap: 0.25rem;
}
.furoku-search-badges-title .material-symbols-outlined {
	font-size: 0.875rem;
}
.furoku-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.25rem 0.625rem;
	border-radius: var(--furoku-radius-full);
	font-size: 0.75rem;
	font-weight: 600;
	border: 1px solid var(--furoku-border);
}
.furoku-badge-brand {
	background-color: #fef3c7;
	color: #78350f;
	border-color: #fcd34d;
}
.dark .furoku-badge-brand {
	background-color: rgba(69, 26, 3, 0.6);
	color: #fde68a;
	border-color: rgba(146, 64, 14, 0.6);
}
.furoku-badge-furoku {
	background-color: #ffe4e6;
	color: #881337;
	border-color: #fda4af;
}
.dark .furoku-badge-furoku {
	background-color: rgba(76, 5, 25, 0.6);
	color: #fecdd3;
	border-color: rgba(159, 18, 57, 0.6);
}
.furoku-badge-series {
	background-color: #e0f2fe;
	color: #0c4a6e;
	border-color: #7dd3fc;
}
.dark .furoku-badge-series {
	background-color: rgba(8, 47, 73, 0.6);
	color: #bae6fd;
	border-color: rgba(3, 105, 161, 0.6);
}
.furoku-badge-publisher {
	background-color: #d1fae5;
	color: #064e3b;
	border-color: #6ee7b7;
}
.dark .furoku-badge-publisher {
	background-color: rgba(2, 44, 34, 0.6);
	color: #a7f3d0;
	border-color: rgba(4, 120, 87, 0.6);
}
.furoku-badge-remove {
	margin-left: 0.125rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1rem;
	height: 1rem;
	border-radius: var(--furoku-radius-full);
	opacity: 0.6;
	color: inherit;
	text-decoration: none;
	transition: all 0.2s ease;
}
.furoku-badge-remove:hover {
	opacity: 1;
	background-color: rgba(0, 0, 0, 0.1);
}
.dark .furoku-badge-remove:hover {
	background-color: rgba(255, 255, 255, 0.2);
}

/* Search Results Status & Grid */
.furoku-search-results-info {
	margin-top: 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--furoku-text-secondary);
}
.furoku-search-results-info strong {
	font-weight: 700;
	color: var(--furoku-text-main);
}

.furoku-search-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	padding-top: 1.5rem;
}
@media (min-width: 768px) {
	.furoku-search-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 2rem;
	}
}

.furoku-load-more-wrap {
	margin-top: 3rem;
	display: flex;
	justify-content: center;
	width: 100%;
}
.furoku-load-more-btn {
	padding: 0.75rem 2rem;
	background-color: var(--furoku-text-main);
	color: var(--furoku-bg);
	border-radius: var(--furoku-radius-full);
	font-weight: 700;
	font-size: 0.875rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.furoku-load-more-btn:hover {
	opacity: 0.9;
}

/* Mobile Filter FAB & Bottom Sheet */
.furoku-mobile-filter-fab {
	position: fixed;
	bottom: 1rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 40;
}
@media (min-width: 1024px) {
	.furoku-mobile-filter-fab {
		display: none;
	}
}
.furoku-mobile-filter-btn {
	background-color: var(--furoku-primary);
	color: #0f172a;
	padding: 0.75rem 1.75rem;
	border-radius: var(--furoku-radius-full);
	display: flex;
	align-items: center;
	gap: 0.625rem;
	font-weight: 700;
	font-size: 0.875rem;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(230, 179, 25, 0.4);
	transition: transform 0.2s ease;
}
.furoku-mobile-filter-btn:hover {
	transform: scale(1.05);
}

.furoku-filter-backdrop {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.6);
	z-index: 60;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
.furoku-filter-backdrop.is-open {
	opacity: 1;
	pointer-events: auto;
}

.furoku-filter-drawer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	max-height: 85vh;
	height: 85vh;
	background-color: var(--furoku-bg);
	z-index: 70;
	border-top-left-radius: 2rem;
	border-top-right-radius: 2rem;
	padding: 1.25rem 1.25rem 2rem;
	transform: translateY(100%);
	border-top: 1px solid var(--furoku-border);
	box-shadow: 0 -10px 40px -5px rgba(0, 0, 0, 0.3);
	display: flex;
	flex-direction: column;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.furoku-filter-drawer.is-open {
	transform: translateY(0);
}
@media (min-width: 1024px) {
	.furoku-filter-drawer {
		display: none;
	}
}

.furoku-filter-drawer-handle {
	width: 3rem;
	height: 0.25rem;
	background-color: var(--furoku-border);
	border-radius: var(--furoku-radius-full);
	margin: 0 auto 1rem;
	flex-shrink: 0;
}
.furoku-filter-drawer-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--furoku-border);
	flex-shrink: 0;
}
.furoku-filter-drawer-close {
	padding: 0.375rem;
	border-radius: var(--furoku-radius-full);
	border: none;
	background: transparent;
	color: var(--furoku-text-muted);
	cursor: pointer;
}

/* ==========================================================================
   Search Filter Form Component (parts/furoku-search-filter.php)
   ========================================================================== */
.furoku-filter-form {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	overflow: hidden;
}
.furoku-filter-scroll-area {
	flex: 1;
	overflow-y: auto;
	min-height: 0;
	padding-right: 0.25rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.furoku-filter-group {
	border-bottom: 1px solid var(--furoku-border);
	padding-bottom: 1.25rem;
}
.furoku-filter-group:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.furoku-filter-group-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
	font-size: 0.75rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.furoku-filter-group-title .material-symbols-outlined {
	color: var(--furoku-primary);
	font-size: 1.125rem;
}
.furoku-filter-terms-list {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	font-size: 0.875rem;
}
.furoku-filter-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.25rem 0.375rem;
	border-radius: var(--furoku-radius-sm);
	color: var(--furoku-text-secondary);
	font-size: 0.75rem;
	cursor: pointer;
	user-select: none;
	transition: background-color 0.2s ease;
}
.furoku-filter-label:hover {
	background-color: var(--furoku-surface-container);
}
.furoku-filter-checkbox {
	cursor: pointer;
}
.furoku-filter-term-name {
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.furoku-filter-term-name.is-checked {
	/* クリック後の装飾を除去 */
}
.furoku-filter-term-count {
	font-size: 0.625rem;
	color: var(--furoku-text-subtle);
	font-weight: 400;
}
.furoku-filter-actions {
	padding-top: 1rem;
	margin-top: 0.5rem;
	border-top: 1px solid var(--furoku-border);
	display: flex;
	gap: 0.5rem;
	flex-shrink: 0;
	background-color: var(--furoku-bg);
}
.furoku-filter-reset-btn {
	padding: 0.625rem 1rem;
	border-radius: var(--furoku-radius-md);
	border: 1px solid var(--furoku-border);
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-secondary);
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease;
}
.furoku-filter-reset-btn:hover {
	background-color: var(--furoku-surface-container);
}
.furoku-filter-submit-btn {
	flex: 1;
	padding: 0.625rem 1rem;
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 700;
	font-size: 0.75rem;
	border-radius: var(--furoku-radius-md);
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	transition: filter 0.2s ease;
}
.furoku-filter-submit-btn:hover {
	filter: brightness(1.05);
}

/* ==========================================================================
   Calendar Page Component (parts/furoku-calendar-shortcode.php)
   ========================================================================== */
.furoku-calendar-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
}
.furoku-calendar-tab-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	border-radius: var(--furoku-radius-xl);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.2s ease;
	background-color: var(--furoku-surface-container);
	color: var(--furoku-text-secondary);
	border: none;
}
@media (min-width: 768px) {
	.furoku-calendar-tab-btn {
		font-size: 0.875rem;
	}
}
.furoku-calendar-tab-btn:hover {
	background-color: var(--furoku-surface-container-high);
}
.furoku-calendar-tab-btn.is-active {
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.furoku-calendar-tab-btn .material-symbols-outlined {
	font-size: 1.125rem;
}

.furoku-calendar-section {
	margin-bottom: 3.5rem;
}
@media (min-width: 768px) {
	.furoku-calendar-section {
		margin-bottom: 4rem;
	}
}
.furoku-calendar-header-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}
.furoku-calendar-group-label {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
	white-space: nowrap;
}
@media (min-width: 768px) {
	.furoku-calendar-group-label {
		font-size: 1.125rem;
	}
}
.furoku-calendar-group-line {
	flex: 1;
	height: 3px;
	background-color: var(--furoku-primary);
}
.furoku-calendar-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
}
@media (min-width: 768px) {
	.furoku-calendar-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 2rem;
	}
}
@media (min-width: 1280px) {
	.furoku-calendar-grid {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* ==========================================================================
   Gallery Modal Component (parts/furoku-gallery-modal.php)
   ========================================================================== */
.furoku-gallery-modal {
	position: fixed;
	inset: 0;
	z-index: 50;
	display: none;
	background-color: rgba(255, 255, 255, 0.75);
	opacity: 0;
	transition: opacity 0.3s ease;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	user-select: none;
}
.dark .furoku-gallery-modal {
	background-color: rgba(0, 0, 0, 0.65);
}

.furoku-gallery-close-btn {
	position: fixed;
	top: 1rem;
	right: 1rem;
	z-index: 50;
	color: #1e293b;
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(0, 0, 0, 0.1);
	background-color: rgba(255, 255, 255, 0.7);
	border-radius: var(--furoku-radius-full);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease;
}
@media (min-width: 768px) {
	.furoku-gallery-close-btn {
		top: 1.5rem;
		right: 2rem;
	}
}
.furoku-gallery-close-btn:hover {
	background-color: rgba(255, 255, 255, 0.9);
}
.furoku-gallery-close-btn:active {
	transform: scale(0.95);
}
.dark .furoku-gallery-close-btn {
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.2);
	background-color: rgba(0, 0, 0, 0.5);
}
.dark .furoku-gallery-close-btn:hover {
	background-color: rgba(0, 0, 0, 0.7);
}

.furoku-gallery-layout {
	position: relative;
	width: 100%;
	height: 100dvh;
	display: flex;
	flex-direction: row;
	overflow: hidden;
}

.furoku-gallery-sidebar {
	display: none;
	flex-direction: column;
	width: 6rem;
	flex-shrink: 0;
	height: 100%;
	border-right: 1px solid rgba(0, 0, 0, 0.1);
	background-color: rgba(255, 255, 255, 0.4);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	z-index: 30;
}
@media (min-width: 768px) {
	.furoku-gallery-sidebar {
		display: flex;
		width: 7rem;
	}
}
.dark .furoku-gallery-sidebar {
	border-right-color: rgba(255, 255, 255, 0.1);
	background-color: rgba(0, 0, 0, 0.3);
}

.furoku-gallery-thumbs-list {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem 0.75rem 0.75rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.furoku-gallery-scroll-area {
	flex: 1;
	height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	position: relative;
	scroll-behavior: smooth;
	overscroll-behavior: contain;
}

.furoku-gallery-inner {
	width: 100%;
	max-width: 56rem;
	margin: 0 auto;
	padding: 4rem 1rem 3rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}
@media (min-width: 640px) {
	.furoku-gallery-inner {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}
@media (min-width: 768px) {
	.furoku-gallery-inner {
		padding-top: 5rem;
		padding-left: 3rem;
		padding-right: 3rem;
	}
}

.furoku-gallery-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin-bottom: 2rem;
	text-align: center;
	max-width: 42rem;
	padding: 0 1rem;
	line-height: 1.6;
}
@media (min-width: 640px) {
	.furoku-gallery-title {
		font-size: 1.5rem;
		margin-bottom: 2.5rem;
	}
}

.furoku-gallery-list {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
}
@media (min-width: 640px) {
	.furoku-gallery-list {
		gap: 3rem;
	}
}

.furoku-gallery-detail-btn-wrap {
	margin-top: 3rem;
	margin-bottom: 2rem;
	display: flex;
	justify-content: center;
	width: 100%;
}
.furoku-gallery-detail-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.875rem 2rem;
	background-color: var(--furoku-primary);
	color: #09090b;
	border-radius: var(--furoku-radius-full);
	font-weight: 700;
	font-size: 0.875rem;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	text-decoration: none;
	transition: all 0.2s ease;
}
@media (min-width: 640px) {
	.furoku-gallery-detail-btn {
		font-size: 1rem;
	}
}
.furoku-gallery-detail-btn:hover {
	background-color: #fbbf24;
}
.furoku-gallery-detail-btn:active {
	transform: scale(0.95);
}

/* ==========================================================================
   Product Detail Page Components (templates/product.html)
   ========================================================================== */
/* モバイル表示時（1024px未満）：ギャラリー内の大きなメイン画像を非表示にしてサムネイル一覧のみ表示 */
.furoku-product-main-img-box {
	display: none;
	position: relative;
	border-radius: var(--furoku-radius-xl);
	overflow: hidden;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	max-height: 500px;
	background-color: var(--furoku-surface-container);
}
@media (min-width: 1024px) {
	.furoku-product-main-img-box {
		display: flex;
	}
}
.furoku-product-blur-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(24px);
	transform: scale(1.1);
	opacity: 0.7;
	pointer-events: none;
	user-select: none;
}
.dark .furoku-product-blur-bg {
	opacity: 0.4;
}
.furoku-product-main-img {
	position: relative;
	z-index: 10;
	width: 100%;
	height: auto;
	max-height: 500px;
	object-fit: contain;
	margin: 0 auto;
	border-radius: var(--furoku-radius-xl);
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}
.furoku-product-thumb-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	margin-top: 0;
}
@media (min-width: 1024px) {
	.furoku-product-thumb-grid {
		margin-top: 1rem;
	}
}
.furoku-product-thumb-item {
	aspect-ratio: 1 / 1;
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	cursor: pointer;
	transition: all 0.2s ease;
	border: 2px solid transparent;
	background-color: var(--furoku-surface-container);
	position: relative;
}
.furoku-product-thumb-item.is-first {
	border-color: var(--furoku-primary);
}
.furoku-product-thumb-item:not(.is-first):hover {
	border-color: rgba(230, 179, 25, 0.5);
}
.furoku-product-thumb-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.furoku-product-thumb-item.has-more img {
	opacity: 0.6;
}
.furoku-product-thumb-item .more-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0, 0, 0, 0.4);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.875rem;
}

/* Buy Buttons Grid */
.furoku-buy-buttons-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 0.75rem;
}
@media (min-width: 640px) {
	.furoku-buy-buttons-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
}
@media (min-width: 1024px) {
	.furoku-buy-buttons-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.furoku-buy-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	line-height: 1.25;
	overflow: hidden;
	padding: 0.75rem;
	border-radius: var(--furoku-radius-xl);
	font-weight: 700;
	font-size: 0.75rem;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	text-decoration: none;
	transition: all 0.2s ease;
}
@media (min-width: 640px) {
	.furoku-buy-btn {
		font-size: 0.875rem;
	}
}
.furoku-buy-btn:not(.is-disabled):hover {
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.furoku-buy-btn.is-disabled {
	background-color: var(--furoku-border);
	color: var(--furoku-text-subtle);
	opacity: 0.6;
	cursor: not-allowed;
}
.furoku-buy-btn.is-amazon {
	background-color: #ff9900;
	color: #09090b;
}
.furoku-buy-btn.is-amazon:hover {
	background-color: #e68a00;
}
.furoku-buy-btn.is-rakuten {
	background-color: #bf0000;
	color: #ffffff;
}
.furoku-buy-btn.is-rakuten:hover {
	background-color: #a60000;
}
.furoku-buy-btn.is-yahoo {
	background-color: #ffd600;
	color: #09090b;
}
.furoku-buy-btn.is-yahoo:hover {
	background-color: #e6c100;
}
.furoku-buy-btn.is-hmv {
	background-color: #e6004c;
	color: #ffffff;
}
.furoku-buy-btn.is-hmv:hover {
	background-color: #cc0043;
}
.furoku-buy-btn.is-seven {
	background-color: #004ada;
	color: #ffffff;
}
.furoku-buy-btn.is-seven:hover {
	background-color: #003ebd;
}
.furoku-buy-btn.is-tower {
	background-color: #ffd600;
	color: #e4002b;
}
.furoku-buy-btn.is-tower:hover {
	background-color: #e6c100;
}

/* Spec Table */
.furoku-spec-card {
	background-color: var(--furoku-bg);
	border-radius: var(--furoku-radius-2xl);
	padding: 1.5rem;
	border: 1px solid var(--furoku-border);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	position: sticky;
	top: 6rem;
}
@media (min-width: 640px) {
	.furoku-spec-card {
		padding: 1.5rem;
	}
}
.furoku-spec-title-wrap {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}
.furoku-spec-bar {
	width: 0.375rem;
	height: 1.25rem;
	background-color: var(--furoku-primary);
	border-radius: var(--furoku-radius-full);
}
.furoku-spec-title {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	letter-spacing: -0.025em;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-spec-title {
		font-size: 1.25rem;
	}
}
.furoku-spec-table-wrap {
	overflow: hidden;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
}
.furoku-spec-table {
	width: 100%;
	font-size: 0.75rem;
	text-align: left;
	border-collapse: collapse;
}
@media (min-width: 640px) {
	.furoku-spec-table {
		font-size: 0.875rem;
	}
}
.furoku-spec-table th,
.furoku-spec-table td {
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--furoku-border);
}
.furoku-spec-table tr:last-child th,
.furoku-spec-table tr:last-child td {
	border-bottom: none;
}
.furoku-spec-table th {
	width: 30%;
	font-weight: 700;
	color: var(--furoku-text-secondary);
	background-color: var(--furoku-surface);
}
.furoku-spec-table td {
	color: var(--furoku-text-main);
	background-color: var(--furoku-bg);
}
.furoku-spec-table td.is-price {
	font-weight: 900;
	color: var(--furoku-primary);
}
.furoku-spec-table td.is-mono {
	font-family: monospace;
}

/* Related Magazines in Product Page */
.furoku-related-magazines-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 1rem;
	row-gap: 1.75rem;
}
@media (min-width: 640px) {
	.furoku-related-magazines-grid {
		column-gap: 1.25rem;
		row-gap: 2rem;
	}
}
@media (min-width: 768px) {
	.furoku-related-magazines-grid {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* Product Detail Cards & Badges */
.furoku-product-header {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.furoku-product-badges {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	align-items: center;
	gap: 0.5rem;
	margin-left: -1rem;
	margin-right: -1rem;
	padding-left: 1rem;
	padding-right: 1rem;
	padding-bottom: 0.25rem;
	scrollbar-width: none;
}
.furoku-product-badges::-webkit-scrollbar {
	display: none;
}
.furoku-product-badges a,
.furoku-product-badges span,
.furoku-product-badges .furoku-badge {
	flex-shrink: 0;
	white-space: nowrap;
}
@media (min-width: 1024px) {
	.furoku-product-badges {
		flex-wrap: wrap;
		overflow-x: visible;
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
	}
}
.furoku-product-title {
	font-size: 1.3rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	line-height: 1.35;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-product-title {
		font-size: 1.875rem;
	}
}
.furoku-product-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	column-gap: 0rem;
	row-gap: 0.5rem;
	padding-top: 0.5rem;
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
}
@media (min-width: 640px) {
	.furoku-product-meta-row {
		font-size: 0.875rem;
	}
}
.furoku-product-meta-left {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 1rem;
	row-gap: 0.375rem;
}
.furoku-product-meta-item {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-weight: 500;
}
.furoku-product-meta-item .material-symbols-outlined {
	color: var(--furoku-primary);
	font-size: 1rem;
}

.furoku-release-date-wrap {
	display: inline-flex;
	align-items: baseline;
}
.furoku-release-date-wrap.is-upcoming,
.furoku-release-date-wrap.is-upcoming strong,
.furoku-release-date-wrap.is-upcoming span {
	color: #e11d48 !important;
}
.dark .furoku-release-date-wrap.is-upcoming,
.dark .furoku-release-date-wrap.is-upcoming strong,
.dark .furoku-release-date-wrap.is-upcoming span {
	color: #fb7185 !important;
}

.furoku-release-date-wrap.is-released,
.furoku-release-date-wrap.is-released strong,
.furoku-release-date-wrap.is-released span {
	color: var(--furoku-text-second) !important;
}

.furoku-product-card-box {
	padding: 0.5rem;
}
@media (min-width: 640px) {
	.furoku-product-card-box {
		padding: 1.25rem;
	}
}
.furoku-product-card-box-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.625rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid var(--furoku-primary);
}
.furoku-product-card-box-header .furoku-icon,
.furoku-product-card-box-header .material-symbols-outlined {
	color: var(--furoku-primary);
	width: 1.25rem;
	height: 1.25rem;
	font-size: 1.25rem;
	flex-shrink: 0;
}
.furoku-product-card-box-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	line-height: 1.4;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-product-card-box-title {
		font-size: 1.125rem;
	}
}
.furoku-product-price-box {
	display: flex;
	align-items: baseline;
	margin-left: auto;
	padding-top: 0;
	white-space: nowrap;
}
.furoku-product-price-val {
	font-size: 1.375rem;
	font-weight: 900;
	color: var(--furoku-primary);
	letter-spacing: -0.025em;
	line-height: 1.2;
}
@media (min-width: 640px) {
	.furoku-product-price-val {
		font-size: 1.625rem;
	}
}
.furoku-product-price-sub {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--furoku-text-subtle);
	margin-left: 0.25rem;
}

/* Affiliate Buy Container */
.furoku-affiliate-section {
	margin-top: 3rem;
	margin-bottom: 3rem;
	padding: 1.25rem;
	background-color: var(--furoku-bg);
	border-radius: var(--furoku-radius-2xl);
	border: 1px solid var(--furoku-border);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (min-width: 640px) {
	.furoku-affiliate-section {
		padding: 1.5rem;
	}
}

/* Product Reviews & Spec Section */
.furoku-middle-section {
	padding-top: 1.5rem;
	margin-bottom: 4rem;
}
.furoku-middle-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
	margin-bottom: 3rem;
}
@media (min-width: 1024px) {
	.furoku-middle-grid {
		grid-template-columns: 7fr 5fr;
	}
}
.furoku-reviews-col {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.furoku-review-item {
	padding: 1rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
@media (min-width: 640px) {
	.furoku-review-item {
		padding: 1.25rem;
	}
}
.furoku-review-author-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
.furoku-review-avatar {
	width: 2rem;
	height: 2rem;
	border-radius: var(--furoku-radius-full);
	background-color: var(--furoku-surface-container-high);
	color: var(--furoku-text-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.75rem;
}
.furoku-review-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	background-color: var(--furoku-primary);
	color: #09090b;
	font-weight: 700;
	font-size: 0.75rem;
	border-radius: var(--furoku-radius-md);
	border: none;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition: filter 0.2s ease;
}
.furoku-review-btn:hover {
	filter: brightness(1.05);
}

/* ==========================================================================
   Product Detail Page Text Links Decoration
   ========================================================================== */
.furoku-spec-table td a,
.furoku-reviews-col a:not(.furoku-review-btn):not(.furoku-readmore-btn):not(.furoku-gallery-trigger),
.furoku-product-meta-item a,
.furoku-product-card-box a:not(.furoku-readmore-btn) {
	text-decoration: underline;
	text-underline-offset: 3px;
	color: inherit;
	transition: color 0.2s ease;
}
.furoku-spec-table td a:hover,
.furoku-reviews-col a:not(.furoku-review-btn):not(.furoku-readmore-btn):not(.furoku-gallery-trigger):hover,
.furoku-product-meta-item a:hover,
.furoku-product-card-box a:not(.furoku-readmore-btn):hover {
	color: var(--furoku-primary);
}

/* ==========================================================================
   Editorial Comments Section (編集部の先取り解説)
   ========================================================================== */
.furoku-editorial-section {
	background-color: var(--furoku-bg);
	border-radius: var(--furoku-radius-2xl);
	padding: 1.5rem;
	border: 1px solid var(--furoku-border);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
@media (min-width: 640px) {
	.furoku-editorial-section {
		padding: 2rem;
	}
}
.furoku-editorial-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}
.furoku-editorial-bar {
	width: 0.375rem;
	height: 1.5rem;
	background-color: var(--furoku-primary);
	border-radius: var(--furoku-radius-full);
}
.furoku-editorial-heading {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	letter-spacing: -0.025em;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-editorial-heading {
		font-size: 1.25rem;
	}
}
.furoku-editorial-subheading {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0.25rem 0 0 0;
}
@media (min-width: 640px) {
	.furoku-editorial-subheading {
		font-size: 0.875rem;
	}
}
.furoku-editorial-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 768px) {
	.furoku-editorial-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
.furoku-editorial-card {
	padding: 1.25rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.furoku-editorial-author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-editorial-author-meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-editorial-avatar {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 9999px;
	overflow: hidden;
	flex-shrink: 0;
	border: 2px solid transparent;
}
.furoku-editorial-avatar.is-rose {
	border-color: #fda4af;
}
.furoku-editorial-avatar.is-sky {
	border-color: #7dd3fc;
}
.furoku-editorial-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.furoku-editorial-info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
}
.furoku-editorial-name-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.furoku-editorial-name {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
	line-height: 1.2;
}
.furoku-editorial-badge {
	font-size: 10px;
	font-weight: 600;
	padding: 0.125rem 0.375rem;
	border-radius: 9999px;
	display: inline-block;
	line-height: 1.3;
}
.furoku-editorial-badge.is-rose {
	background-color: #ffe4e6;
	color: #e11d48;
}
.dark .furoku-editorial-badge.is-rose {
	background-color: rgba(225, 29, 72, 0.2);
	color: #fda4af;
}
.furoku-editorial-badge.is-sky {
	background-color: #e0f2fe;
	color: #0284c7;
}
.dark .furoku-editorial-badge.is-sky {
	background-color: rgba(2, 132, 199, 0.2);
	color: #7dd3fc;
}
.furoku-editorial-role {
	font-size: 11px;
	color: var(--furoku-text-muted);
	margin: 0.125rem 0 0 0;
}
.furoku-editorial-body {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--furoku-text-secondary);
}

/* ==========================================================================
   User Reviews Section & Components
   ========================================================================== */
.furoku-reviews-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.furoku-reviews-subheading {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0.25rem 0 0 0;
}
@media (min-width: 640px) {
	.furoku-reviews-subheading {
		font-size: 0.75rem;
	}
}
.furoku-reviews-avg-badge {
	color: var(--furoku-primary);
	font-weight: 700;
}

/* Review Summary Card (Average & Breakdown) */
.furoku-reviews-summary-card {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 1.25rem;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-xl);
	margin-bottom: 1.5rem;
}
@media (min-width: 640px) {
	.furoku-reviews-summary-card {
		flex-direction: row;
		align-items: center;
		padding: 1.5rem;
		gap: 2rem;
	}
}
.furoku-reviews-summary-main {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding-right: 0;
	border-bottom: 1px solid var(--furoku-border);
	padding-bottom: 1rem;
	min-width: 120px;
}
@media (min-width: 640px) {
	.furoku-reviews-summary-main {
		border-bottom: none;
		border-right: 1px solid var(--furoku-border);
		padding-right: 1.5rem;
		padding-bottom: 0;
	}
}
.furoku-reviews-summary-score {
	font-size: 2.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	line-height: 1;
}
.furoku-reviews-summary-stars {
	margin-top: 0.25rem;
	color: var(--furoku-primary);
}
.furoku-reviews-summary-count {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin-top: 0.25rem;
}
.furoku-reviews-summary-bars {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 100%;
}
.furoku-score-bar-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.75rem;
}
.furoku-score-bar-label {
	width: 4rem;
	color: var(--furoku-text-secondary);
	font-weight: 600;
	flex-shrink: 0;
}
.furoku-score-bar-track {
	flex: 1;
	height: 0.5rem;
	background-color: var(--furoku-border);
	border-radius: 9999px;
	overflow: hidden;
}
.furoku-score-bar-fill {
	height: 100%;
	background-color: var(--furoku-primary);
	border-radius: 9999px;
	transition: width 0.3s ease;
}
.furoku-score-bar-val {
	width: 2.5rem;
	text-align: right;
	font-weight: 700;
	color: var(--furoku-text-main);
	flex-shrink: 0;
}

/* Reviews List */
.furoku-reviews-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding-top: 1rem;
}
.furoku-review-item.is-my-review {
	border-color: rgba(230, 179, 25, 0.4);
	background-color: rgba(230, 179, 25, 0.02);
}
.furoku-review-author-row {
	width: 100%;
}
.furoku-review-author-main {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	width: 100%;
}
.furoku-review-author-info {
	flex: 1;
	min-width: 0;
}
.furoku-review-author-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.furoku-review-author-actions {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	margin-left: auto;
}
.furoku-review-avatar-img {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: var(--furoku-radius-md);
	object-fit: cover;
	flex-shrink: 0;
}
.furoku-review-author-name {
	font-size: 0.8125rem;
	font-weight: 700;
	margin: 0;
	color: var(--furoku-text-main);
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	flex-wrap: wrap;
}
.furoku-review-my-badge {
	font-size: 10px;
	background: rgba(230, 179, 25, 0.15);
	color: #b45309;
	padding: 0.125rem 0.375rem;
	border-radius: 4px;
	font-weight: 600;
}
.dark .furoku-review-my-badge {
	color: #fbbf24;
	background: rgba(230, 179, 25, 0.25);
}
.furoku-review-time {
	font-size: 11px;
	color: var(--furoku-text-subtle);
}
.furoku-review-delete-btn,
.furoku-review-edit-btn {
	background: transparent;
	border: none;
	color: var(--furoku-text-subtle);
	cursor: pointer;
	padding: 2px;
	display: inline-flex;
	align-items: center;
	border-radius: 4px;
	transition: color 0.2s, background-color 0.2s;
}
.furoku-review-delete-btn:hover {
	color: #e11d48;
	background-color: rgba(225, 29, 72, 0.1);
}
.furoku-review-edit-btn:hover {
	color: var(--furoku-primary);
	background-color: rgba(230, 179, 25, 0.1);
}

/* スコアバッジ列 */
.furoku-review-scores-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-top: 0.375rem;
}
.furoku-score-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	border: 1px solid var(--furoku-border-subtle);
	border-radius: 4px;
	padding: 0.125rem 0.375rem;
	font-size: 11px;
}
.furoku-score-tag.is-overall {
	background: rgba(230, 179, 25, 0.12);
	border-color: rgba(230, 179, 25, 0.3);
}
.furoku-score-tag.is-overall .furoku-score-label {
	color: var(--furoku-text-main);
	font-weight: 600;
}
.furoku-score-stars {
	color: var(--furoku-primary);
	font-weight: 700;
}

/* Stars Display (★ / ☆) */
.furoku-stars-display {
	display: inline-flex;
	align-items: center;
	gap: 0.125rem;
	color: var(--furoku-primary);
	font-size: 1rem;
	line-height: 1;
}
.furoku-star.is-empty {
	color: var(--furoku-border);
}
.furoku-star.is-half {
	color: var(--furoku-primary);
	opacity: 0.7;
}

/* Review Body & Gallery */
.furoku-review-comment-body {
	font-size: 0.875rem;
	color: var(--furoku-text-secondary);
	line-height: 1.65;
	margin-top: 0.25rem;
	word-break: break-word;
}

/* 添付画像ギャラリー */
.furoku-review-gallery {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center;
	gap: 0.5rem !important;
	margin-top: 0.5rem;
}
.furoku-review-gallery-thumb {
	width: 4.5rem !important;
	height: 4.5rem !important;
	flex-shrink: 0;
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	border: 1px solid var(--furoku-border);
	transition: opacity 0.2s, transform 0.2s;
	display: block !important;
}
.furoku-review-gallery-thumb:hover {
	opacity: 0.85;
	transform: scale(1.02);
}
.furoku-review-gallery-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.furoku-reviews-empty {
	text-align: center;
	color: var(--furoku-text-subtle);
}
.furoku-reviews-empty-icon {
	font-size: 2.5rem;
	color: var(--furoku-border);
	margin-bottom: 0.5rem;
}
.furoku-reviews-empty-text {
	font-size: 0.875rem;
	margin: 0;
}

/* Review Modal & Form */
.furoku-review-modal-wrap {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.furoku-review-modal-wrap.hidden {
	display: none !important;
}
.furoku-review-backdrop {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.furoku-review-modal-card {
	position: relative;
	z-index: 10;
	width: 100%;
	max-width: 32rem;
	max-height: 90vh;
	overflow-y: auto;
	background: #ffffff;
	border-radius: var(--furoku-radius-2xl);
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
	border: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
	scrollbar-width: thin;
	scrollbar-color: rgba(230, 179, 25, 0.4) transparent;
}
.dark .furoku-review-modal-card {
	background: #18181b;
	scrollbar-color: rgba(230, 179, 25, 0.3) transparent;
}

/* モーダル内カスタムスクロールバー（Webkit） */
.furoku-review-modal-card::-webkit-scrollbar {
	width: 6px;
}
.furoku-review-modal-card::-webkit-scrollbar-track {
	background: transparent;
	margin: 0.5rem 0;
}
.furoku-review-modal-card::-webkit-scrollbar-thumb {
	background-color: rgba(230, 179, 25, 0.35);
	border-radius: 9999px;
	transition: background-color 0.2s ease;
}
.furoku-review-modal-card::-webkit-scrollbar-thumb:hover {
	background-color: var(--furoku-primary);
}
.dark .furoku-review-modal-card::-webkit-scrollbar-thumb {
	background-color: rgba(230, 179, 25, 0.25);
}
.dark .furoku-review-modal-card::-webkit-scrollbar-thumb:hover {
	background-color: var(--furoku-primary);
}

.furoku-review-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--furoku-border);
}
.furoku-review-modal-title {
	font-size: 1.125rem;
	font-weight: 800;
	color: var(--furoku-text-main);
	margin: 0;
}
.furoku-review-modal-close {
	background: transparent;
	border: none;
	color: var(--furoku-text-subtle);
	cursor: pointer;
	padding: 0.25rem;
	display: inline-flex;
	border-radius: 6px;
	transition: background-color 0.2s;
}
.furoku-review-modal-close:hover {
	background-color: var(--furoku-surface-container-high);
}

.furoku-review-form-body {
	padding: 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* 採点グリッド */
.furoku-rating-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	background: var(--furoku-surface-container-high);
	padding: 1rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border-subtle);
}
@media (min-width: 640px) {
	.furoku-rating-grid {
		grid-template-columns: 1fr 1fr;
	}
	.furoku-rating-field.is-featured {
		grid-column: 1 / -1;
		border-bottom: 1px solid var(--furoku-border);
		padding-bottom: 0.75rem;
	}
}
.furoku-rating-field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.furoku-rating-field-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.furoku-rating-field-label {
	font-size: 0.75rem;
	color: var(--furoku-text-main);
}
.furoku-star-picker {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	user-select: none;
}
.furoku-star-picker-btn {
	background: transparent;
	border: none;
	outline: none !important;
	box-shadow: none !important;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	color: #d4d4d8;
	padding: 0;
	transition: color 0.15s, transform 0.15s;
	-webkit-tap-highlight-color: transparent;
}
.furoku-star-picker-btn:focus,
.furoku-star-picker-btn:focus-visible,
.furoku-star-picker-btn:active {
	outline: none !important;
	box-shadow: none !important;
}
.dark .furoku-star-picker-btn {
	color: #3f3f46;
}
.furoku-star-picker-btn.is-active {
	color: var(--furoku-primary);
}
.furoku-star-picker-btn:hover {
	transform: scale(1.15);
}
.furoku-star-clear-btn {
	background: transparent;
	border: none;
	outline: none !important;
	box-shadow: none !important;
	color: var(--furoku-text-subtle);
	font-size: 0.75rem;
	cursor: pointer;
	margin-left: 0.25rem;
	padding: 2px 4px;
	border-radius: 4px;
	transition: color 0.2s, background-color 0.2s;
	-webkit-tap-highlight-color: transparent;
}
.furoku-star-clear-btn:focus,
.furoku-star-clear-btn:focus-visible,
.furoku-star-clear-btn:active {
	outline: none !important;
	box-shadow: none !important;
}
.furoku-star-clear-btn:hover {
	color: #e11d48;
	background: rgba(225, 29, 72, 0.1);
}

/* Form Controls */
.furoku-review-form-group {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.furoku-review-form-label {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-main);
}
.furoku-review-form-hint {
	font-size: 0.7rem;
	color: var(--furoku-text-muted);
	margin: 0;
}
.furoku-review-textarea {
	width: 100%;
	padding: 0.75rem;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-md);
	font-size: 0.875rem;
	color: var(--furoku-text-main);
	line-height: 1.5;
	resize: vertical;
	box-sizing: border-box;
}
.furoku-review-textarea:focus {
	outline: none;
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 2px rgba(230, 179, 25, 0.2);
}

/* Photo Upload & Previews */
.furoku-review-preview-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.25rem;
}
.furoku-preview-thumb-box {
	position: relative;
	width: 4rem;
	height: 4rem;
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	border: 1px solid var(--furoku-border);
}
.furoku-preview-thumb-box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.furoku-preview-remove-btn {
	position: absolute;
	top: 0.25rem;
	right: 0.25rem;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 9999px;
	background-color: rgba(0, 0, 0, 0.7);
	color: #ffffff;
	border: none;
	font-size: 0.625rem;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.furoku-review-file-btn-wrap {
	margin-top: 0.25rem;
}
.furoku-review-file-label {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 0.875rem;
	background-color: var(--furoku-surface);
	border: 1px dashed var(--furoku-border-subtle);
	border-radius: var(--furoku-radius-md);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--furoku-text-secondary);
	cursor: pointer;
	transition: all 0.2s ease;
}
.furoku-review-file-label:hover {
	border-color: var(--furoku-primary);
	color: var(--furoku-primary);
	background-color: rgba(230, 179, 25, 0.05);
}
.furoku-review-file-label .material-symbols-outlined {
	font-size: 1.125rem;
}

/* Agreement Checkboxes */
.furoku-review-agreement-box {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.75rem;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-md);
}
.furoku-review-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	cursor: pointer;
}
.furoku-review-checkbox {
	margin-top: 0.1875rem;
	accent-color: var(--furoku-primary);
	flex-shrink: 0;
}
.furoku-review-checkbox-text {
	font-size: 0.7rem;
	line-height: 1.4;
	color: var(--furoku-text-muted);
}

/* Notice / Alerts */
.furoku-review-notice {
	padding: 0.625rem 0.875rem;
	border-radius: var(--furoku-radius-md);
	font-size: 0.75rem;
}
.furoku-review-notice.is-error {
	background-color: #fee2e2;
	color: #991b1b;
	border: 1px solid #f87171;
}
.dark .furoku-review-notice.is-error {
	background-color: rgba(153, 27, 27, 0.2);
	color: #fca5a5;
	border-color: rgba(248, 113, 113, 0.3);
}
.furoku-review-notice.is-success {
	background-color: #dcfce7;
	color: #166534;
	border: 1px solid #86efac;
}
.dark .furoku-review-notice.is-success {
	background-color: rgba(22, 101, 52, 0.2);
	color: #86efac;
	border-color: rgba(134, 239, 172, 0.3);
}

/* Footer & Buttons */
.furoku-review-modal-footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
}
.furoku-review-modal-cancel {
	padding: 0.5rem 1rem;
	background: none;
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-md);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--furoku-text-secondary);
	cursor: pointer;
	transition: background-color 0.2s;
}
.furoku-review-modal-cancel:hover {
	background-color: var(--furoku-bg);
}
.furoku-review-modal-submit {
	padding: 0.5rem 1.25rem;
	background-color: var(--furoku-primary);
	border: none;
	border-radius: var(--furoku-radius-md);
	font-size: 0.75rem;
	font-weight: 700;
	color: #09090b;
	cursor: pointer;
	transition: filter 0.2s;
}
.furoku-review-modal-submit:hover {
	filter: brightness(1.05);
}
.furoku-review-modal-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ==========================================================================
   User Auth Modal & Components
   ========================================================================== */
#furoku-auth-modal,
.furoku-auth-modal {
	position: fixed;
	inset: 0;
	z-index: 999;
	user-select: none;
	overflow-y: auto;
}
#furoku-auth-modal.hidden,
.furoku-auth-modal.hidden {
	display: none !important;
}

#furoku-auth-backdrop,
.furoku-auth-backdrop {
	position: fixed;
	inset: 0;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	transition: opacity 0.2s ease;
}
#furoku-auth-backdrop.opacity-0,
.furoku-auth-backdrop.opacity-0 {
	opacity: 0;
	pointer-events: none;
}
#furoku-auth-backdrop.opacity-100,
.furoku-auth-backdrop.opacity-100 {
	opacity: 1;
	pointer-events: auto;
}

.furoku-auth-modal-dialog {
	min-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	box-sizing: border-box;
}

#furoku-auth-card,
.furoku-auth-card {
	position: relative;
	width: 100%;
	max-width: 28rem;
	background-color: var(--furoku-bg);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-2xl);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	padding: 1.5rem;
	transition: transform 0.2s ease, opacity 0.2s ease;
	z-index: 10;
	color: var(--furoku-text-main);
	box-sizing: border-box;
}
@media (min-width: 640px) {
	#furoku-auth-card,
	.furoku-auth-card {
		padding: 2rem;
	}
}
#furoku-auth-card.scale-95,
.furoku-auth-card.scale-95 {
	transform: scale(0.95);
}
#furoku-auth-card.scale-100,
.furoku-auth-card.scale-100 {
	transform: scale(1);
}
#furoku-auth-card.opacity-0,
.furoku-auth-card.opacity-0 {
	opacity: 0;
}
#furoku-auth-card.opacity-100,
.furoku-auth-card.opacity-100 {
	opacity: 1;
}

/* 閉じるボタン */
.furoku-auth-close-btn {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2rem;
	height: 2rem;
	border-radius: var(--furoku-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--furoku-text-subtle);
	border: none;
	background: transparent;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
	z-index: 20;
}
.furoku-auth-close-btn:hover {
	color: var(--furoku-text-main);
	background-color: var(--furoku-surface-container);
}
.furoku-auth-close-btn .material-symbols-outlined {
	font-size: 1.25rem;
}

/* メッセージ通知エリア */
.furoku-auth-notice {
	margin-bottom: 1rem;
	padding: 0.75rem 1rem;
	border-radius: var(--furoku-radius-md);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.5;
	display: block;
}
.furoku-auth-notice.hidden {
	display: none !important;
}
.furoku-auth-notice.is-error {
	background-color: #fff1f2;
	color: #e11d48;
	border: 1px solid rgba(254, 205, 211, 0.8);
}
.furoku-auth-notice.is-success {
	background-color: #ecfdf5;
	color: #059669;
	border: 1px solid rgba(167, 243, 208, 0.8);
}
.furoku-auth-notice.is-info {
	background-color: #eff6ff;
	color: #2563eb;
	border: 1px solid rgba(191, 219, 254, 0.8);
}
.dark .furoku-auth-notice.is-error {
	background-color: rgba(76, 5, 25, 0.4);
	color: #fb7185;
	border-color: rgba(136, 19, 55, 0.5);
}
.dark .furoku-auth-notice.is-success {
	background-color: rgba(6, 78, 59, 0.4);
	color: #34d399;
	border-color: rgba(5, 150, 105, 0.5);
}
.dark .furoku-auth-notice.is-info {
	background-color: rgba(30, 58, 138, 0.4);
	color: #60a5fa;
	border-color: rgba(29, 78, 216, 0.5);
}

/* ビュー共通 */
.furoku-auth-view {
	width: 100%;
}
.furoku-auth-view.hidden {
	display: none !important;
}
.furoku-auth-view-header {
	text-align: center;
	margin-bottom: 1.5rem;
}
.furoku-auth-view-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--furoku-radius-xl);
	background-color: rgba(230, 179, 25, 0.12);
	color: var(--furoku-primary);
	margin-bottom: 0.75rem;
}
.furoku-auth-view-icon .material-symbols-outlined {
	font-size: 1.5rem;
}
.furoku-auth-view-title {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0;
	letter-spacing: -0.025em;
	line-height: 1.3;
}

/* フォーム & 入力項目 */
.furoku-auth-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.furoku-auth-field {
	display: flex;
	flex-direction: column;
	text-align: left;
}
.furoku-auth-field-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.375rem;
}
.furoku-auth-label {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-secondary);
	margin-bottom: 0.375rem;
}
.furoku-auth-field-header .furoku-auth-label {
	margin-bottom: 0;
}
.furoku-auth-req {
	color: #f43f5e;
	margin-left: 0.125rem;
}
.furoku-auth-link {
	font-size: 0.75rem;
	color: var(--furoku-primary);
	text-decoration: none;
	font-weight: 600;
	transition: text-decoration 0.2s ease;
}
.furoku-auth-link:hover {
	text-decoration: underline;
}

.furoku-auth-input {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border-radius: var(--furoku-radius-md);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	font-size: 0.875rem;
	color: var(--furoku-text-main);
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box;
}
.furoku-auth-input:focus {
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 1px var(--furoku-primary);
}

.furoku-auth-password-wrap {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}
.furoku-auth-password-wrap .furoku-auth-input {
	padding-right: 2.75rem;
}
.furoku-auth-password-toggle {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	padding: 0.375rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: var(--furoku-text-subtle);
	cursor: pointer;
	transition: color 0.2s ease;
	outline: none;
}
.furoku-auth-password-toggle:hover {
	color: var(--furoku-text-main);
}
.furoku-auth-password-toggle .material-symbols-outlined {
	font-size: 1.25rem;
	pointer-events: none;
}

.furoku-auth-remember-row {
	display: flex;
	align-items: center;
}
.furoku-auth-checkbox-label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	user-select: none;
}
.furoku-auth-checkbox {
	width: 1rem !important;
	height: 1rem !important;
	border-radius: var(--furoku-radius-sm);
	border: 1px solid var(--furoku-border);
	accent-color: var(--furoku-primary);
	cursor: pointer;
	padding: 0 !important;
	margin: 0;
}

.furoku-auth-submit-btn {
	width: 100%;
	padding: 0.625rem 1rem;
	background-color: var(--furoku-primary);
	color: #09090b;
	font-weight: 700;
	border-radius: var(--furoku-radius-md);
	border: none;
	font-size: 0.875rem;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	transition: filter 0.2s ease, opacity 0.2s ease;
}
.furoku-auth-submit-btn:hover {
	filter: brightness(1.05);
}
.furoku-auth-submit-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.furoku-auth-divider {
	display: flex;
	align-items: center;
	margin: 0.5rem 0;
}
.furoku-auth-divider-line {
	flex-grow: 1;
	border-top: 1px solid var(--furoku-border);
	height: 0;
}
.furoku-auth-divider-text {
	padding: 0 0.75rem;
	font-size: 11px;
	font-weight: 600;
	color: var(--furoku-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.furoku-auth-google-btn-container {
	display: flex;
	justify-content: center;
	width: 100%;
	min-height: 44px;
}

.furoku-auth-footer-nav {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--furoku-border);
	text-align: center;
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
}
.furoku-auth-footer-link {
	margin-left: 0.25rem;
	color: var(--furoku-primary);
	font-weight: 700;
	text-decoration: none;
	transition: text-decoration 0.2s ease;
}
.furoku-auth-footer-link:hover {
	text-decoration: underline;
}

/* ユーザーメニュー ビュー */
.furoku-auth-user-header {
	padding: 0.875rem;
	margin-bottom: 1.25rem;
	display: flex;
	align-items: center;
	gap: 0.875rem;
	text-align: left;
}
.furoku-auth-user-avatar {
	width: 3rem;
	height: 3rem;
	border-radius: var(--furoku-radius-xl);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-weight: 700;
	overflow: hidden;
}
.furoku-auth-user-avatar.is-placeholder {
	background-color: rgba(230, 179, 25, 0.12);
	color: var(--furoku-primary);
}
.furoku-auth-user-avatar.is-placeholder .material-symbols-outlined {
	font-size: 1.5rem;
}
.furoku-auth-avatar-img {
	width: 100%;
	height: 100%;
	border-radius: var(--furoku-radius-xl);
	object-fit: cover;
	display: block;
}
.furoku-auth-user-meta {
	min-width: 0;
	flex: 1;
}
.furoku-auth-user-welcome {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--furoku-text-subtle);
	margin: 0 0 0.125rem 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.2;
}
.furoku-auth-user-name {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.4;
}

.furoku-auth-menu-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.furoku-auth-menu-item {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.875rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border-subtle);
	text-align: left;
	cursor: pointer;
	transition: all 0.2s ease;
	box-sizing: border-box;
}
.furoku-auth-menu-item:hover {
	background-color: rgba(230, 179, 25, 0.1);
	border-color: rgba(230, 179, 25, 0.3);
}
.furoku-auth-menu-item:hover .furoku-auth-menu-label {
	color: var(--furoku-primary);
}
.furoku-auth-menu-item:hover .furoku-auth-menu-arrow {
	transform: translateX(2px);
	color: var(--furoku-primary);
}
.dark .furoku-auth-menu-item {
	background-color: rgba(39, 39, 42, 0.5);
	border-color: var(--furoku-border);
}
.furoku-auth-menu-item-left {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-auth-menu-icon {
	font-size: 1.5rem !important;
	color: var(--furoku-primary);
	flex-shrink: 0;
}
.furoku-auth-menu-label {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	transition: color 0.2s ease;
}
.furoku-auth-menu-arrow {
	font-size: 1.25rem !important;
	color: var(--furoku-text-subtle);
	transition: transform 0.2s ease, color 0.2s ease;
	flex-shrink: 0;
}

.furoku-auth-menu-item.is-logout {
	margin-top: 0.5rem;
	background-color: rgba(255, 241, 242, 0.6);
	border-color: rgba(254, 205, 211, 0.6);
}
.furoku-auth-menu-item.is-logout .furoku-auth-menu-icon,
.furoku-auth-menu-item.is-logout .furoku-auth-menu-label,
.furoku-auth-menu-item.is-logout .furoku-auth-menu-arrow {
	color: #e11d48;
}
.furoku-auth-menu-item.is-logout:hover {
	background-color: rgba(255, 228, 230, 0.8);
	border-color: rgba(254, 205, 211, 0.8);
}
.furoku-auth-menu-item.is-logout:hover .furoku-auth-menu-label {
	color: #e11d48;
}
.furoku-auth-menu-item.is-logout:hover .furoku-auth-menu-arrow {
	color: #e11d48;
	transform: translateX(2px);
}
.dark .furoku-auth-menu-item.is-logout {
	background-color: rgba(76, 5, 25, 0.2);
	border-color: rgba(136, 19, 55, 0.4);
}
.dark .furoku-auth-menu-item.is-logout .furoku-auth-menu-icon,
.dark .furoku-auth-menu-item.is-logout .furoku-auth-menu-label,
.dark .furoku-auth-menu-item.is-logout .furoku-auth-menu-arrow {
	color: #fb7185;
}
.dark .furoku-auth-menu-item.is-logout:hover {
	background-color: rgba(76, 5, 25, 0.4);
	border-color: rgba(136, 19, 55, 0.6);
}

/* マイページ / プロフィール編集 */
.furoku-mypage-avatar-wrapper {
	position: relative;
	display: inline-block;
	width: 4rem;
	height: 4rem;
	margin: 0 auto 0.75rem;
	cursor: pointer;
	vertical-align: middle;
}
.furoku-mypage-avatar-box {
	width: 4rem;
	height: 4rem;
	border-radius: var(--furoku-radius-xl);
	overflow: hidden;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
}
.furoku-mypage-avatar-box.is-placeholder {
	background-color: rgba(230, 179, 25, 0.12);
	color: var(--furoku-primary);
	border: 2px solid rgba(230, 179, 25, 0.2);
}
.furoku-mypage-avatar-box.is-placeholder .material-symbols-outlined {
	font-size: 1.875rem !important;
}
.furoku-mypage-avatar-img {
	width: 100%;
	height: 100%;
	border-radius: var(--furoku-radius-xl);
	object-fit: cover;
	display: block;
	transition: opacity 0.2s ease;
}
.furoku-mypage-avatar-wrapper:hover .furoku-mypage-avatar-img {
	opacity: 0.75;
}
.furoku-mypage-avatar-overlay {
	position: absolute;
	inset: 0;
	border-radius: var(--furoku-radius-xl);
	background-color: rgba(0, 0, 0, 0.4);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.2s ease;
	color: #ffffff;
	z-index: 1;
}
.furoku-mypage-avatar-overlay .material-symbols-outlined {
	font-size: 1.25rem !important;
	color: #ffffff !important;
}
.furoku-mypage-avatar-wrapper:hover .furoku-mypage-avatar-overlay {
	opacity: 1;
}

.furoku-mypage-avatar-edit-badge {
	position: absolute;
	bottom: -0.25rem;
	right: -0.25rem;
	width: 1.375rem;
	height: 1.375rem;
	border-radius: 9999px;
	background-color: var(--furoku-primary);
	color: #09090b;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
	border: 2px solid var(--furoku-bg);
	z-index: 2;
	pointer-events: none;
}
.furoku-mypage-avatar-edit-badge .material-symbols-outlined {
	font-size: 13px !important;
	font-weight: 700;
	color: #09090b;
}

.furoku-mypage-avatar-btn-wrap {
	font-size: 0.75rem;
	color: var(--furoku-text-subtle);
	margin-bottom: 0.25rem;
}
.furoku-mypage-avatar-upload-btn {
	color: var(--furoku-primary);
	background: transparent;
	border: none;
	font-weight: 700;
	font-size: 0.75rem;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	cursor: pointer;
	transition: text-decoration 0.2s ease;
}
.furoku-mypage-avatar-upload-btn:hover {
	text-decoration: underline;
}
.furoku-mypage-avatar-upload-btn .material-symbols-outlined {
	font-size: 0.875rem !important;
}

.furoku-auth-back-nav {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--furoku-border-subtle);
	text-align: center;
	font-size: 0.75rem;
}
.furoku-auth-back-btn {
	color: var(--furoku-primary);
	font-weight: 700;
	background: transparent;
	border: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	transition: text-decoration 0.2s ease;
}
.furoku-auth-back-btn:hover {
	text-decoration: underline;
}
.furoku-auth-back-btn .material-symbols-outlined {
	font-size: 0.875rem !important;
}

/* 投稿コメント・評価一覧 */
.furoku-auth-comments-scroll {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-height: 20rem;
	overflow-y: auto;
	padding-right: 0.25rem;
	text-align: left;
}
.furoku-auth-comment-card {
	padding: 0.875rem;
	background-color: var(--furoku-surface);
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	font-size: 0.75rem;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.dark .furoku-auth-comment-card {
	background-color: rgba(39, 39, 42, 0.6);
	border-color: var(--furoku-border);
}
.furoku-auth-review-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}
.furoku-auth-comment-post-title {
	font-weight: 700;
	color: var(--furoku-text-main);
	text-decoration: none;
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	flex: 1;
	min-width: 0;
	transition: color 0.2s ease;
}
.furoku-auth-comment-post-title:hover {
	color: var(--furoku-primary);
	text-decoration: underline;
}
.furoku-auth-comment-date {
	font-size: 10px;
	color: var(--furoku-text-subtle);
	flex-shrink: 0;
}
.furoku-auth-review-scores {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}
.furoku-auth-score-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	border: 1px solid var(--furoku-border-subtle);
	border-radius: 4px;
	padding: 0.125rem 0.375rem;
	font-size: 10px;
}
.furoku-auth-score-pill.is-overall {
	background: rgba(230, 179, 25, 0.12);
	border-color: rgba(230, 179, 25, 0.3);
}
.furoku-auth-score-lbl {
	color: var(--furoku-text-secondary);
}
.furoku-auth-score-pill.is-overall .furoku-auth-score-lbl {
	color: var(--furoku-text-main);
	font-weight: 600;
}
.furoku-auth-score-star {
	color: var(--furoku-primary);
	font-weight: 700;
}
.furoku-auth-comment-body {
	color: var(--furoku-text-secondary);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.5;
	word-break: break-word;
}
.furoku-auth-review-thumbs {
	display: flex;
	gap: 0.375rem;
	flex-wrap: wrap;
	margin-top: 0.125rem;
}
.furoku-auth-review-thumb-item {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	border: 1px solid var(--furoku-border-subtle);
	display: inline-block;
}
.furoku-auth-review-thumb-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.furoku-auth-review-card-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 0.125rem;
}
.furoku-auth-review-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 11px;
	color: var(--furoku-primary);
	text-decoration: none;
	font-weight: 600;
	transition: opacity 0.2s;
}
.furoku-auth-review-link:hover {
	text-decoration: underline;
	opacity: 0.85;
}
.furoku-auth-review-link .material-symbols-outlined {
	font-size: 13px;
}
.furoku-auth-empty-state {
	padding: 2.5rem 1rem;
	text-align: center;
	color: var(--furoku-text-subtle);
	font-size: 0.75rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}
.furoku-auth-empty-icon {
	font-size: 2rem;
	color: var(--furoku-text-muted);
	opacity: 0.6;
}

/* ログアウト確認画面 */
.furoku-auth-logout-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: #fff1f2;
	color: #f43f5e;
	margin-bottom: 0.75rem;
	border: 1px solid rgba(254, 205, 211, 0.6);
}
.furoku-auth-logout-icon .material-symbols-outlined {
	font-size: 1.875rem !important;
}
.dark .furoku-auth-logout-icon {
	background-color: rgba(76, 5, 25, 0.4);
	border-color: rgba(136, 19, 55, 0.4);
	color: #f43f5e;
}
.furoku-auth-logout-desc {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin-top: 0.5rem;
	margin-bottom: 0;
	line-height: 1.5;
}
.furoku-auth-logout-actions {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.furoku-auth-logout-btn {
	width: 100%;
	padding: 0.75rem;
	background-color: #e11d48;
	color: #ffffff;
	font-weight: 700;
	border-radius: var(--furoku-radius-xl);
	border: none;
	font-size: 0.875rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	cursor: pointer;
	transition: background-color 0.2s ease;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.furoku-auth-logout-btn:hover {
	background-color: #be123c;
}
.furoku-auth-logout-btn .material-symbols-outlined {
	font-size: 1.25rem !important;
}
.furoku-auth-cancel-btn {
	width: 100%;
	padding: 0.625rem;
	background-color: var(--furoku-surface-container);
	color: var(--furoku-text-secondary);
	font-weight: 600;
	border-radius: var(--furoku-radius-xl);
	border: none;
	font-size: 0.75rem;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.furoku-auth-cancel-btn:hover {
	background-color: var(--furoku-border);
}

/* ユーティリティ & フッターバナー補完 */
.furoku-hidden {
	display: none !important;
}
.furoku-spin {
	animation: furoku-spin 1s linear infinite;
	display: inline-block;
}
@keyframes furoku-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.furoku-footer-avatar-placeholder {
	font-size: 1.5rem !important;
	color: var(--furoku-primary);
}
.furoku-footer-banner-user-info {
	min-width: 0;
	flex: 1;
}
.furoku-footer-banner-title.is-user {
	margin: 0;
	font-size: 0.875rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.furoku-footer-btn-icon {
	font-size: 1rem !important;
}

/* ==========================================================================
   Back To Top Floating Button (#furoku-back-to-top)
   ========================================================================== */
#furoku-back-to-top {
	position: fixed !important;
	bottom: 1.5rem !important;
	right: 1.5rem !important;
	z-index: 40 !important;
	width: 3rem !important;
	height: 3rem !important;
	border-radius: 9999px !important;
	background-color: var(--furoku-primary) !important;
	color: #0f172a !important;
	font-weight: 700 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: none !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease, transform 0.2s ease, filter 0.2s ease !important;
	outline: none !important;
	user-select: none !important;
	opacity: 0 !important;
	transform: translateY(1rem) !important;
	pointer-events: none !important;
}
#furoku-back-to-top:hover {
	filter: brightness(1.05) !important;
	transform: translateY(-2px) scale(1.05) !important;
}
#furoku-back-to-top:active {
	transform: translateY(0) scale(0.95) !important;
}
#furoku-back-to-top.is-visible,
#furoku-back-to-top.opacity-100 {
	opacity: 1 !important;
	pointer-events: auto !important;
	transform: translateY(0) !important;
}
#furoku-back-to-top.opacity-0 {
	opacity: 0 !important;
	pointer-events: none !important;
	transform: translateY(1rem) !important;
}
.furoku-back-to-top .furoku-icon {
	width: 1.75rem;
	height: 1.75rem;
	fill: currentColor;
	transition: transform 0.2s ease;
}
.furoku-back-to-top:hover .furoku-icon {
	transform: translateY(-2px);
}

/* ==========================================================================
   Editorial Reviews & Product ReadMore Button
   ========================================================================== */
.furoku-editorial-section {
	background-color: var(--furoku-bg);
	border-radius: var(--furoku-radius-2xl);
	padding: 1rem;
	border: 1px solid rgba(230, 179, 25, 0.3);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	position: relative;
	overflow: hidden;
}
@media (min-width: 640px) {
	.furoku-editorial-section {
		padding: 1.5rem;
	}
}
.dark .furoku-editorial-section {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: rgba(230, 179, 25, 0.2);
}

.furoku-editorial-card {
	padding: 1.25rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	position: relative;
}

.furoku-readmore-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.25rem !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	color: var(--furoku-primary) !important;
	padding: 0.25rem 0.75rem !important;
	border-radius: 9999px !important;
	border: 1px solid rgba(230, 179, 25, 0.5) !important;
	background-color: rgba(255, 255, 255, 0.9) !important;
	cursor: pointer !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	transition: all 0.2s ease !important;
}
.furoku-readmore-btn {
	-webkit-tap-highlight-color: transparent;
}
button.furoku-readmore-btn:focus,
button.furoku-readmore-btn:focus-visible,
button.furoku-readmore-btn:active {
	outline: none !important;
	outline-offset: 0 !important;
}
.furoku-readmore-btn:hover {
	color: #d97706 !important;
	border-color: #d97706 !important;
}
.dark .furoku-readmore-btn {
	background-color: rgba(30, 41, 59, 0.8) !important;
	border-color: rgba(230, 179, 25, 0.3) !important;
}

/* ==========================================================================
   Form Controls: Generic Radios
   ========================================================================== */
input[type="radio"] {
	accent-color: var(--furoku-primary);
	cursor: pointer;
	width: 1rem;
	height: 1rem;
	border-radius: 9999px;
	border: 1px solid var(--furoku-border);
	vertical-align: middle;
}



/* ==========================================================================
   商品詳細ページ・商品カード用バッジ (Tailwind代替)
   ========================================================================== */
.furoku-product-badges a,
.furoku-product-badges span {
	display: inline-flex;
	align-items: center;
	padding: 0.125rem 0.625rem;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.4;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.furoku-product-badges a:hover {
	border-color: var(--furoku-primary) !important;
	color: var(--furoku-primary) !important;
}

/* 発売予定バッジ */
.furoku-product-meta-item .bg-rose-50,
.furoku-product-badges .bg-rose-50 {
	background-color: #fff1f2;
	color: #be123c;
	border: 1px solid #fecdd3;
}
.dark .furoku-product-meta-item .bg-rose-50,
.dark .furoku-product-badges .bg-rose-50 {
	background-color: rgba(76, 5, 25, 0.4);
	color: #fda4af;
	border-color: rgba(159, 18, 57, 0.5);
}

/* 付録の種類・ブランド・シリーズ・出版社バッジ */
.furoku-product-badges .bg-zinc-100,
.furoku-product-badges .bg-zinc-50,
.furoku-product-badges a.is-furoku,
.furoku-product-badges a.is-brand,
.furoku-product-badges a.is-series,
.furoku-product-badges a.is-publisher {
	background-color: var(--furoku-surface);
	color: var(--furoku-text-secondary);
	border: 1px solid var(--furoku-border);
}
.furoku-product-badges a.is-furoku:hover,
.furoku-product-badges a.is-brand:hover,
.furoku-product-badges a.is-series:hover,
.furoku-product-badges a.is-publisher:hover {
	background-color: var(--furoku-surface-variant);
	color: var(--furoku-primary);
	border-color: var(--furoku-primary);
}
.dark .furoku-product-badges .bg-zinc-100,
.dark .furoku-product-badges .bg-zinc-50,
.dark .furoku-product-badges a.is-furoku,
.dark .furoku-product-badges a.is-brand,
.dark .furoku-product-badges a.is-series,
.dark .furoku-product-badges a.is-publisher {
	background-color: var(--furoku-surface-container);
	color: var(--furoku-text-secondary);
	border-color: var(--furoku-border);
}
.dark .furoku-product-badges a.is-furoku:hover,
.dark .furoku-product-badges a.is-brand:hover,
.dark .furoku-product-badges a.is-series:hover,
.dark .furoku-product-badges a.is-publisher:hover {
	background-color: var(--furoku-surface-container-high);
	color: var(--furoku-primary);
	border-color: var(--furoku-primary);
}
.furoku-product-badges .bg-amber-50 {
	background-color: rgba(230, 179, 25, 0.12);
	color: #92400e;
	border: 1px solid rgba(230, 179, 25, 0.35);
}
.dark .furoku-product-badges .bg-amber-50 {
	background-color: rgba(230, 179, 25, 0.18);
	color: #fde68a;
	border-color: rgba(230, 179, 25, 0.4);
}
.furoku-product-badges a[class*="bg-[#E6004C]"],
.furoku-product-badges a.badge-lawson,
.furoku-product-badges a.is-lawson {
	background-color: #e6004c !important;
	color: #ffffff !important;
	border-color: #e6004c !important;
}
.furoku-product-badges a[class*="bg-[#009944]"],
.furoku-product-badges a.badge-familymart,
.furoku-product-badges a.is-famima {
	background-color: #009944 !important;
	color: #ffffff !important;
	border-color: #009944 !important;
}
.furoku-product-badges a[class*="bg-[#F58220]"],
.furoku-product-badges a.badge-seven,
.furoku-product-badges a.is-seven {
	background-color: #f58220 !important;
	color: #ffffff !important;
	border-color: #f58220 !important;
}


/* ==========================================================================
   共通チェックボックス（SVG利用の丸形状 & クリック後装飾除去）
   ========================================================================== */
input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1rem !important;
	height: 1rem !important;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	border-radius: 9999px !important; /* 丸形状 */
	cursor: pointer;
	margin: 0;
	padding: 0 !important;
	vertical-align: middle;
	outline: none !important;
	box-shadow: none !important;
	transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
input[type="checkbox"]:hover {
	border-color: var(--furoku-primary);
}
input[type="checkbox"]:focus,
input[type="checkbox"]:focus-visible,
input[type="checkbox"]:active {
	outline: none !important;
	box-shadow: none !important;
}
input[type="checkbox"]:checked {
	border-color: transparent !important;
	background-color: var(--furoku-primary) !important;
	background-size: 100% 100% !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='%230f172a' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e") !important;
}
input[type="checkbox"]:checked:hover,
input[type="checkbox"]:checked:focus {
	border-color: transparent !important;
	background-color: var(--furoku-primary) !important;
}
.dark input[type="checkbox"] {
	border-color: var(--furoku-border);
	background-color: var(--furoku-surface-container);
}
.dark input[type="checkbox"]:checked {
	border-color: transparent !important;
	background-color: var(--furoku-primary) !important;
	background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='%230f172a' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e") !important;
}

/* ==========================================================================
   カラー展開・同シリーズ商品 (furoku-variations)
   ========================================================================== */
.furoku-variations-section {
	margin-top: 1rem;
	padding-top: 0.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.furoku-variations-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.furoku-variations-title {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-secondary);
	display: flex;
	align-items: center;
	gap: 0.375rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0;
}
.furoku-variations-title .furoku-icon {
	color: var(--furoku-primary);
	width: 1rem;
	height: 1rem;
}
.furoku-variations-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 0.625rem;
}
@media (min-width: 640px) {
	.furoku-variations-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
.furoku-variation-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.625rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-bg);
	text-decoration: none;
	color: inherit;
	transition: all 0.2s ease;
}
.furoku-variation-card:hover {
	border-color: var(--furoku-primary);
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
	background-color: var(--furoku-surface);
}
.dark .furoku-variation-card {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}
.dark .furoku-variation-card:hover {
	background-color: var(--furoku-surface-container);
	border-color: var(--furoku-primary);
}
.furoku-variation-info {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	flex: 1;
}
.furoku-variation-thumb {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	flex-shrink: 0;
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface-container);
}
.furoku-variation-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.2s ease;
}
.furoku-variation-card:hover .furoku-variation-thumb img {
	transform: scale(1.05);
}
.furoku-variation-text {
	min-width: 0;
	flex: 1;
}
.furoku-variation-item-title {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	line-height: 1.3;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.2s ease;
}
.furoku-variation-card:hover .furoku-variation-item-title {
	color: var(--furoku-primary);
}
.furoku-variation-price {
	font-size: 0.6875rem;
	color: var(--furoku-text-muted);
	font-weight: 600;
	margin: 0.125rem 0 0;
}
.furoku-variation-arrow {
	color: var(--furoku-text-subtle);
	font-size: 1.125rem;
	margin-left: 0.25rem;
	flex-shrink: 0;
	transition: color 0.2s ease, transform 0.2s ease;
}
.furoku-variation-card:hover .furoku-variation-arrow {
	color: var(--furoku-primary);
	transform: translateX(2px);
}

/* ==========================================================================
   編集部の先取り解説ブロック (furoku-editorial)
   ========================================================================== */
.furoku-editorial-section {
	background-color: var(--furoku-bg);
	border-radius: var(--furoku-radius-2xl);
	padding: 1rem;
	border: 1px solid rgba(230, 179, 25, 0.4);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	position: relative;
	overflow: hidden;
}
@media (min-width: 640px) {
	.furoku-editorial-section {
		padding: 1.5rem;
	}
}
.dark .furoku-editorial-section {
	background-color: var(--furoku-surface);
	border-color: rgba(230, 179, 25, 0.25);
}
.furoku-editorial-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}
.furoku-editorial-bar {
	width: 0.375rem;
	height: 1.5rem;
	background-color: var(--furoku-primary);
	border-radius: var(--furoku-radius-full);
	flex-shrink: 0;
}
.furoku-editorial-heading {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	letter-spacing: -0.025em;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-editorial-heading {
		font-size: 1.25rem;
	}
}
.furoku-editorial-subheading {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0.25rem 0 0;
}
.furoku-editorial-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.furoku-editorial-card {
	padding: 1.25rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.dark .furoku-editorial-card {
	background-color: var(--furoku-surface-container);
	border-color: var(--furoku-border);
}
.furoku-editorial-author {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.furoku-editorial-author-meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-editorial-avatar {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--furoku-radius-full);
	overflow: hidden;
	flex-shrink: 0;
	border: 1px solid var(--furoku-border);
}
.furoku-editorial-avatar.is-rose {
	border-color: #fecdd3;
}
.dark .furoku-editorial-avatar.is-rose {
	border-color: #9f1239;
}
.furoku-editorial-avatar.is-sky {
	border-color: #bae6fd;
}
.dark .furoku-editorial-avatar.is-sky {
	border-color: #075985;
}
.furoku-editorial-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.furoku-editorial-name-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.furoku-editorial-name {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0 0.2rem;
}
.furoku-editorial-badge {
	padding: 0.125rem 0.5rem;
	font-size: 0.625rem;
	font-weight: 700;
	border-radius: var(--furoku-radius-full);
}
.furoku-editorial-badge.is-rose {
	background-color: #ffe4e6;
	color: #be123c;
}
.dark .furoku-editorial-badge.is-rose {
	background-color: rgba(159, 18, 57, 0.4);
	color: #fda4af;
}
.furoku-editorial-badge.is-sky {
	background-color: #e0f2fe;
	color: #0369a1;
}
.dark .furoku-editorial-badge.is-sky {
	background-color: rgba(7, 89, 133, 0.4);
	color: #7dd3fc;
}
.furoku-editorial-role {
	font-size: 0.6875rem;
	color: var(--furoku-text-subtle);
	margin: 0.125rem 0 0;
}
.furoku-editorial-body {
	font-size: 0.875rem;
	color: var(--furoku-text-secondary);
	line-height: 1.7;
	font-weight: 400;
}
@media (min-width: 640px) {
	.furoku-editorial-body {
		font-size: 1rem;
	}
}
.dark .furoku-editorial-body {
	color: var(--furoku-text-secondary);
}

/* 続きを読むボタン（共通・ダークモード対応） */
.furoku-readmore-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-primary);
	padding: 0.25rem 0.75rem;
	border-radius: var(--furoku-radius-full);
	border: 1px solid rgba(230, 179, 25, 0.4);
	background-color: var(--furoku-bg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	cursor: pointer;
	transition: all 0.2s ease;
}
.furoku-readmore-btn:hover {
	color: #b45309;
	border-color: var(--furoku-primary);
	background-color: var(--furoku-surface);
}
.dark .furoku-readmore-btn {
	color: var(--furoku-primary);
	border-color: rgba(230, 179, 25, 0.35);
	background-color: var(--furoku-surface-container);
}
.dark .furoku-readmore-btn:hover {
	color: #fbbf24;
	background-color: var(--furoku-surface-container-high);
}
.furoku-readmore-btn .material-symbols-outlined {
	font-size: 0.875rem;
	transition: transform 0.2s ease;
}
.furoku-readmore-btn .furoku-icon {
	width: 0.875rem;
	height: 0.875rem;
	transition: transform 0.2s ease;
}

/* ==========================================================================
   検索ページ・一覧ページネーション (センタリング・縦位置整列)
   ========================================================================== */
.furoku-pagination {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	margin: 3rem auto 0 !important;
	padding: 0 0.5rem !important;
	gap: 0.375rem !important;
	box-sizing: border-box !important;
}
.furoku-pagination .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	vertical-align: middle !important;
	width: 2rem !important;
	height: 2rem !important;
	min-width: 2rem !important;
	padding: 0 !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	border: 1px solid var(--furoku-border) !important;
	border-radius: var(--furoku-radius-md) !important;
	text-decoration: none !important;
	color: var(--furoku-text-main) !important;
	background-color: var(--furoku-surface) !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
	margin: 0 !important;
}
@media (min-width: 640px) {
	.furoku-pagination {
		gap: 0.5rem !important;
	}
	.furoku-pagination .page-numbers {
		width: 2.5rem !important;
		height: 2.5rem !important;
		min-width: 2.5rem !important;
		font-size: 0.875rem !important;
	}
}
.furoku-pagination .page-numbers .material-symbols-outlined {
	font-size: 1.25rem !important;
	line-height: 1 !important;
	display: inline-block !important;
	vertical-align: middle !important;
}
.furoku-pagination .page-numbers:hover {
	background-color: rgba(230, 179, 25, 0.12) !important;
	border-color: var(--furoku-primary) !important;
	color: var(--furoku-primary) !important;
}
.furoku-pagination .page-numbers.current {
	background-color: var(--furoku-primary) !important;
	color: #0f172a !important;
	border-color: var(--furoku-primary) !important;
	font-weight: 700 !important;
}
.furoku-pagination .page-numbers.dots {
	border: none !important;
	background: transparent !important;
	width: auto !important;
	min-width: 1.25rem !important;
	padding: 0 0.25rem !important;
	color: var(--furoku-text-subtle) !important;
}
.dark .furoku-pagination .page-numbers {
	border-color: var(--furoku-border) !important;
	color: var(--furoku-text-secondary) !important;
	background-color: var(--furoku-surface-container) !important;
}
.dark .furoku-pagination .page-numbers:hover {
	background-color: rgba(230, 179, 25, 0.18) !important;
	border-color: var(--furoku-primary) !important;
	color: var(--furoku-primary) !important;
}
.dark .furoku-pagination .page-numbers.current {
	background-color: var(--furoku-primary) !important;
	color: #0f172a !important;
	border-color: var(--furoku-primary) !important;
}

/* ==========================================================================
   検索ページ 画像のみビュー (Continuous Flow & Rounded Corners)
   ========================================================================== */
.wall-container {
	display: flex !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	gap: 0 !important;
}
.wall-container .product-group {
	display: contents !important;
}
.square-tile {
	aspect-ratio: 1 / 1 !important;
	width: 19% !important;
	object-fit: cover !important;
	display: block !important;
	margin-bottom: 12px !important;
	overflow: hidden !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}
.square-tile img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
@media (min-width: 1024px) {
	.square-tile {
		width: calc(16.66% - 12px) !important;
	}
}
@media (max-width: 768px) {
	.square-tile {
		width: calc(25% - 12px) !important;
	}
}
@media (max-width: 480px) {
	.square-tile {
		width: 32% !important;
	}
}
/* 商品ごとの端の画像のラウンド */
.product-group > .img-item:first-child,
.product-group > .img-item:first-child img {
	border-top-left-radius: 0.75rem !important;
	border-bottom-left-radius: 0.75rem !important;
}
.product-group > .img-item:last-child,
.product-group > .img-item:last-child img {
	border-top-right-radius: 0.75rem !important;
	border-bottom-right-radius: 0.75rem !important;
	margin-right: 10px !important;
}
.product-group > .img-item:first-child:last-child,
.product-group > .img-item:first-child:last-child img {
	border-radius: 0.75rem !important;
	margin-right: 10px !important;
}

/* ==========================================================================
   Home Page Hero Section (Top Page Text Fixes)
   ========================================================================== */
.furoku-hero-heading {
	font-size: 1.5rem !important;
	line-height: 2rem !important;
	font-weight: 900 !important;
	color: #0f172a !important;
	margin-bottom: 0.5rem !important;
}
.dark .furoku-hero-heading {
	color: #f4f4f5 !important;
}
@media (min-width: 640px) {
	.furoku-hero-heading {
		font-size: 1.875rem !important;
		line-height: 2.25rem !important;
	}
}
@media (min-width: 768px) {
	.furoku-hero-heading {
		font-size: 2.25rem !important;
		line-height: 2.5rem !important;
	}
}
.furoku-hero-heading .furoku-hero-highlight,
.furoku-hero-heading .text-primary {
	color: var(--furoku-primary) !important;
	margin-left: 0.25rem !important;
	margin-right: 0.25rem !important;
}

/* ==========================================================================
   Static Pages (Terms, Privacy, Contact, About, etc.)
   ========================================================================== */
.furoku-page-container {
	width: 100%;
	flex: 1;
	position: relative;
}
.furoku-page-wrap {
	max-width: 1000px;
	margin: 0 auto;
	width: 100%;
	padding: 2rem 1rem;
}
@media (min-width: 768px) {
	.furoku-page-wrap {
		padding: 3rem 2rem;
	}
}
.furoku-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--furoku-text-muted);
	margin-bottom: 1.5rem;
}
.furoku-breadcrumbs a {
	color: var(--furoku-text-muted);
	text-decoration: none;
	transition: color 0.2s;
}
.furoku-breadcrumbs a:hover {
	color: var(--furoku-primary);
}
.furoku-breadcrumbs .material-symbols-outlined {
	font-size: 14px;
}

.furoku-page-header {
	margin-bottom: 2.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(230, 179, 25, 0.2);
}
.furoku-page-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.25rem 0.75rem;
	background-color: rgba(230, 179, 25, 0.1);
	color: var(--furoku-primary);
	font-size: 0.75rem;
	font-weight: 700;
	border-radius: var(--furoku-radius-md);
	margin-bottom: 0.75rem;
}
.furoku-page-badge .material-symbols-outlined {
	font-size: 0.875rem;
}
.furoku-page-title {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0 0 0.5rem 0;
	line-height: 1.2;
}
@media (min-width: 640px) {
	.furoku-page-title {
		font-size: 1.25rem;
	}
}
@media (min-width: 768px) {
	.furoku-page-title {
		font-size: 1.25rem;
	}
}
.furoku-page-date {
	font-size: 0.75rem;
	color: var(--furoku-text-subtle);
	margin-top: 0.5rem;
}

.furoku-page-content {
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--furoku-text-secondary);
}
.furoku-page-content a {
	text-decoration: underline;
	text-underline-offset: 3px;
	color: inherit;
	transition: color 0.2s;
}
.furoku-page-content a:hover {
	color: var(--furoku-primary);
}
@media (min-width: 640px) {
	.furoku-page-content {
		font-size: 1rem;
	}
}
.furoku-page-intro {
	margin-bottom: 1.25rem;
	font-weight: 500;
	color: var(--furoku-text-main);
}
.furoku-page-intro-sub {
	font-size: 0.875rem;
	color: var(--furoku-text-secondary);
	margin-top: 0;
}

.furoku-page-section {
	margin-bottom: 2rem;
	padding: 1.25rem;
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-xl);
}
.dark .furoku-page-section {
	background-color: rgba(255, 255, 255, 0.03);
	border-color: var(--furoku-border);
}
.furoku-page-section-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0 0 1rem 0;
}
@media (min-width: 640px) {
	.furoku-page-section-title {
		font-size: 1.25rem;
	}
}
.furoku-page-section-title::before {
	content: '';
	width: 6px;
	height: 20px;
	background-color: var(--furoku-primary);
	border-radius: 9999px;
	display: inline-block;
}
.furoku-page-section-title.is-danger {
	color: #be123c;
}
.dark .furoku-page-section-title.is-danger {
	color: #fb7185;
}
.furoku-page-section-title.is-danger::before {
	background-color: #ef4444;
}

.furoku-terms-prohibited-box {
	margin-bottom: 2rem;
	padding: 1.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: rgba(255, 241, 242, 0.4);
	border: 1px solid rgba(254, 205, 211, 0.6);
}
.dark .furoku-terms-prohibited-box {
	background-color: rgba(76, 5, 25, 0.2);
	border-color: rgba(136, 19, 55, 0.4);
}

.furoku-page-emphasis {
	font-weight: 600;
	color: var(--furoku-text-main);
	margin: 0;
}

.furoku-page-content ol,
.furoku-page-content ul {
	padding-left: 1.25rem;
	margin: 0 0 1.25rem 0;
}
.furoku-page-list-decimal {
	list-style-type: decimal;
}
.furoku-page-list-disc {
	list-style-type: disc;
}
.furoku-page-content li {
	margin-bottom: 0.5rem;
}
.furoku-page-content li:last-child {
	margin-bottom: 0;
}

.furoku-page-section-body {
	font-size: 0.875rem;
}
.furoku-page-section-body p {
	margin-bottom: 0.75rem;
}
.furoku-page-section-body p:last-child {
	margin-bottom: 0;
}

.furoku-page-subcard {
	padding: 1.25rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border-subtle);
	background-color: var(--furoku-surface-container-lowest);
	margin-bottom: 1rem;
}
.dark .furoku-page-subcard {
	background-color: rgba(255, 255, 255, 0.02);
}
.furoku-page-subcard:last-child {
	margin-bottom: 0;
}
.furoku-page-subcard-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.75rem 0;
}
.furoku-page-subcard-title .material-symbols-outlined {
	color: var(--furoku-primary);
	font-size: 1.25rem;
}
.furoku-page-note {
	padding: 0.75rem 1rem;
	border-radius: var(--furoku-radius-lg);
	background-color: rgba(230, 179, 25, 0.08);
	border: 1px solid rgba(230, 179, 25, 0.2);
	font-size: 0.75rem;
	line-height: 1.6;
	color: var(--furoku-text-main);
	margin: 0.75rem 0;
}
.furoku-page-note-secondary {
	padding: 0.875rem 1rem;
	border-radius: var(--furoku-radius-lg);
	background-color: var(--furoku-surface-container-high);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--furoku-text-main);
	margin: 1rem 0;
}
.dark .furoku-page-note-secondary {
	background-color: rgba(255, 255, 255, 0.05);
}
.furoku-page-footer-date {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--furoku-border-subtle);
	font-size: 0.75rem;
	color: var(--furoku-text-subtle);
}

/* お問い合わせフォームラッパー */
.furoku-contact-form-wrap {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--furoku-border);
}
.furoku-contact-form-title {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 0.5rem 0;
}
@media (min-width: 640px) {
	.furoku-contact-form-title {
		font-size: 1.25rem;
	}
}
.furoku-contact-form-title::before {
	content: '';
	width: 8px;
	height: 24px;
	background-color: var(--furoku-primary);
	border-radius: 9999px;
	display: inline-block;
	flex-shrink: 0;
}

/* お問い合わせフォーム内部スタイル */
.furoku-contact-box,
#furoku-contact-container {
	margin-top: 1rem;
	padding: 1.25rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);
	transition: all 0.2s;
}
@media (min-width: 640px) {
	.furoku-contact-box,
	#furoku-contact-container {
		padding: 2rem;
	}
}
.dark .furoku-contact-box,
.dark #furoku-contact-container {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}

.furoku-contact-success {
	text-align: center;
	padding: 2rem 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}
.furoku-contact-success.hidden {
	display: none;
}
.furoku-contact-success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 9999px;
	background-color: #d1fae5;
	color: #059669;
}
.dark .furoku-contact-success-icon {
	background-color: rgba(6, 78, 59, 0.6);
	color: #34d399;
}
.furoku-contact-success-icon .material-symbols-outlined {
	font-size: 2rem;
}
.furoku-contact-success-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
}
.furoku-contact-success-desc {
	font-size: 0.875rem;
	color: var(--furoku-text-muted);
	max-width: 28rem;
	margin: 0 auto;
	line-height: 1.7;
}

.furoku-contact-form {
	margin: 0;
}
.furoku-contact-form.hidden {
	display: none;
}
.furoku-contact-error {
	margin-bottom: 1rem;
	padding: 1rem;
	border-radius: var(--furoku-radius-xl);
	background-color: #fff1f2;
	border: 1px solid #fecdd3;
	color: #be123c;
	font-size: 0.875rem;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}
.dark .furoku-contact-error {
	background-color: rgba(76, 5, 25, 0.4);
	border-color: rgba(159, 18, 57, 0.5);
	color: #fda4af;
}
.furoku-contact-error.hidden {
	display: none;
}

.furoku-form-fields {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.furoku-form-user {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-form-user-avatar {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 9999px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.furoku-form-user-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 9999px;
}
.furoku-form-user-name {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	display: block;
}

.furoku-form-group {
	display: flex;
	flex-direction: column;
}
.furoku-form-label {
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin-bottom: 0.25rem;
}
.furoku-form-label .text-rose-500,
.furoku-form-req {
	color: #f43f5e;
	margin-left: 0.125rem;
}
.furoku-form-desc {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin-bottom: 0.5rem;
}
.furoku-form-input,
.furoku-form-textarea,
#furoku-contact-email,
#furoku-contact-message {
	width: 100%;
	padding: 0.75rem 1rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	color: var(--furoku-text-main);
	font-size: 0.875rem;
	outline: none;
	transition: all 0.2s;
	font-family: inherit;
}
.dark .furoku-form-input,
.dark .furoku-form-textarea,
.dark #furoku-contact-email,
.dark #furoku-contact-message {
	background-color: rgba(255, 255, 255, 0.05);
	border-color: var(--furoku-border);
}
.furoku-form-input:focus,
.furoku-form-textarea:focus,
#furoku-contact-email:focus,
#furoku-contact-message:focus {
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 2px var(--furoku-primary);
}
.furoku-form-actions {
	padding-top: 0.5rem;
}
.furoku-form-submit-btn,
#furoku-contact-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 2rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 700;
	font-size: 0.875rem;
	border: none;
	cursor: pointer;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	transition: all 0.2s;
	min-width: 200px;
	width: 100%;
}
@media (min-width: 640px) {
	.furoku-form-submit-btn,
	#furoku-contact-submit {
		width: auto;
	}
}
.furoku-form-submit-btn:hover,
#furoku-contact-submit:hover {
	filter: brightness(1.05);
}
.furoku-form-submit-btn:active,
#furoku-contact-submit:active {
	transform: scale(0.99);
}
.furoku-form-submit-btn:disabled,
#furoku-contact-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ==========================================================================
   はじめての方へ (About Guide Page)
   ========================================================================== */
.furoku-about-container,
#furoku-about-container {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

/* 導入・ウェルカムカード */
.furoku-about-hero,
#furoku-about-container > section:first-child {
	padding: 1.25rem;
	border-radius: var(--furoku-radius-2xl);
	background: linear-gradient(135deg, rgba(230, 179, 25, 0.12) 0%, rgba(245, 158, 11, 0.05) 50%, transparent 100%);
	border: 1px solid rgba(230, 179, 25, 0.25);
}
@media (min-width: 640px) {
	.furoku-about-hero,
	#furoku-about-container > section:first-child {
		padding: 2rem;
	}
}
.dark .furoku-about-hero,
.dark #furoku-about-container > section:first-child {
	background: linear-gradient(135deg, rgba(230, 179, 25, 0.18) 0%, rgba(39, 39, 42, 0.5) 50%, rgba(24, 24, 27, 0.8) 100%);
	border-color: rgba(230, 179, 25, 0.25);
}
.furoku-about-hero h2,
#furoku-about-container > section:first-child h2 {
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	letter-spacing: -0.025em;
	margin: 0 0 1rem 0;
	line-height: 1.3;
}
@media (min-width: 640px) {
	.furoku-about-hero h2,
	#furoku-about-container > section:first-child h2 {
		font-size: 1.25rem;
	}
}
@media (min-width: 768px) {
	.furoku-about-hero h2,
	#furoku-about-container > section:first-child h2 {
		font-size: 1.875rem;
	}
}
.furoku-about-hero p,
#furoku-about-container > section:first-child p {
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--furoku-text-secondary);
	margin: 0;
	font-weight: 500;
}
@media (min-width: 640px) {
	.furoku-about-hero p,
	#furoku-about-container > section:first-child p {
		font-size: 1rem;
	}
}

/* セクション見出し (3つの特徴、主な使い方、FAQ) */
.furoku-about-section-header {
	margin-bottom: 1.25rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.furoku-about-header-bar {
	width: 6px;
	height: 24px;
	background-color: var(--furoku-primary);
	border-radius: 9999px;
	display: inline-block;
	flex-shrink: 0;
}
.furoku-about-section-header h2 {
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-about-section-header h2 {
		font-size: 1.25rem;
	}
}
@media (min-width: 768px) {
	.furoku-about-section-header h2 {
		font-size: 1.25rem;
	}
}

/* 3つの特徴グリッド */
.furoku-features-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 768px) {
	.furoku-features-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.furoku-feature-card {
	padding: 1.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
}
.dark .furoku-feature-card {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}
.furoku-feature-icon {
	width: 3rem;
	height: 3rem;
	border-radius: var(--furoku-radius-xl);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
	flex-shrink: 0;
}
.furoku-feature-icon.is-amber {
	background-color: #fef3c7;
	color: #b45309;
}
.dark .furoku-feature-icon.is-amber {
	background-color: rgba(69, 26, 3, 0.6);
	color: var(--furoku-primary);
}
.furoku-feature-icon.is-blue {
	background-color: #dbeafe;
	color: #1d4ed8;
}
.dark .furoku-feature-icon.is-blue {
	background-color: rgba(23, 37, 84, 0.6);
	color: #60a5fa;
}
.furoku-feature-icon.is-emerald {
	background-color: #d1fae5;
	color: #047857;
}
.dark .furoku-feature-icon.is-emerald {
	background-color: rgba(2, 44, 34, 0.6);
	color: #34d399;
}
.furoku-feature-card h3 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0 0 0.5rem 0;
}
.furoku-feature-card p {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--furoku-text-muted);
	margin: 0;
	flex: 1;
}
@media (min-width: 640px) {
	.furoku-feature-card p {
		font-size: 0.875rem;
	}
}

/* 主な使い方 (STEP 1〜3) */
.furoku-steps-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.furoku-step-card {
	padding: 1.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	align-items: flex-start;
	justify-content: space-between;
}
@media (min-width: 640px) {
	.furoku-step-card {
		flex-direction: row;
		align-items: center;
	}
}
.dark .furoku-step-card {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}
.furoku-step-info {
	max-width: 42rem;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.furoku-step-badge {
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.05em;
	color: var(--furoku-primary);
	text-transform: uppercase;
	display: inline-block;
}
.furoku-step-card h3 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-step-card h3 {
		font-size: 1.125rem;
	}
}
.furoku-step-card p {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--furoku-text-muted);
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-step-card p {
		font-size: 0.875rem;
	}
}
.furoku-step-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-surface);
	color: var(--furoku-text-main);
	font-size: 0.75rem;
	font-weight: 700;
	text-decoration: none !important;
	transition: all 0.2s;
	flex-shrink: 0;
	border: 1px solid var(--furoku-border);
}
.dark .furoku-step-link {
	background-color: rgba(255, 255, 255, 0.05);
	color: var(--furoku-text-main);
}
.furoku-step-link:hover {
	background-color: var(--furoku-primary) !important;
	color: #0f172a !important;
	border-color: var(--furoku-primary) !important;
}
.furoku-step-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-size: 0.75rem;
	font-weight: 700;
	border: none;
	cursor: pointer;
	transition: all 0.2s;
	flex-shrink: 0;
}
.furoku-step-btn:hover {
	filter: brightness(1.05);
}
.furoku-step-btn:active {
	transform: scale(0.95);
}
.furoku-step-badge-logged {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 1rem;
	border-radius: var(--furoku-radius-xl);
	background-color: #ecfdf5;
	color: #059669;
	font-size: 0.75rem;
	font-weight: 700;
	flex-shrink: 0;
}
.dark .furoku-step-badge-logged {
	background-color: rgba(6, 78, 59, 0.4);
	color: #34d399;
}

/* FAQ (よくあるご質問) */
.furoku-faqs-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.furoku-faq-card {
	padding: 1.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.dark .furoku-faq-card {
	background-color: rgba(255, 255, 255, 0.03);
	border-color: var(--furoku-border);
}
.furoku-faq-card h3 {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	margin: 0;
}
@media (min-width: 640px) {
	.furoku-faq-card h3 {
		font-size: 1rem;
	}
}
.furoku-faq-card h3 span.text-primary {
	color: var(--furoku-primary);
	font-weight: 900;
	flex-shrink: 0;
}
.furoku-faq-card p {
	font-size: 0.75rem;
	line-height: 1.7;
	color: var(--furoku-text-secondary);
	margin: 0;
	padding-left: 1.5rem;
}
@media (min-width: 640px) {
	.furoku-faq-card p {
		font-size: 0.875rem;
	}
}

/* サポート・各種ご案内 */
.furoku-about-support {
	padding: 1.5rem;
	border-radius: var(--furoku-radius-2xl);
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
}
@media (min-width: 640px) {
	.furoku-about-support {
		padding: 2rem;
	}
}
.dark .furoku-about-support {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}
.furoku-about-support h2 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin: 0 0 0.5rem 0;
}
@media (min-width: 640px) {
	.furoku-about-support h2 {
		font-size: 1.125rem;
	}
}
.furoku-about-support p {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0 0 1.5rem 0;
}
@media (min-width: 640px) {
	.furoku-about-support p {
		font-size: 0.875rem;
	}
}
.furoku-about-links {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
}
@media (min-width: 640px) {
	.furoku-about-links {
		grid-template-columns: repeat(4, 1fr);
	}
}
.furoku-about-link-card {
	padding: 0.875rem 0.75rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	text-align: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	text-decoration: none !important;
	transition: all 0.2s;
}
.dark .furoku-about-link-card {
	background-color: rgba(255, 255, 255, 0.05);
	border-color: var(--furoku-border);
}
.furoku-about-link-card .material-symbols-outlined {
	font-size: 1.25rem;
	color: var(--furoku-primary);
}
.furoku-about-link-card:hover {
	background-color: rgba(230, 179, 25, 0.1);
	color: var(--furoku-primary) !important;
	border-color: rgba(230, 179, 25, 0.4);
}

/* ==========================================================================
   上へ戻るボタン (Back to top) - 共通アニメーション/アイコン補助
   ========================================================================== */
.furoku-back-to-top .furoku-icon {
	width: 1.75rem;
	height: 1.75rem;
	fill: currentColor;
	transition: transform 0.2s ease;
}
.furoku-back-to-top:hover .furoku-icon {
	transform: translateY(-2px);
}

/* ==========================================================================
   商品詳細：価格税込・付録名・予告・バリエーション
   ========================================================================== */
.furoku-price-tax {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
}
.furoku-product-furoku-title {
  border-top: solid 1px var(--furoku-primary);
	display: block;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	margin-top: 0.375rem;
  padding-top: 0.5rem;
}
@media (min-width: 640px) {
	.furoku-product-furoku-title {
		font-size: 1.25rem;
	}
}
.furoku-product-meta-notice {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin: 0.25rem 0 0 0;
}
.furoku-variations-count {
	font-size: 11px;
	color: var(--furoku-text-subtle);
	font-weight: 500;
}

/* ==========================================================================
   商品詳細：関連ニュースカード (Related News Cards)
   ========================================================================== */
.product-related-news-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	width: 100%;
}
.furoku-related-news-card {
	display: flex;
	gap: 0.875rem;
	padding: 0.875rem 1rem;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	align-items: center;
	text-decoration: none !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: all 0.2s ease;
}
.dark .furoku-related-news-card {
	background-color: rgba(255, 255, 255, 0.04);
	border-color: var(--furoku-border);
}
.furoku-related-news-card:hover {
	border-color: var(--furoku-primary);
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08);
	transform: translateY(-1px);
}
.furoku-related-news-thumb-box {
	width: 5rem;
	height: 5rem;
	border-radius: var(--furoku-radius-lg);
	overflow: hidden;
	flex-shrink: 0;
	background-color: var(--furoku-surface-container);
	border: 1px solid var(--furoku-border);
	position: relative;
}
@media (min-width: 640px) {
	.furoku-related-news-thumb-box {
		width: 6rem;
		height: 6rem;
	}
}
.furoku-related-news-thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.furoku-related-news-card:hover .furoku-related-news-thumb-img {
	transform: scale(1.05);
}
.furoku-related-news-body {
	min-width: 0;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 0.125rem 0;
}
.furoku-related-news-meta-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.375rem;
}
.furoku-related-news-badge {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	border-radius: var(--furoku-radius-sm);
	font-size: 10px;
	font-weight: 700;
	background-color: rgba(230, 179, 25, 0.15);
	color: var(--furoku-primary);
	border: 1px solid rgba(230, 179, 25, 0.3);
	line-height: 1.3;
}
.furoku-related-news-date {
	font-size: 11px;
	color: var(--furoku-text-muted);
	font-weight: 500;
}
.furoku-related-news-title {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	line-height: 1.4;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color 0.2s ease;
}
@media (min-width: 640px) {
	.furoku-related-news-title {
		font-size: 0.875rem;
	}
}
.furoku-related-news-card:hover .furoku-related-news-title {
	color: var(--furoku-primary);
}
.furoku-related-news-cta {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 11px;
	font-weight: 700;
	color: var(--furoku-primary);
	margin-top: 0.5rem;
	transition: transform 0.2s ease;
}
.furoku-related-news-cta .material-symbols-outlined {
	font-size: 0.75rem;
}
.furoku-related-news-card:hover .furoku-related-news-cta {
	transform: translateX(2px);
}

/* ==========================================================================
   ニュース詳細テンプレート (News Detail Page)
   ========================================================================== */
.furoku-news-container {
	width: 100%;
	flex: 1;
	position: relative;
}
.furoku-news-wrap {
	max-width: 1600px;
	margin: 0 auto;
	width: 100%;
	padding: 1.5rem 1rem;
	box-sizing: border-box;
}
@media (min-width: 768px) {
	.furoku-news-wrap {
		padding: 1.5rem 2.5rem;
	}
}
.furoku-news-layout {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.furoku-news-layout {
		display: grid;
		grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
		gap: 3rem;
		align-items: flex-start;
	}
}
.furoku-news-title-section {
	margin-bottom: 2rem;
}
.furoku-news-badge {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	background-color: var(--furoku-primary-light);
	color: var(--furoku-primary);
	font-size: 0.75rem;
	font-weight: 700;
	border-radius: var(--furoku-radius-sm);
	margin-bottom: 1rem;
	border: 1px solid rgba(230, 179, 25, 0.25);
}
.furoku-news-title {
	font-size: 1.5rem;
	font-weight: 900;
	line-height: 1.3;
	color: var(--furoku-text-main);
	margin: 0 0 1.5rem 0;
	letter-spacing: -0.025em;
}
@media (min-width: 768px) {
	.furoku-news-title {
		font-size: 2.25rem;
	}
}
.furoku-news-meta {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--furoku-border);
	padding-bottom: 1rem;
	gap: 1rem;
}
@media (min-width: 768px) {
	.furoku-news-meta {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}
.furoku-news-meta-left {
	font-size: 0.875rem;
	color: var(--furoku-text-muted);
	font-weight: 500;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.furoku-news-meta-item {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}
.furoku-news-meta-item .material-symbols-outlined {
	font-size: 0.875rem;
}
.furoku-news-meta-item.is-editor {
	font-size: 0.75rem;
}
.furoku-news-meta-item.is-editor .material-symbols-outlined {
	color: var(--furoku-primary);
}
.furoku-news-meta-sep {
	color: var(--furoku-text-subtle);
	display: none;
}
@media (min-width: 640px) {
	.furoku-news-meta-sep {
		display: inline;
	}
}

.furoku-news-content {
	line-height: 1.8;
	color: var(--furoku-text-main);
	margin-top: 1.5rem;
}
.furoku-news-content p {
	margin-bottom: 1.5rem;
}
.furoku-news-content img {
	border-radius: var(--furoku-radius-xl);
	margin: 2rem 0;
	width: 100%;
}
.furoku-news-tags-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--furoku-border);
}
.furoku-news-tags-label {
	font-size: 0.75rem;
	font-weight: 900;
	color: var(--furoku-text-muted);
	letter-spacing: 0.05em;
}
.furoku-news-tags-wrap a {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 500;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	color: var(--furoku-primary);
	text-decoration: none !important;
	transition: all 0.2s ease;
}
.furoku-news-tags-wrap a:hover {
	background-color: var(--furoku-primary-light);
}

.furoku-news-credit {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 2rem;
	padding: 1rem 1.25rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	font-size: 0.8125rem;
	color: var(--furoku-text-muted);
}
.dark .furoku-news-credit {
	background-color: rgba(255, 255, 255, 0.03);
	border-color: var(--furoku-border);
}
.furoku-news-credit-left {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.furoku-news-credit-icon {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: var(--furoku-radius-sm);
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-weight: 900;
	font-size: 0.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.furoku-news-share-section {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--furoku-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}
.furoku-news-share-title {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-text-muted);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.furoku-news-share-buttons {
	display: flex;
	gap: 0.75rem;
}
.furoku-news-share-btn {
	width: 3rem;
	height: 3rem;
	border-radius: 9999px;
	border: 1px solid var(--furoku-border);
	background-color: var(--furoku-surface);
	color: var(--furoku-text-main);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
}
.dark .furoku-news-share-btn {
	background-color: rgba(255, 255, 255, 0.05);
	border-color: var(--furoku-border);
}
.furoku-news-share-btn svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
	transition: color 0.2s ease;
}
.furoku-news-share-btn:hover {
	border-color: var(--furoku-primary);
	background-color: var(--furoku-primary-light);
	color: var(--furoku-primary);
}
.furoku-news-line-icon {
	width: 1.25rem;
	height: 1.25rem;
	background-color: #334155;
	border-radius: 0.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	color: #ffffff;
	font-weight: 900;
	font-style: italic;
	transition: background-color 0.2s ease;
}
.furoku-news-share-btn:hover .furoku-news-line-icon {
	background-color: var(--furoku-primary);
}

.furoku-news-comments-section {
	margin-top: 4rem;
	padding-top: 3rem;
	border-top: 1px solid var(--furoku-border);
}
.furoku-news-comments-title {
	font-size: 1.5rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin-bottom: 2rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.furoku-comment-list {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-bottom: 3rem;
}
.furoku-comment-author {
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--furoku-text-main);
}
.furoku-comment-date {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
	margin-bottom: 0.5rem;
}
.furoku-comment-body {
	color: var(--furoku-text-main);
	line-height: 1.7;
	font-size: 0.875rem;
	margin-bottom: 0.5rem;
}
.furoku-comment-reply {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--furoku-primary);
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}
.furoku-comment-reply:hover {
	text-decoration: underline !important;
}
.furoku-comments-form-wrap {
	background-color: var(--furoku-surface);
	padding: 1.5rem;
	border-radius: var(--furoku-radius-xl);
	margin-top: 2rem;
	border: 1px solid var(--furoku-border);
}
.dark .furoku-comments-form-wrap {
	background-color: rgba(255, 255, 255, 0.03);
	border-color: var(--furoku-border);
}

/* ニュースサイドバー */
.furoku-news-sidebar {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	position: sticky;
	top: 5rem;
	align-self: flex-start;
}
.furoku-news-sidebar-title {
	font-size: 0.875rem;
	font-weight: 900;
	margin: 0 0 1.5rem 0;
	border-bottom: 2px solid var(--furoku-text-main);
	color: var(--furoku-text-main);
	display: inline-block;
	padding-bottom: 0.25rem;
	letter-spacing: 0.05em;
}
.furoku-news-recommended-section {
	margin-top: 6rem;
	padding-top: 4rem;
	border-top: 1px solid var(--furoku-border);
}
.furoku-news-recommended-title {
	font-size: 1.25rem;
	font-weight: 900;
	margin: 0 0 2rem 0;
	border-bottom: 2px solid var(--furoku-text-main);
	color: var(--furoku-text-main);
	display: inline-block;
	padding-bottom: 0.25rem;
	letter-spacing: 0.05em;
}

/* ==========================================================================
   雑誌カタログ一覧 (Magazine Catalog Page / archive.html)
   ========================================================================== */
.furoku-catalog-main {
	max-width: 1600px;
	margin: 0 auto;
	width: 100%;
	padding: 2rem 1rem;
	box-sizing: border-box;
}
@media (min-width: 768px) {
	.furoku-catalog-main {
		padding: 2rem 2.5rem;
	}
}
.furoku-catalog-header-wrap {
	margin-bottom: 2rem;
}
.furoku-catalog-header-row {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
@media (min-width: 768px) {
	.furoku-catalog-header-row {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
	}
}
.furoku-catalog-title {
	font-size: 1.875rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	letter-spacing: -0.025em;
	margin: 0;
}
@media (min-width: 768px) {
	.furoku-catalog-title {
		font-size: 2.25rem;
	}
}
.furoku-catalog-desc {
	color: var(--furoku-text-muted);
	margin-top: 0.5rem;
	font-size: 0.875rem;
}
.furoku-catalog-controls {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}
.furoku-catalog-sort-box {
	position: relative;
}
.furoku-catalog-sort-select {
	appearance: none;
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-md);
	padding: 0.5rem 2rem 0.5rem 2.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	outline: none;
	cursor: pointer;
	color: var(--furoku-text-main);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.furoku-catalog-sort-select:focus {
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 2px var(--furoku-primary-light);
}
.furoku-catalog-sort-icon {
	position: absolute;
	left: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.875rem;
	pointer-events: none;
	color: var(--furoku-text-muted);
}
.furoku-catalog-filter-btn-mobile {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	background-color: var(--furoku-primary);
	padding: 0.5rem 1rem;
	border-radius: var(--furoku-radius-md);
	font-size: 0.875rem;
	font-weight: 700;
	color: #0f172a;
	border: none;
	cursor: pointer;
}
@media (min-width: 768px) {
	.furoku-catalog-filter-btn-mobile {
		display: none;
	}
}
.furoku-catalog-layout {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
@media (min-width: 1024px) {
	.furoku-catalog-layout {
		flex-direction: row;
	}
}
.furoku-catalog-sidebar {
	display: none;
	width: 18rem;
	flex-shrink: 0;
}
@media (min-width: 1024px) {
	.furoku-catalog-sidebar {
		display: block;
	}
}
.furoku-catalog-sidebar-inner {
	position: sticky;
	top: 6rem;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	height: calc(100vh - 8rem);
	overflow-y: auto;
	padding-right: 1rem;
}
.furoku-catalog-filter-title {
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--furoku-text-subtle);
	margin-bottom: 1rem;
}
.furoku-catalog-filter-options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.furoku-catalog-filter-option {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	cursor: pointer;
	font-size: 0.875rem;
	color: var(--furoku-text-secondary);
}
.furoku-catalog-checkbox {
	border-radius: var(--furoku-radius-sm);
	border: 1px solid var(--furoku-border);
	accent-color: var(--furoku-primary);
	width: 1rem;
	height: 1rem;
	cursor: pointer;
}
.furoku-catalog-grid-wrap {
	flex: 1;
}
.furoku-catalog-grid {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 1rem;
}
@media (min-width: 640px) {
	.furoku-catalog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (min-width: 768px) {
	.furoku-catalog-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (min-width: 1280px) {
	.furoku-catalog-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
.furoku-catalog-card {
	background-color: var(--furoku-surface);
	border-radius: var(--furoku-radius-md);
	overflow: hidden;
	border: 1px solid var(--furoku-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition: all 0.2s ease;
}
.dark .furoku-catalog-card {
	background-color: rgba(255, 255, 255, 0.03);
	border-color: var(--furoku-border);
}
.furoku-catalog-card:hover {
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
	border-color: var(--furoku-border-subtle);
}
.furoku-catalog-card-thumb-wrap {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: var(--furoku-surface-container);
}
.furoku-catalog-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.furoku-catalog-card:hover .furoku-catalog-card-img {
	transform: scale(1.05);
}
.furoku-catalog-card-badges {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.furoku-catalog-card-badge-furoku {
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-size: 9px;
	font-weight: 900;
	padding: 0.125rem 0.375rem;
	border-radius: var(--furoku-radius-sm);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
	text-transform: uppercase;
}
.furoku-catalog-card-badge-status {
	background-color: rgba(15, 23, 42, 0.8);
	color: #ffffff;
	font-size: 9px;
	font-weight: 700;
	padding: 0.125rem 0.375rem;
	border-radius: var(--furoku-radius-sm);
	backdrop-filter: blur(4px);
	text-transform: uppercase;
}
.furoku-catalog-card-fav-btn {
	position: absolute;
	bottom: 0.5rem;
	right: 0.5rem;
	width: 2rem;
	height: 2rem;
	border-radius: 9999px;
	background-color: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--furoku-primary);
	border: none;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	transform: translateY(3rem);
	transition: transform 0.2s ease, background-color 0.2s ease;
}
.dark .furoku-catalog-card-fav-btn {
	background-color: rgba(30, 41, 59, 0.9);
}
.furoku-catalog-card:hover .furoku-catalog-card-fav-btn {
	transform: translateY(0);
}
.furoku-catalog-card-fav-btn .material-symbols-outlined {
	font-size: 1.25rem;
}
.furoku-catalog-card-body {
	padding: 0.75rem;
}
.furoku-catalog-card-meta-top {
	margin-bottom: 0.25rem;
}
.furoku-catalog-card-publisher {
	font-size: 10px;
	font-weight: 700;
	color: var(--furoku-primary);
	text-transform: uppercase;
	letter-spacing: -0.025em;
	display: block;
}
.furoku-catalog-card-title {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-text-main);
	line-height: 1.3;
	margin: 0.125rem 0 0 0;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.furoku-catalog-card-info-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5rem;
}
.furoku-catalog-card-date {
	font-size: 0.75rem;
	color: var(--furoku-text-muted);
}
.furoku-catalog-card-price {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--furoku-primary);
}
.furoku-catalog-card-furoku-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid var(--furoku-border);
}
.furoku-catalog-card-furoku-icon {
	font-size: 0.75rem;
	color: var(--furoku-text-subtle);
	flex-shrink: 0;
}
.furoku-catalog-card-furoku-details {
	min-width: 0;
}
.furoku-catalog-card-furoku-name {
	font-size: 10px;
	font-weight: 500;
	color: var(--furoku-text-secondary);
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.furoku-catalog-card-furoku-size {
	font-size: 9px;
	color: var(--furoku-text-subtle);
	margin: 0;
}

/* ==========================================================================
   404 Page (Not Found)
   ========================================================================== */
.furoku-404-container {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.furoku-404-card {
	max-width: 680px;
	width: 100%;
	margin: 0 auto;
	padding: 3rem 1.5rem;
	text-align: center;
	background-color: #ffffff;
	border: 1px solid var(--furoku-border);
	border-radius: var(--furoku-radius-2xl);
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
}
@media (min-width: 640px) {
	.furoku-404-card {
		padding: 4rem 2.5rem;
	}
}
.dark .furoku-404-card {
	background-color: rgba(30, 41, 59, 0.4);
	border-color: var(--furoku-border);
}
.furoku-404-code {
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.05em;
	color: var(--furoku-primary);
	margin-bottom: 1rem;
}
@media (min-width: 640px) {
	.furoku-404-code {
		font-size: 6rem;
	}
}
.furoku-404-title {
	font-size: 1.375rem;
	font-weight: 800;
	color: var(--furoku-text-main);
	margin: 0 0 0.75rem 0;
	line-height: 1.3;
}
@media (min-width: 640px) {
	.furoku-404-title {
		font-size: 1.625rem;
	}
}
.furoku-404-desc {
	font-size: 0.875rem;
	color: var(--furoku-text-secondary);
	line-height: 1.7;
	margin: 0 auto 2rem auto;
	max-width: 500px;
}
@media (min-width: 640px) {
	.furoku-404-desc {
		font-size: 0.9375rem;
	}
}
.furoku-404-search {
	max-width: 460px;
	margin: 0 auto 2rem auto;
}
.furoku-404-search-box {
	display: flex;
	align-items: center;
	padding: 0.375rem 0.5rem 0.375rem 1rem;
	border-radius: var(--furoku-radius-full);
	background-color: var(--furoku-surface);
	border: 1px solid var(--furoku-border);
	transition: all 0.2s;
}
.dark .furoku-404-search-box {
	background-color: rgba(255, 255, 255, 0.05);
	border-color: var(--furoku-border);
}
.furoku-404-search-box:focus-within {
	border-color: var(--furoku-primary);
	box-shadow: 0 0 0 2px rgba(230, 179, 25, 0.25);
}
.furoku-404-search-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--furoku-text-muted);
	flex-shrink: 0;
	margin-right: 0.5rem;
}
.furoku-404-search-input {
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	background: transparent;
	font-size: 0.875rem;
	color: var(--furoku-text-main);
	padding: 0.5rem 0;
}
.furoku-404-search-btn {
	padding: 0.5rem 1.25rem;
	border-radius: var(--furoku-radius-full);
	background-color: var(--furoku-primary);
	color: #0f172a;
	font-size: 0.8125rem;
	font-weight: 700;
	border: none;
	cursor: pointer;
	transition: all 0.2s;
	flex-shrink: 0;
}
.furoku-404-search-btn:hover {
	background-color: var(--furoku-primary-hover);
}
.furoku-404-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}
.furoku-404-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-primary);
	color: #0f172a !important;
	font-weight: 700;
	font-size: 0.875rem;
	text-decoration: none !important;
	transition: all 0.2s;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.furoku-404-btn-primary:hover {
	background-color: var(--furoku-primary-hover);
	transform: translateY(-1px);
}
.furoku-404-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: var(--furoku-radius-xl);
	background-color: var(--furoku-surface);
	color: var(--furoku-text-main) !important;
	border: 1px solid var(--furoku-border);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none !important;
	transition: all 0.2s;
}
.dark .furoku-404-btn-secondary {
	background-color: rgba(255, 255, 255, 0.05);
	border-color: var(--furoku-border);
}
.furoku-404-btn-secondary:hover {
	border-color: var(--furoku-primary);
	color: var(--furoku-primary) !important;
}


/* Pressidium Cookie Consent */
#cc--main, .cc_div {
  font-size: 14px;
}
@media screen and (max-width: 688px) {
    .cc_div #c-bns {
        justify-content: space-between;
        flex-direction: row;
    }
    #c-bns button+button, #s-c-bn, #s-cnt button+button {
        float: right;
        margin-left: .5rem;
        margin-top: 0;
    }
}
/* バナー全体の初期状態とアニメーション設定 */
#cc--main .cc_div #cm {
  opacity: 0;
  transform: translateY(10px); /* 少し下から浮き上がるエフェクト */
  transition: opacity 0.6s ease, transform 0.6s ease !important;
}

/* バナーが表示された時の状態 */
#cc--main.c--anim .cc_div #cm {
  opacity: 1;
  transform: translateY(0);
}
/* ==========================================================================
   Footer Recent Products (PC / Responsive Pre-Footer Section)
   ========================================================================== */
.furoku-footer-recent-section {
	width: 100%;
	background-color: var(--furoku-bg);
	border-top: 1px solid var(--furoku-border-subtle);
	padding: 2.5rem 1rem;
}
@media (min-width: 768px) {
	.furoku-footer-recent-section {
		padding: 3rem 2.5rem;
	}
}

.furoku-footer-recent-inner {
	max-width: 1600px;
	margin: 0 auto;
}

.furoku-footer-recent-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--furoku-border-subtle);
}

.furoku-footer-recent-title-wrap {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.furoku-footer-recent-bar {
	width: 0.375rem;
	height: 1.25rem;
	background-color: var(--furoku-primary);
	border-radius: var(--furoku-radius-full);
	display: inline-block;
}

.furoku-footer-recent-title {
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--furoku-text-main);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
@media (min-width: 640px) {
	.furoku-footer-recent-title {
		font-size: 1.25rem;
	}
}

.furoku-footer-recent-title .furoku-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--furoku-primary);
}

.furoku-footer-recent-clear {
	background: none;
	border: 1px solid var(--furoku-border-subtle);
	border-radius: var(--furoku-radius-full);
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--furoku-text-muted);
	cursor: pointer;
	transition: all 0.2s ease;
}
.furoku-footer-recent-clear:hover {
	color: #ef4444;
	border-color: #ef4444;
	background-color: rgba(239, 68, 68, 0.08);
}

/* スケルトンプレースホルダー */
.furoku-footer-recent-skeleton {
	display: flex;
	flex-direction: column;
	border-radius: var(--furoku-radius-xl);
	border: 1px solid var(--furoku-border-subtle);
	background: var(--furoku-card-bg);
	overflow: hidden;
}
.furoku-footer-recent-skeleton .skeleton-thumb {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #f1f5f9;
	animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.dark .furoku-footer-recent-skeleton .skeleton-thumb {
	background: #1e293b;
}
.furoku-footer-recent-skeleton .skeleton-lines {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.furoku-footer-recent-skeleton .line {
	height: 0.875rem;
	background: #e2e8f0;
	border-radius: 4px;
	animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.dark .furoku-footer-recent-skeleton .line {
	background: #334155;
}
.furoku-footer-recent-skeleton .line.short {
	width: 60%;
}
