/*
Theme Name: Lulunel
Theme URI: https://example.com/lulunel
Author: Lulunel
Description: 赤ちゃん用品をやさしく、分かりやすく紹介するためのオリジナルテーマです。
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: lulunel
*/

:root {
	--color-ink: #4f4842;
	--color-muted: #80776f;
	--color-cream: #fffaf4;
	--color-paper: #fffefd;
	--color-sand: #dbc39f;
	--color-sage: #a7b19d;
	--color-peach: #e9b6a6;
	--color-line: #eadfd3;
	--shadow-soft: 0 18px 48px rgba(93, 76, 60, .09);
	--radius-large: 32px;
	--radius-medium: 20px;
	--content-width: 1120px;
	--font-body: "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", system-ui, sans-serif;
	--font-display: "M PLUS Rounded 1c", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", system-ui, sans-serif;
	--font-eyebrow: "Handlee", "Bradley Hand", "Segoe Print", cursive;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; }
html.lenis.lenis-smooth { scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
body {
	margin: 0;
	color: var(--color-ink);
	background: var(--color-paper);
	font-family: var(--font-body);
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}
[data-lulunel-pjax-container] { opacity: 1; transform: none; }
[data-lulunel-scroll-reveal].is-scroll-reveal-ready:not(.is-scroll-revealed) { opacity: 0; translate: 0 18px; }
[data-lulunel-scroll-reveal].is-scroll-revealed:not(.is-scroll-reveal-initial) { animation: lulunel-reveal-up .92s cubic-bezier(.2, .67, .24, 1) var(--lulunel-reveal-delay, 0ms) backwards; }
[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) { opacity: 1; translate: none; }
[data-lulunel-reveal-sequence].is-scroll-revealed { animation: none; }
@keyframes lulunel-reveal-up {
	from { opacity: 0; translate: 0 18px; }
	to { opacity: 1; translate: 0 0; }
}

/* Shared categories choreography: heading, cards, icon, divider, featured product. */
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .section-heading > *,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-card,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-icon,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .section-guide,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-featured-product img,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-featured-product small,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-featured-product strong { opacity: 0; }
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .section-heading > *,
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-card { translate: 0 20px; }
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-icon { scale: .72; rotate: -9deg; }
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .section-guide { scale: .78; rotate: -7deg; }
.category-featured-product { position: relative; border-top: 0; }
.category-featured-product::before { position: absolute; top: 0; right: 0; left: 0; height: 1px; background: var(--color-line); content: ""; transform-origin: left center; }
.category-browser-section[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .category-featured-product::before { scale: 0 1; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .section-heading > div { animation: lulunel-sequence-up .72s cubic-bezier(.2, .67, .24, 1) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .section-guide { animation: lulunel-guide-pop .52s cubic-bezier(.2, .8, .25, 1.12) .04s backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .section-heading > p { animation: lulunel-sequence-up .72s cubic-bezier(.2, .67, .24, 1) .11s backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-card { animation: lulunel-sequence-up .64s cubic-bezier(.2, .67, .24, 1) calc(.22s + var(--lulunel-item-delay)) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-icon { animation: lulunel-icon-pop .44s cubic-bezier(.2, .8, .25, 1.16) calc(.5s + var(--lulunel-item-delay)) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-featured-product::before { animation: lulunel-line-grow .46s cubic-bezier(.2, .67, .24, 1) calc(.58s + var(--lulunel-item-delay)) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-featured-product img { animation: lulunel-sequence-up .46s cubic-bezier(.2, .67, .24, 1) calc(.7s + var(--lulunel-item-delay)) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-featured-product small { animation: lulunel-sequence-up .42s cubic-bezier(.2, .67, .24, 1) calc(.78s + var(--lulunel-item-delay)) backwards; }
.category-browser-section.is-scroll-revealed:not(.is-scroll-reveal-initial) .category-featured-product strong { animation: lulunel-sequence-up .48s cubic-bezier(.2, .67, .24, 1) calc(.86s + var(--lulunel-item-delay)) backwards; }

/* Product hero, points, reviews, and recently viewed sequences. */
.product-hero[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .product-gallery,
.product-hero[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .product-summary > *,
.product-reviews[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) > .product-section-heading,
.product-reviews[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .review-summary-meta,
.product-reviews[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .review-comparison article,
.product-reviews[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .review-purchase-notes,
.recently-viewed[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .recently-viewed-heading,
.recently-viewed[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .recently-viewed-card { opacity: 0; translate: 0 18px; }
.product-hero[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .product-gallery { translate: -24px 0; }
.product-hero[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .product-summary > * { translate: 24px 0; }
.product-hero[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) .product-media-frame img { opacity: 0; scale: 1.09; }
.product-hero.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-gallery { animation: lulunel-hero-from-left .82s cubic-bezier(.2, .67, .24, 1) backwards; }
.product-hero.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-media:nth-child(1) .product-media-frame img { animation: lulunel-product-image-in 2.7s cubic-bezier(.2, .67, .24, 1) .46s backwards; }
.product-hero.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-media:nth-child(2) .product-media-frame img { animation: lulunel-product-image-in 2.7s cubic-bezier(.2, .67, .24, 1) .58s backwards; }
.product-hero.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-media:nth-child(3) .product-media-frame img { animation: lulunel-product-image-in 2.7s cubic-bezier(.2, .67, .24, 1) .7s backwards; }
.product-hero.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-summary > * { animation: lulunel-hero-from-right .76s cubic-bezier(.2, .67, .24, 1) calc(.34s + var(--lulunel-item-delay)) backwards; }
.product-section-heading { display: grid; grid-template-columns: 63px minmax(0, 1fr); align-items: center; gap: 3px 13px; margin-bottom: 28px; }
.product-section-heading > div { display: contents; }
.product-section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: 0; line-height: 1.2; text-align: left; }
.product-section-heading .section-guide { grid-column: 1; grid-row: 2; align-self: center; }
.product-section-heading { row-gap: 7px; }
.product-section-heading .section-guide { width: 57px; height: 57px; justify-self: center; }
.product-section-heading h2 { grid-column: 2; grid-row: 2; align-self: center; }
.product-section-heading h2 { margin-bottom: 0; }
.product-section-heading.is-scroll-reveal-ready:not(.is-scroll-revealed) .section-guide { opacity: 0; scale: .78; rotate: -7deg; }
.product-section-heading.is-scroll-revealed:not(.is-scroll-reveal-initial) .section-guide { animation: lulunel-guide-pop .56s cubic-bezier(.2, .8, .25, 1.12) var(--lulunel-reveal-delay, 0ms) backwards; }
.product-points[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) article { border-color: transparent; background-color: transparent; }
.product-points[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) article span { opacity: 0; scale: .72; }
.product-points[data-lulunel-reveal-sequence].is-scroll-reveal-ready:not(.is-scroll-revealed) article p { opacity: 0; translate: 0 12px; }
.product-points.is-scroll-revealed:not(.is-scroll-reveal-initial) article span { animation: lulunel-icon-pop .42s cubic-bezier(.2, .8, .25, 1.16) var(--lulunel-item-delay) backwards; }
.product-points.is-scroll-revealed:not(.is-scroll-reveal-initial) article { animation: lulunel-card-surface .56s ease-out calc(.18s + var(--lulunel-item-delay)) backwards; }
.product-points.is-scroll-revealed:not(.is-scroll-reveal-initial) article p { animation: lulunel-sequence-up .65s cubic-bezier(.2, .67, .24, 1) calc(.34s + var(--lulunel-item-delay)) backwards; }
.product-reviews.is-scroll-revealed:not(.is-scroll-reveal-initial) > .product-section-heading { animation: lulunel-sequence-up .7s cubic-bezier(.2, .67, .24, 1) backwards; }
.product-reviews.is-scroll-revealed:not(.is-scroll-reveal-initial) .product-section-heading .section-guide { animation: lulunel-guide-pop .52s cubic-bezier(.2, .8, .25, 1.12) backwards; }
.product-reviews.is-scroll-revealed:not(.is-scroll-reveal-initial) .review-summary-meta { animation: lulunel-sequence-up .68s cubic-bezier(.2, .67, .24, 1) .2s backwards; }
.product-reviews.is-scroll-revealed:not(.is-scroll-reveal-initial) .review-comparison article,
.product-reviews.is-scroll-revealed:not(.is-scroll-reveal-initial) .review-purchase-notes { animation: lulunel-sequence-up .72s cubic-bezier(.2, .67, .24, 1) calc(.32s + var(--lulunel-item-delay)) backwards; }
.recently-viewed.is-scroll-revealed:not(.is-scroll-reveal-initial) .recently-viewed-heading { animation: lulunel-sequence-up .7s cubic-bezier(.2, .67, .24, 1) backwards; }
.recently-viewed.is-scroll-revealed:not(.is-scroll-reveal-initial) .recently-viewed-card { animation: lulunel-sequence-up .7s cubic-bezier(.2, .67, .24, 1) calc(.18s + var(--lulunel-item-delay)) backwards; }
@keyframes lulunel-sequence-up { from { opacity: 0; translate: 0 20px; } to { opacity: 1; translate: 0 0; } }
@keyframes lulunel-hero-from-left { from { opacity: 0; translate: -24px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes lulunel-hero-from-right { from { opacity: 0; translate: 24px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes lulunel-product-image-in { from { opacity: 0; scale: 1.09; } to { opacity: 1; scale: 1; } }
@keyframes lulunel-icon-pop { from { opacity: 0; scale: .72; rotate: -9deg; } to { opacity: 1; scale: 1; rotate: 0deg; } }
@keyframes lulunel-guide-pop { from { opacity: 0; scale: .78; rotate: -7deg; } to { opacity: 1; scale: 1; rotate: 0deg; } }
@keyframes lulunel-line-grow { from { scale: 0 1; } to { scale: 1 1; } }
@keyframes lulunel-card-surface { from { border-color: transparent; background-color: transparent; } to { border-color: var(--color-line); background-color: #fff; } }
.pjax-is-loading [data-lulunel-pjax-container] { pointer-events: none; }
.pjax-is-leaving [data-lulunel-pjax-container] { opacity: 0; transform: translate3d(0, 5px, 0); transition: opacity .21s ease, transform .21s ease; }
.pjax-loader { position: fixed; z-index: 100001; inset: 0; display: grid; place-items: center; background: #fff8f0; opacity: 0; pointer-events: all; transition: opacity .14s ease; }
.pjax-loader[hidden] { display: none; }
.pjax-loader.is-covering { opacity: 1; }
.pjax-loader-spinner { width: 42px; height: 42px; border: 4px solid rgba(168, 95, 83, .22); border-top-color: #a85f53; border-radius: 50%; opacity: 0; filter: drop-shadow(0 5px 12px rgba(112, 62, 53, .13)); animation: lulunel-loader-spin .75s linear infinite; transition: opacity .18s ease; }
.pjax-loader.is-visible .pjax-loader-spinner { opacity: 1; }
@keyframes lulunel-loader-spin { to { transform: rotate(360deg); } }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-color: var(--color-sand); text-underline-offset: .2em; }
a:hover { text-decoration-color: var(--color-peach); }
.container { width: min(calc(100% - 40px), var(--content-width)); margin-inline: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 16px; clip: auto; background: #fff; }

.site-header { position: relative; z-index: 10; border-bottom: 1px solid rgba(219, 195, 159, .35); background: rgba(255, 254, 253, .92); }
.header-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-branding { display: flex; min-width: 0; flex: 1; align-items: center; gap: 13px; text-decoration: none; }
.custom-logo, .brand-mark { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; box-shadow: 0 5px 18px rgba(120, 95, 70, .12); }
.site-branding > span { min-width: 0; }
.brand-name { display: block; font-family: var(--font-display); font-size: clamp(.98rem, 1.4vw, 1.32rem); font-weight: 500; letter-spacing: .055em; line-height: 1.35; white-space: nowrap; }
.brand-name-primary, .brand-name-detail { display: inline; }
.brand-tagline { display: block; color: var(--color-muted); font-size: .72rem; letter-spacing: .08em; }
.main-navigation { flex: none; }
.main-navigation ul { display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
.main-navigation a { font-size: .9rem; font-weight: 500; text-decoration: none; }

.floating-menu-toggle { position: fixed; z-index: 90; top: 16px; right: 18px; display: inline-grid; min-width: 206px; min-height: 62px; isolation: isolate; overflow: hidden; grid-template-columns: 54px minmax(0, 1fr) 27px; align-items: center; gap: 7px; padding: 5px 12px 5px 5px; border: 2px solid #d8c4b3; border-radius: 999px; background: rgba(255, 255, 255, .92); box-shadow: 0 10px 26px rgba(112, 128, 104, .18); color: var(--color-ink); cursor: pointer; text-align: left; transition: border-color .2s ease, box-shadow .2s ease; }
.floating-menu-toggle::before { position: absolute; inset: 5px; z-index: 0; border-radius: inherit; background: rgba(248, 244, 236, .96); content: ""; pointer-events: none; transform: translateY(58px); transition: transform .23s cubic-bezier(.83,0,.17,1); }
.floating-menu-toggle > span { position: relative; z-index: 1; }
.floating-menu-toggle:hover, .floating-menu-toggle:focus-visible { border-color: #b89c85; box-shadow: 0 14px 30px rgba(112, 128, 104, .26); }
.floating-menu-toggle:hover::before, .floating-menu-toggle:focus-visible::before { transform: translateY(0); transition-duration: .46s; }
.floating-menu-toggle:hover .floating-menu-icon img, .floating-menu-toggle:focus-visible .floating-menu-icon img { rotate: -4deg; scale: 1.24; }
.floating-menu-icon { display: grid; width: 52px; height: 52px; place-items: center; overflow: hidden; border-radius: 50%; background: #fffdf6; }
.floating-menu-icon img { width: 49px; height: 49px; object-fit: contain; scale: 1.18; transition: rotate .25s ease, scale .25s ease; }
.floating-menu-copy { display: grid; gap: 0; }
.floating-menu-copy small { color: #8d765d; font-family: var(--font-eyebrow); font-size: .7rem; font-weight: 700; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.floating-menu-copy strong { font-family: var(--font-display); font-size: .9rem; letter-spacing: .06em; }
.floating-menu-toggle > .floating-menu-mark { position: absolute; top: 50%; right: 10px; display: grid; width: 26px; height: 26px; place-items: center; color: #6f7f65; font-size: 1.28rem; line-height: 1; transform: translateY(-50%); }
.site-menu[hidden] { display: none; }
.site-menu { position: fixed; z-index: 100; inset: 0; opacity: 0; pointer-events: none; transition: opacity .28s ease; }
.site-menu.is-open { opacity: 1; pointer-events: auto; }
.site-menu-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(55, 43, 34, .24); cursor: pointer; }
.site-menu-panel { position: absolute; inset: 0; display: flex; padding: 36px max(32px, calc((100vw - var(--content-width)) / 2)); flex-direction: column; background: #fffdf9; box-shadow: none; opacity: 0; overflow-y: auto; transform: translateY(-16px); transition: opacity .3s ease, transform .3s cubic-bezier(.2,.7,.2,1); }
.site-menu.is-open .site-menu-panel { opacity: 1; transform: translateY(0); }
.site-menu-close { z-index: 1; cursor: pointer; }
.site-menu-close .floating-menu-mark { color: #806b56; font-size: 1.55rem; }
.site-menu-content { display: grid; gap: 58px; padding: 82px 0 72px; }
.site-menu-content > .site-menu-section { opacity: 0; transform: translateY(18px); transition: opacity .34s ease, transform .42s cubic-bezier(.2,.7,.2,1); }
.site-menu.is-open .site-menu-content > .site-menu-section { opacity: 1; transform: translateY(0); }
.site-menu.is-open .site-menu-content > .site-menu-section:nth-child(2) { transition-delay: .09s; }
.site-menu .site-menu-category-card,
.site-menu .site-menu-finder-group { opacity: 0; transform: translateY(12px); transition: opacity .28s ease, transform .34s cubic-bezier(.2,.7,.2,1); }
.site-menu.is-open .site-menu-category-card,
.site-menu.is-open .site-menu-finder-group { opacity: 1; transform: translateY(0); }
.site-menu.is-open .site-menu-category-card:nth-child(1) { transition-delay: .08s; }
.site-menu.is-open .site-menu-category-card:nth-child(2) { transition-delay: .11s; }
.site-menu.is-open .site-menu-category-card:nth-child(3) { transition-delay: .14s; }
.site-menu.is-open .site-menu-category-card:nth-child(4) { transition-delay: .17s; }
.site-menu.is-open .site-menu-category-card:nth-child(5) { transition-delay: .20s; }
.site-menu.is-open .site-menu-category-card:nth-child(6) { transition-delay: .23s; }
.site-menu.is-open .site-menu-category-card:nth-child(7) { transition-delay: .26s; }
.site-menu.is-open .site-menu-category-card:nth-child(8) { transition-delay: .29s; }
.site-menu.is-open .site-menu-category-card:nth-child(9) { transition-delay: .32s; }
.site-menu.is-open .site-menu-category-card:nth-child(10) { transition-delay: .35s; }
.site-menu.is-open .site-menu-category-card:nth-child(11) { transition-delay: .38s; }
.site-menu.is-open .site-menu-category-card:nth-child(12) { transition-delay: .41s; }
.site-menu.is-open .site-menu-category-card:nth-child(13) { transition-delay: .44s; }
.site-menu.is-open .site-menu-category-card:nth-child(14) { transition-delay: .47s; }
.site-menu.is-open .site-menu-finder-group:nth-child(1) { transition-delay: .17s; }
.site-menu.is-open .site-menu-finder-group:nth-child(2) { transition-delay: .21s; }
.site-menu.is-open .site-menu-finder-group:nth-child(3) { transition-delay: .25s; }
.site-menu.is-open .site-menu-finder-group:nth-child(4) { transition-delay: .29s; }
.site-menu.is-open .site-menu-finder-group:nth-child(5) { transition-delay: .33s; }
.site-menu.is-entered .site-menu-category-card,
.site-menu.is-entered .site-menu-finder-group { transition-delay: 0s; }
.site-menu.is-entered .site-menu-category-card:hover,
.site-menu.is-entered .site-menu-category-card:focus-visible { border-color: #b89c85; box-shadow: 0 9px 20px rgba(93,70,55,.08); }
.site-menu-section-heading { display: grid; grid-template-columns: 60px minmax(0, 1fr); align-items: center; gap: 13px; margin-bottom: 24px; }
.site-menu-section-heading img { width: 56px; height: 56px; object-fit: contain; }
.site-menu-section-heading .eyebrow { margin: 0 0 2px; }
.site-menu-section-heading h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.55rem, 2.5vw, 2.1rem); }
.site-menu-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.site-menu-category-card { position: relative; display: grid; min-height: 112px; isolation: isolate; overflow: hidden; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 11px; padding: 16px; border: 2px solid #d8c4b3; border-radius: 14px; background: #fff; color: var(--color-ink); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.site-menu-category-card::before { position: absolute; inset: 5px; z-index: 0; border-radius: 10px; background: rgba(248, 244, 236, .96); content: ""; pointer-events: none; transform: translateY(110%); transition: transform .23s cubic-bezier(.83,0,.17,1); }
.site-menu-category-card > * { position: relative; z-index: 1; }
.site-menu-category-card:hover { border-color: #b89c85; box-shadow: 0 9px 20px rgba(93,70,55,.08); }
.site-menu-category-card[data-hover-direction="top"]::before { transform: translateY(-110%); }
.site-menu-category-card[data-hover-direction="left"]::before { transform: translateX(-110%); }
.site-menu-category-card[data-hover-direction="right"]::before { transform: translateX(110%); }
.site-menu-category-card.is-direction-hover::before, .site-menu-category-card:focus-visible::before { transform: translate(0, 0); transition-duration: .46s; }
.site-menu-category-card img { width: 42px; height: 42px; object-fit: contain; transition: rotate .25s ease, scale .25s ease; }
.site-menu-category-card:hover img, .site-menu-category-card:focus-visible img { rotate: -4deg; scale: 1.12; }
.site-menu-category-card span { min-width: 0; }
.site-menu-category-card strong, .site-menu-category-card small { display: block; }
.site-menu-category-card strong { font-family: var(--font-display); font-size: .92rem; line-height: 1.35; }
.site-menu-category-card small { margin-top: 5px; color: var(--color-muted); font-size: .66rem; line-height: 1.35; }
.site-menu-finder { padding-top: 46px; border-top: 6px solid var(--color-line); }
.site-menu-finder-groups { display: grid; grid-template-columns: 1fr; gap: 19px; }
.site-menu-finder-group { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 14px; align-items: start; }
.site-menu-finder-group > p { margin: 10px 0 0; color: #806b56; font-size: .8rem; font-weight: 700; }
.site-menu-finder-group > div { display: flex; flex-wrap: wrap; gap: 8px; }
.site-menu-finder-group a { position: relative; isolation: isolate; display: inline-flex; overflow: hidden; align-items: center; gap: 7px; min-height: 38px; padding: 7px 10px 7px 13px; border: 2px solid #d8c4b3; border-radius: 10px; background: #fff; box-shadow: 0 5px 13px rgba(93,70,55,.08); color: #4c382e; font-family: var(--font-display); font-size: .8rem; font-weight: 700; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.site-menu-finder-group a::before { position: absolute; inset: 4px; z-index: 0; border-radius: 6px; background: rgba(248, 244, 236, .96); content: ""; pointer-events: none; transform: translateY(110%); transition: transform .23s cubic-bezier(.83,0,.17,1); }
.site-menu-finder-group a span, .site-menu-finder-group a .finder-arrow { position: relative; z-index: 1; }
.site-menu-finder-group a span { color: #4c382e; }
.site-menu-finder-group a .finder-arrow { color: #a17b62; font-size: 1rem; line-height: 1; transition: translate .2s ease; }
.site-menu-finder-group a:hover .finder-arrow, .site-menu-finder-group a:focus-visible .finder-arrow { translate: 3px 0; }
.site-menu-finder-group a:hover { border-color: #b89c85; box-shadow: 0 8px 18px rgba(93,70,55,.18); }
.site-menu-finder-group a[data-hover-direction="top"]::before { transform: translateY(-110%); }
.site-menu-finder-group a[data-hover-direction="left"]::before { transform: translateX(-110%); }
.site-menu-finder-group a[data-hover-direction="right"]::before { transform: translateX(110%); }
.site-menu-finder-group a.is-direction-hover::before, .site-menu-finder-group a:focus-visible::before { transform: translate(0, 0); transition-duration: .46s; }
.site-menu-finder-group a:focus-visible { outline: 3px solid #c7aa8f; outline-offset: 2px; }
.site-menu-open { overflow: hidden; }

.hero { overflow: hidden; padding: clamp(58px, 9vw, 112px) 0 76px; background: radial-gradient(circle at 78% 24%, #f6e3dc 0, transparent 28%), linear-gradient(135deg, var(--color-cream), #f8f4ec); }
.hero-inner { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(36px, 7vw, 88px); }
.eyebrow { margin: 0 0 14px; color: #8d765d; font-family: var(--font-eyebrow); font-size: .94rem; font-weight: 700; letter-spacing: .08em; line-height: 1.25; text-transform: uppercase; }
.hero h1 { margin: 0; color: transparent; font-family: var(--font-display); font-size: clamp(2rem, 3.55vw, 3.35rem); font-weight: 900; letter-spacing: .035em; line-height: 1.35; -webkit-text-fill-color: transparent; -webkit-text-stroke: 2px var(--color-ink); paint-order: stroke fill; }
.hero h1 span { display: inline-block; white-space: nowrap; }
.hero-copy { max-width: 38rem; margin: 24px 0 32px; color: var(--color-muted); font-size: 1.02rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border-radius: 999px; background: var(--color-sage); color: #fff; font-weight: 700; text-decoration: none; box-shadow: 0 10px 28px rgba(112, 128, 104, .22); }
.hero-search-button { position: relative; display: inline-grid; min-width: min(100%, 292px); min-height: 74px; isolation: isolate; overflow: hidden; grid-template-columns: 70px minmax(0, 1fr) 32px; align-items: center; gap: 8px; padding: 7px 14px 7px 7px; border: 1px solid rgba(116, 127, 105, .34); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--color-ink); text-align: left; text-decoration: none; box-shadow: 0 12px 30px rgba(112, 128, 104, .16); transition: border-color .25s ease, box-shadow .25s ease; }
.hero-search-button::after { position: absolute; inset: 5px; z-index: 0; border-radius: inherit; background: rgba(216, 225, 207, .38); content: ""; transform: translateY(70px); transition: transform .23s cubic-bezier(.83,0,.17,1); }
.hero-search-button > span { position: relative; z-index: 1; }
.hero-search-button-icon { display: grid; width: 62px; height: 62px; place-items: center; overflow: hidden; border-radius: 50%; background: #fffdf6; }
.hero-search-button-icon img { width: 58px; height: 58px; object-fit: contain; scale: 1.18; transition: rotate .25s ease, scale .25s ease; }
.hero-search-button-copy { display: grid; gap: 1px; }
.hero-search-button-copy small { color: #8d765d; font-family: var(--font-eyebrow); font-size: .78rem; font-weight: 700; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.hero-search-button-copy strong { font-size: .98rem; letter-spacing: .055em; }
.hero-search-button-arrow { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--color-sage); color: #fff; font-size: 1rem; line-height: 1; transition: translate .25s ease; }
.hero-search-button:hover, .hero-search-button:focus-visible { border-color: rgba(116, 127, 105, .65); box-shadow: 0 15px 34px rgba(112, 128, 104, .24); }
.hero-search-button:hover::after, .hero-search-button:focus-visible::after { transform: translateY(0); transition-duration: .46s; }
.hero-search-button:hover .hero-search-button-icon img, .hero-search-button:focus-visible .hero-search-button-icon img { rotate: -4deg; scale: 1.24; }
.hero-visual { position: relative; }
.hero-visual::before { content: ""; position: absolute; inset: 9% -7% -7% 9%; border-radius: 47% 53% 42% 58%; background: rgba(219, 195, 159, .28); transform: rotate(5deg); }
.hero-logo { position: relative; width: min(100%, 470px); margin-inline: auto; border-radius: 48% 52% 46% 54%; box-shadow: var(--shadow-soft); }

.section { padding: 84px 0; }
.section-soft { background: #fbf7f1; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.section-heading-title { display: grid; min-width: 0; grid-template-columns: 63px minmax(0, 1fr); align-items: center; gap: 3px 13px; }
.section-heading-title { row-gap: 7px; }
.section-heading-title .section-guide { width: 57px; height: 57px; justify-self: center; }
.section-heading-title > div { display: contents; }
.section-heading-title .eyebrow { grid-column: 1 / -1; margin-bottom: 0; line-height: 1.2; text-align: left; }
.section-heading-title .section-guide { grid-column: 1; grid-row: 2; align-self: center; }
.section-heading-title h2, .section-heading-title .page-title { grid-column: 2; grid-row: 2; align-self: center; }
.product-section-heading { display: grid; min-width: 0; }
.section-guide { width: 63px; height: 63px; flex: none; padding: 0; border: 0; border-radius: 0; background: transparent; object-fit: contain; box-shadow: none; overflow: visible; }
.section-heading h2, .page-title { margin: 0; font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.65rem); font-weight: 700; letter-spacing: .025em; line-height: 1.45; }
.section-heading p { max-width: 34rem; margin: 0; color: var(--color-muted); }
.latest-editorial .section-heading h2 { font-size: clamp(1.45rem, 2.5vw, 2rem); }
.editorial-more { display: flex; justify-content: flex-end; margin: 24px 0 0; }
.editorial-more a { display: inline-flex; align-items: center; gap: 10px; color: #60483b; font-family: var(--font-display); font-size: .9rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; }
.editorial-more a span { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #b89c85; border-radius: 50%; font-size: 1rem; line-height: 1; transition: background-color .18s ease, color .18s ease; }
.editorial-more a:hover span, .editorial-more a:focus-visible span { background: #f8f4ec; color: #3d2c25; }
.editorial-more a:focus-visible { outline: 3px solid #c7aa8f; outline-offset: 4px; }
.category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.category-card { min-height: 180px; padding: 28px; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: var(--color-paper); text-decoration: none; box-shadow: 0 12px 35px rgba(91, 77, 63, .05); transition: transform .2s ease, box-shadow .2s ease; }
.category-card:hover { box-shadow: var(--shadow-soft); }
.category-icon { display: block; width: 52px; height: 52px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; object-fit: contain; box-shadow: none; }
.category-card h3 { margin: 0 0 5px; font-family: var(--font-display); font-size: 1.18rem; font-weight: 500; letter-spacing: .03em; }
.category-card p { margin: 0; color: var(--color-muted); font-size: .88rem; }
.category-grid-all { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.category-grid-all .category-card { min-height: 164px; }
.category-grid-all .category-card h3 { overflow: hidden; font-size: clamp(.88rem, 1.25vw, 1.05rem); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.category-browser-section-article .category-grid-all { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.category-browser-section-article { margin-top: 24px; padding-block: 72px; }
.category-card-main { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); min-height: 132px; padding-bottom: 50px; align-content: start; align-items: center; gap: 4px 14px; text-decoration: none; }
.category-card-main h3 { margin: 0; }
.category-card-main p { position: absolute; right: 0; bottom: 27px; left: 0; margin: 0; }
.category-card-main .category-card-counts { display: flex; align-items: center; gap: 10px; color: var(--color-muted); font-size: .78rem; }
.category-card-counts span + span { padding-left: 10px; border-left: 1px solid var(--color-line); }
.category-card-cta { position: absolute; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: flex-end; gap: 7px; color: #806b56; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-align: right; }
.category-product-slider { overflow: hidden; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--color-line); }
.category-product-track { display: flex; transition: transform .62s cubic-bezier(.22,.72,.25,1); will-change: transform; }
.category-product-track.is-jumping { transition: none; }
.category-featured-product { display: block; flex: 0 0 100%; min-width: 0; text-decoration: none; }
.category-product-dots { display: flex; min-height: 20px; margin-top: 10px; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; }
.category-product-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #d8cdc0; cursor: pointer; transition: width .2s ease, border-radius .2s ease, background-color .2s ease; }
.category-product-dots button[aria-current="true"] { width: 18px; border-radius: 999px; background: #8d765f; }
.category-product-dots button:focus-visible { outline: 2px solid #8f665e; outline-offset: 3px; }
.category-featured-product img { display: block; box-sizing: border-box; width: 100%; height: auto; aspect-ratio: 1; margin-bottom: 10px; border: 1px solid #dedbd7; border-radius: 12px; object-fit: cover; background: #fff; }
.category-featured-product span { min-width: 0; }
.category-featured-product small, .category-featured-product strong { display: block; }
.category-featured-product small { margin-bottom: 2px; color: #927d67; font-size: .65rem; font-weight: 700; letter-spacing: .08em; }
.category-featured-product strong { overflow: hidden; font-size: .76rem; font-weight: 500; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.category-card.is-empty { box-shadow: none; opacity: .62; }
.category-card.is-empty:hover { opacity: .82; }
.discovery-browser { margin-top: 56px; padding-top: 42px; border-top: 1px solid var(--color-line); }
.discovery-browser-heading { margin-bottom: 30px; }
.discovery-filter-groups { display: grid; gap: 19px; margin-top: 30px; }
.discovery-filter-group { display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: start; gap: 14px; }
.discovery-filter-group > p { margin: 11px 0 0; color: #70584a; font-size: .82rem; font-weight: 700; letter-spacing: .1em; }
.discovery-filter-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.discovery-filter-buttons a, .discovery-filter-disabled { display: inline-flex; min-height: 46px; box-sizing: border-box; align-items: center; gap: 14px; padding: 10px 13px 10px 16px; border: 1px solid #d8c4b3; border-radius: 12px; background: #fffdf9; box-shadow: 0 5px 13px rgba(93,70,55,.08); color: #4c382e; font-family: var(--font-display); font-size: .88rem; font-weight: 700; line-height: 1.3; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.discovery-filter-buttons a { position: relative; isolation: isolate; overflow: hidden; }
.discovery-filter-buttons a::before { position: absolute; inset: 4px; z-index: 0; border-radius: 7px; background: rgba(248, 244, 236, .96); content: ""; pointer-events: none; transform: translateY(110%); transition: transform .23s cubic-bezier(.83,0,.17,1); }
.discovery-filter-buttons a > span, .discovery-filter-buttons a .finder-arrow { position: relative; z-index: 1; }
.discovery-filter-buttons a .finder-arrow { color: #a17b62; font-size: 1.08rem; line-height: 1; transition: translate .2s ease; }
.discovery-filter-buttons a:hover .finder-arrow, .discovery-filter-buttons a:focus-visible .finder-arrow { translate: 3px 0; }
.discovery-filter-buttons a:hover { border-color: #b89c85; box-shadow: 0 8px 18px rgba(93,70,55,.18); }
.discovery-filter-buttons a[data-hover-direction="top"]::before { transform: translateY(-110%); }
.discovery-filter-buttons a[data-hover-direction="left"]::before { transform: translateX(-110%); }
.discovery-filter-buttons a[data-hover-direction="right"]::before { transform: translateX(110%); }
.discovery-filter-buttons a.is-direction-hover::before, .discovery-filter-buttons a:focus-visible::before { transform: translate(0, 0); transition-duration: .46s; }
.discovery-filter-buttons a:focus-visible { outline: 3px solid #c7aa8f; outline-offset: 2px; }
.discovery-filter-disabled { border-style: dashed; color: #aaa099; cursor: not-allowed; opacity: .75; }
.discovery-filter-buttons small { margin-left: 4px; font-size: .64rem; }
.discovery-results { margin-top: 30px; }
.discovery-result { padding: 24px; border: 1px solid #e1d5c9; border-radius: var(--radius-medium); background: rgba(255,253,249,.82); }
.discovery-result-label { margin: 0 0 20px; color: var(--color-muted); font-size: .86rem; }
.discovery-result-label strong { color: var(--color-ink); font-family: var(--font-display); font-size: 1.06rem; }
.discovery-result-section + .discovery-result-section { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--color-line); }
.discovery-result-section h4 { margin: 0 0 13px; font-size: .8rem; color: #806b56; letter-spacing: .06em; }
.discovery-result-section h2 { margin: 0 0 13px; color: #806b56; font-size: .9rem; letter-spacing: .06em; }
.discovery-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.discovery-product-card { display: grid; min-width: 0; color: inherit; text-decoration: none; }
.discovery-product-image { display: block; overflow: hidden; aspect-ratio: 1; border: 1px solid #dedbd7; border-radius: 10px; background: #fff; }
.discovery-product-image img { width: 100%; height: 100%; object-fit: cover; }
.discovery-product-copy { display: grid; gap: 4px; padding: 9px 2px 0; }
.discovery-product-copy strong { overflow: hidden; font-size: .77rem; font-weight: 500; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.discovery-product-copy small { color: var(--color-muted); font-size: .72rem; }
.discovery-article-list { max-width: none; }
.discovery-empty { margin: 0; color: var(--color-muted); font-size: .86rem; }
.discovery-page { padding-block: 76px; }
.discovery-page .discovery-browser { margin-top: 0; padding-top: 0; border-top: 0; }
.discovery-page-heading { display: grid; grid-template-columns: 63px minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; justify-content: start; gap: 7px 13px; }
.discovery-page-heading .discovery-page-guide { grid-column: 1; grid-row: 2; width: 57px; height: 57px; }
.discovery-page-heading > .eyebrow { grid-column: 1 / -1; grid-row: 1; margin: 0; line-height: 1.2; }
.discovery-page-title-row { display: flex; grid-column: 2; grid-row: 2; min-width: 0; align-items: center; gap: 12px; }
.discovery-close { display: grid; width: 34px; height: 34px; place-items: center; flex: none; margin: 0; border: 0; border-radius: 50%; background: #806b56; box-shadow: 0 4px 10px rgba(93,70,55,.16); color: #fffdf9; font-size: 1.35rem; line-height: 1; text-decoration: none; transition: background-color .18s ease, transform .18s ease; }
.discovery-close:hover { background: #5f4538; transform: rotate(8deg); }
.discovery-close:focus-visible { outline: 3px solid #c7aa8f; outline-offset: 3px; }

.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.post-card { position: relative; overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; }
.post-card-link { position: absolute; z-index: 2; inset: 0; display: block; }
.post-card-thumb { display: block; overflow: hidden; width: 100%; aspect-ratio: 1 / 1; background: #f3ece3; }
.post-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card.type-lulunel_product .post-card-thumb img { object-fit: contain; background: #fff; }
.post-card-body { padding: 24px; }
.post-card-meta { margin-bottom: 9px; color: #927d67; font-size: .76rem; font-weight: 700; letter-spacing: .06em; }
.post-card h2, .post-card h3 { margin: 0 0 10px; font-family: var(--font-display); font-size: 1.2rem; font-weight: 500; line-height: 1.65; }
.post-card h2 a, .post-card h3 a { text-decoration: none; }
.post-card p { margin: 0; color: var(--color-muted); font-size: .9rem; }
.article-list { grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 12px; }
.article-list .post-card { display: grid; overflow: hidden; min-height: 92px; isolation: isolate; grid-template-columns: 92px minmax(0, 1fr); align-items: stretch; border-color: #ded1c3; border-radius: 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.article-list .post-card::before { position: absolute; inset: 5px; z-index: 0; border-radius: 9px; background: rgba(248, 244, 236, .96); clip-path: inset(100% 0 0); content: ""; pointer-events: none; transition: clip-path .23s cubic-bezier(.83,0,.17,1); }
.article-list .post-card[data-hover-direction="top"]::before { clip-path: inset(0 0 100%); }
.article-list .post-card:hover { border-color: #ba9478; }
.article-list .post-card.is-direction-hover::before, .article-list .post-card:focus-within::before { clip-path: inset(0); transition-duration: .46s; }
.article-list .post-card-thumb { position: relative; z-index: 1; width: 100%; height: 100%; min-height: 92px; margin: 0; aspect-ratio: 1; border: 0; border-radius: 0; }
.article-list .post-card-thumb img { height: 100%; object-fit: cover; }
.article-list .post-card-body { position: relative; z-index: 1; display: flex; min-width: 0; padding: 15px 68px 15px 26px; flex-direction: column; justify-content: center; }
.article-list .post-card-meta { display: flex; margin-bottom: 7px; align-items: center; gap: 6px; color: #927d67; font-size: .7rem; }
.article-list .post-card-meta::before { display: block; flex: none; color: #a17b62; content: "\f073"; font-family: "Font Awesome 6 Free"; font-size: 1.19em; font-weight: 900; line-height: 1; }
.article-list .post-card h2 { margin: 0; font-size: clamp(1.08rem, 1.45vw, 1.34rem); font-weight: 700; line-height: 1.5; }
.article-list .post-card::after { position: absolute; z-index: 1; top: 50%; right: 26px; display: block; color: rgba(128, 107, 86, .52); content: "\f054"; font-family: "Font Awesome 6 Free"; font-size: 1.35rem; font-weight: 900; line-height: 1; pointer-events: none; transform: translateY(-50%); transition: color .2s ease, translate .25s ease; }
.article-list .post-card:hover::after, .article-list .post-card:focus-within::after { color: #60483b; translate: 4px 0; }
.article-list .post-card p { display: none; }
.empty-state { padding: 42px; border: 1px dashed var(--color-sand); border-radius: var(--radius-medium); background: var(--color-cream); text-align: center; }

.content-area { padding: 72px 0; }
.article { max-width: none; margin-inline: auto; }
.article-header { margin-bottom: 38px; }
.article-meta { color: var(--color-muted); font-size: .85rem; }
.article-content { font-size: 1rem; }
.article-content > * + * { margin-top: 1.5em; }
.article-content h2, .article-content h3 { margin-top: 2.3em; font-family: var(--font-display); font-weight: 700; letter-spacing: .025em; }
.article-content a { color: #667460; }
.pagination { margin-top: 40px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { padding: 7px 13px; border-radius: 999px; background: #f5efe8; text-decoration: none; }
.page-numbers:not(.dots):not(.prev):not(.next) { display: inline-grid; width: 42px; height: 42px; padding: 0; place-items: center; border-radius: 50%; line-height: 1; }
.page-numbers.current { background: var(--color-sage); color: #fff; }

.site-footer { padding: 48px 0; border-top: 1px solid var(--color-line); background: #f8f3ed; }
.footer-inner { display: flex; justify-content: space-between; gap: 28px; color: var(--color-muted); font-size: .84rem; }
.footer-name { color: var(--color-ink); font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; letter-spacing: .06em; }

.product-detail { padding: 42px 0 88px; background: linear-gradient(180deg, #fffaf4 0, #fffefd 36%); }
.product-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; margin-bottom: 28px; color: var(--color-muted); font-size: .78rem; overflow-wrap: anywhere; }
.product-breadcrumb-multiple { display: grid; gap: 5px; align-items: start; }
.product-breadcrumb .breadcrumb-path { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; }
.product-breadcrumb .breadcrumb-path-secondary { color: #9a8774; }
.fixed-breadcrumb { position: fixed; z-index: 80; top: 0; left: 0; display: flex; min-height: 34px; max-width: calc(100vw - 242px); flex-wrap: nowrap; align-items: center; gap: 4px 8px; margin: 0; padding: 7px 16px; border: 0; border-right: 1px solid rgba(219, 195, 159, .72); border-bottom: 1px solid rgba(219, 195, 159, .72); border-radius: 0 0 8px 0; background: #fff; box-shadow: none; color: #847563; font-size: .72rem; overflow: hidden; white-space: nowrap; opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease; backdrop-filter: blur(8px); }
.fixed-breadcrumb.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.fixed-breadcrumb > * { flex: none; }
.fixed-breadcrumb .breadcrumb-path { display: contents; }
.fixed-breadcrumb .breadcrumb-path-secondary { display: none; }
.fixed-breadcrumb > [aria-current="page"] { overflow: hidden; min-width: 0; flex: 0 1 auto; text-overflow: ellipsis; }
.fixed-breadcrumb .breadcrumb-separator { width: auto; height: auto; color: #b39a85; font-size: .66rem; }
.fixed-breadcrumb .breadcrumb-separator .fa-solid { display: none; }
.fixed-breadcrumb .breadcrumb-separator::after { content: "/"; }
.fixed-breadcrumb .breadcrumb-home .fa-solid { font-size: .74rem; }
.product-breadcrumb a, .fixed-breadcrumb a { color: #806b56; text-decoration: none; }
.product-breadcrumb a:hover, .product-breadcrumb a:focus-visible, .fixed-breadcrumb a:hover, .fixed-breadcrumb a:focus-visible { color: #4f3a2f; text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb-home { display: inline-flex; align-items: center; gap: 4px; }
.breadcrumb-home .fa-solid { color: #9e8068; font-size: .84rem; line-height: 1; }
.breadcrumb-separator { display: inline-grid; width: 12px; height: 16px; place-items: center; color: #b39a85; font-size: .92rem; line-height: 1; }
.breadcrumb-separator .fa-solid { line-height: 1; }
.product-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: clamp(36px, 6vw, 76px); align-items: start; }
.product-gallery { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.product-media { min-width: 0; margin: 0; }
.product-media-1 { grid-column: 1 / -1; }
.product-media-frame { overflow: hidden; width: 100%; aspect-ratio: 1 / 1; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #f4f4f2; }
.product-media-frame > img { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #fff; }
.product-media-link { display: block; width: 100%; height: 100%; }
.product-media-link img { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #fff; }
.product-media-placeholder { display: flex; width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 24px; color: #9b8977; text-align: center; background: radial-gradient(circle at 50% 38%, rgba(233,182,166,.28), transparent 30%), linear-gradient(145deg, #f8efe5, #f2eee7); }
.product-media-placeholder span { font-size: 2rem; color: var(--color-sand); }
.product-media-placeholder strong { font-weight: 500; letter-spacing: .08em; }
.product-media-placeholder small { color: var(--color-muted); }
.product-media figcaption { margin: 7px 4px 0; color: var(--color-muted); font-size: .7rem; }
.product-summary { position: sticky; top: 28px; padding-top: 20px; }
.product-summary > .eyebrow { margin-bottom: 7px; }
.product-summary h1 { margin: 0 0 18px; font-size: clamp(1.65rem, 2.7vw, 2.55rem); line-height: 1.4; overflow-wrap: anywhere; }
.product-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.product-tags a { display: inline-flex; min-height: 36px; align-items: center; padding: 7px 13px; border: 1px solid #cdd8c7; border-radius: 999px; background: #e9eee5; color: #52604c; font-size: .76rem; font-weight: 600; line-height: 1.35; text-decoration: none; transition: border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease; }
.product-tags a:hover { border-color: #9eae96; background: #dfe8da; color: #394633; box-shadow: 0 5px 14px rgba(74, 89, 67, .12); }
.product-tags a:focus-visible { outline: 3px solid #6e7f66; outline-offset: 2px; background: #f4f7f1; color: #2f3b2a; }
.product-tags a:active { border-color: #899a81; background: #d4dfce; box-shadow: none; }
.product-lead { margin: 0 0 25px; color: var(--color-muted); }
.product-price { display: flex; align-items: baseline; gap: 12px; margin: 0 0 22px; }
.product-price strong { font-size: 1.7rem; }
.product-price small { color: var(--color-muted); font-size: .7rem; }
.product-attribute-values { display: flex; flex-wrap: wrap; gap: 3px 10px; }
.button-rakuten { gap: .55em; border: 1px solid #8f4b43; background: #a85f53; color: #fff; font-weight: 700; letter-spacing: .025em; box-shadow: 0 9px 22px rgba(112, 62, 53, .18), inset 0 1px rgba(255, 255, 255, .14); transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
.button-rakuten:hover { border-color: #804139; background: #984c43; color: #fff; text-decoration: none; box-shadow: 0 11px 26px rgba(112, 62, 53, .23), inset 0 1px rgba(255, 255, 255, .12); }
.button-rakuten:focus-visible { outline: 3px solid #75463f; outline-offset: 3px; background: #984c43; color: #fff; text-decoration: none; }
.button-rakuten:active { border-color: #804139; background: #8f4b43; box-shadow: 0 5px 14px rgba(112, 62, 53, .18); }
.product-specs-compact { margin: 0 0 30px; border-block: 1px solid var(--color-line); }
.product-specs-compact div { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 0; border-bottom: 1px solid var(--color-line); }
.product-specs-compact div:last-child { border-bottom: 0; }
.product-specs-compact dt { color: rgba(117, 94, 73, .58); font-size: .72rem; line-height: 1.35; }
.product-specs-compact dd { margin: 0; font-weight: 500; line-height: 1.4; }
.product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.product-secondary-link { font-size: .88rem; font-weight: 500; }
.product-link-note { color: var(--color-muted); font-size: .72rem; }
.product-sticky-cta { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; padding: 10px max(18px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); border-top: 1px solid rgba(117, 94, 73, .15); background: rgba(255, 253, 250, .96); box-shadow: 0 -8px 28px rgba(69, 54, 40, .1); opacity: 0; visibility: hidden; transform: translate3d(0, 100%, 0); transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s; }
.product-sticky-cta.is-visible { opacity: 1; visibility: visible; transform: translate3d(0, 0, 0); transition-delay: 0s; }
.product-sticky-cta-inner { display: flex; max-width: 1180px; min-width: 0; margin-inline: auto; align-items: center; justify-content: space-between; gap: 24px; }
.product-sticky-cta-image { width: 52px; height: 52px; flex: none; border: 1px solid var(--color-line); border-radius: 10px; background: #fff; object-fit: contain; }
.product-sticky-cta-copy { display: flex; min-width: 0; flex: 1; align-items: baseline; gap: 16px; }
.product-sticky-cta-copy strong { overflow: hidden; min-width: 0; text-overflow: ellipsis; white-space: nowrap; }
.product-sticky-cta-copy span { flex: none; font-weight: 700; }
.product-sticky-cta-button { flex: none; padding: 12px 24px; font-size: .9rem; }
body.single-lulunel_product .site-footer { padding-bottom: calc(48px + var(--product-sticky-cta-height, 0px)); }
.recently-viewed { padding: 68px 0; border-top: 1px solid var(--color-line); background: #fffaf4; }
.recently-viewed-heading { margin-bottom: 24px; }
.recently-viewed-heading h2 { margin: 0; font-size: clamp(1.45rem, 2.5vw, 2rem); }
.recently-viewed-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.recently-viewed-card { display: block; overflow: hidden; min-width: 0; padding: 0; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; color: var(--color-ink); text-decoration: none; box-shadow: 0 8px 22px rgba(91, 77, 63, .055); transition: border-color .18s ease, box-shadow .18s ease; }
.recently-viewed-card:hover { border-color: #d8c4b2; box-shadow: 0 11px 26px rgba(91, 77, 63, .09); }
.recently-viewed-card:focus-visible { outline: 3px solid #8f665e; outline-offset: 3px; }
.recently-viewed-card img { display: block; width: 100%; height: auto; margin: 0; aspect-ratio: 1 / 1; border-radius: 0; background: #fff; object-fit: contain; }
.recently-viewed-copy { display: block; min-width: 0; margin: 0 24px 24px; padding-top: 20px; }
.recently-viewed-copy.related-product-copy { margin: 0; }
.recently-viewed-copy small, .recently-viewed-copy strong, .recently-viewed-copy span { display: block; }
.recently-viewed-copy small { margin-bottom: 3px; color: #927d67; font-size: .68rem; }
.recently-viewed-copy strong { overflow: hidden; font-family: var(--font-display); font-size: 1.2rem; font-weight: 500; line-height: 1.65; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.recently-viewed-copy span { margin-top: 5px; color: #8f4b43; font-size: .78rem; font-weight: 700; }
.product-section { width: 100%; max-width: none; margin: 88px 0 0; }
.product-section h2 { margin: 0 0 28px; font-size: clamp(1.6rem, 3vw, 2.35rem); }
.product-section .product-section-heading h2 { margin: 0; align-self: center; }
.product-description .article-content { max-width: 76ch; }
.product-description .article-content :is(h2, h3, h4, h5, h6) { margin-bottom: 7px; font-size: 1rem; font-weight: 700; line-height: 1.75; }
.product-description .article-content :is(h2, h3, h4, h5, h6) + * { margin-top: 6px; }
.product-points { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.product-points article { display: flex; gap: 16px; padding: 24px; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; }
.product-points article span { color: var(--color-peach); font-size: .8rem; font-weight: 700; }
.product-points article p { margin: 0; font-weight: 500; }
.product-spec-table { overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-medium); }
.product-spec-table div { display: grid; grid-template-columns: minmax(160px, .35fr) 1fr; border-bottom: 1px solid var(--color-line); }
.product-spec-table div:last-child { border-bottom: 0; }
.product-spec-table dt, .product-spec-table dd { margin: 0; padding: 15px 20px; }
.product-spec-table dt { background: #f8f3ed; font-weight: 500; }
.product-official-images-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.product-official-image { overflow: hidden; margin: 0; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; }
.product-official-image a { display: block; }
.product-official-image img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; transition: transform .4s ease; }
.product-official-image a:hover img { transform: scale(1.025); }
.product-official-images-note { margin: 14px 0 0; color: var(--color-muted); font-size: .72rem; }
.product-youtube-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.product-youtube-card { overflow: hidden; padding: 0; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; color: var(--color-ink); text-align: left; cursor: pointer; }
.product-youtube-thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; background: #eee; }
.product-youtube-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.product-youtube-card:hover .product-youtube-thumb img { transform: scale(1.035); }
.product-youtube-play { position: absolute; top: 50%; left: 50%; display: grid; width: 64px; height: 64px; place-items: center; border: 3px solid rgba(255,255,255,.96); border-radius: 50%; background: rgba(211,78,65,.96); color: #fff; font-size: 0; line-height: 1; box-shadow: 0 5px 18px rgba(42,30,25,.34), 0 0 0 5px rgba(255,255,255,.25); translate: -50% -50%; transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
.product-youtube-play::before { width: 0; height: 0; margin-left: 5px; border-top: 11px solid transparent; border-bottom: 11px solid transparent; border-left: 18px solid currentColor; content: ""; transform: translateY(5px); }
.product-youtube-card:hover .product-youtube-play, .product-youtube-card:focus-visible .product-youtube-play { background: #bd4036; box-shadow: 0 7px 22px rgba(42,30,25,.4), 0 0 0 6px rgba(255,255,255,.34); transform: scale(1.07); }
@media (min-width: 769px) {
	.product-youtube-play::before { transform: translateY(9px); }
}
.product-youtube-official { position: absolute; top: 10px; left: 10px; padding: 5px 9px; border-radius: 999px; background: #d95c50; color: #fff; font-size: .7rem; font-weight: 700; }
.product-youtube-copy { display: grid; gap: 5px; padding: 15px 17px 18px; }
.product-youtube-copy strong { font-size: .9rem; line-height: 1.55; }
.product-youtube-copy small { color: var(--color-muted); font-size: .72rem; }
.product-youtube-note { margin: 14px 2px 0; color: var(--color-muted); font-size: .72rem; line-height: 1.75; }
.youtube-modal[hidden] { display: none; }
.youtube-modal { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: 24px; opacity: 0; transition: opacity .2s ease; }
.youtube-modal.is-open { opacity: 1; }
.youtube-modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(35,30,26,.78); cursor: pointer; }
.youtube-modal-dialog { position: relative; z-index: 1; width: min(960px, 94vw); }
.youtube-modal-frame { overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--radius-medium); background: #000; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.youtube-modal-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.youtube-modal-close { position: absolute; z-index: 2; top: -46px; right: 0; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; background: #fff; color: #332a25; font-size: 1.55rem; line-height: 1; cursor: pointer; }
.youtube-modal-open { overflow: hidden; }
.product-bottom-cta { margin: 64px auto 0; text-align: center; }
.product-bottom-cta-button { display: flex; width: min(100%, 680px); min-height: 68px; margin-inline: auto; justify-content: center; padding: 18px 32px; font-size: 1.05rem; }
.product-bottom-cta p { margin: 12px 0 0; color: var(--color-muted); font-size: .72rem; }
.product-safety { width: 100%; max-width: none; margin: 38px 0 0; padding: 24px 28px; border-left: 4px solid var(--color-peach); border-radius: 4px var(--radius-medium) var(--radius-medium) 4px; background: #fff4ef; }
.product-safety strong { color: #8d5d51; }
.product-safety p { max-width: 82ch; margin: 8px 0 0; font-size: .88rem; }
.related-products { overflow: hidden; padding: 76px 0 72px; border-top: 1px solid var(--color-line); background: #fffdf9; }
.related-products-heading { margin-bottom: 28px; }
.related-products-heading h2 { margin: 0; font-size: clamp(1.45rem, 2.5vw, 2rem); }
.related-products-controls { position: absolute; z-index: 5; inset: 0; display: flex; align-items: center; justify-content: space-between; padding-inline: max(4px, calc((var(--carousel-outside) - 52px) / 2)); pointer-events: none; }
.related-products-controls button { display: grid; width: 52px; height: 52px; place-items: center; border: 2px solid #6f5548; border-radius: 50%; background: #fffaf3; color: #3d2c25; cursor: pointer; font-size: 1.55rem; font-weight: 800; line-height: 1; transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease; }
.related-products-controls button { pointer-events: auto; box-shadow: 0 8px 22px rgba(74,54,43,.22); }
.related-products-controls button:hover { border-color: #3d2c25; background: #6f5548; color: #fffdf9; transform: scale(1.06); }
.related-products-controls button:focus-visible { outline: 3px solid #8f665e; outline-offset: 2px; }
.related-products-viewport { --carousel-outside: max(18px, calc((100vw - min(1180px, calc(100vw - 36px))) / 2)); --carousel-overlay: rgba(255,253,249,.82); position: relative; overflow: hidden; margin-right: calc(var(--carousel-outside) * -1); margin-left: calc(var(--carousel-outside) * -1); padding-right: var(--carousel-outside); padding-left: var(--carousel-outside); }
.recently-viewed-viewport { --carousel-overlay: rgba(255,250,244,.82); }
.related-products-viewport::before, .related-products-viewport::after { position: absolute; z-index: 3; top: 0; bottom: 0; width: var(--carousel-outside); background: var(--carousel-overlay); content: ""; pointer-events: auto; }
.related-products-viewport::before { left: 0; }
.related-products-viewport::after { right: 0; }
.related-products-viewport .related-product-card { flex-basis: calc((min(1180px, calc(100vw - 36px)) - 72px) / 4.2); }
.related-products-viewport .related-product-card, .related-products-viewport .related-product-card:hover { box-shadow: none; }
.related-products-track { display: flex; gap: 18px; transition: transform .58s cubic-bezier(.22,.72,.25,1); will-change: transform; }
.related-products-track.is-jumping { transition: none; }

/* Editorial features and live product references. */
.lulunel-product-reference { position: relative; isolation: isolate; display: grid; overflow: hidden; gap: 18px; align-items: start; margin: 34px 0; padding: 22px; border: 1px solid var(--color-line); border-radius: 18px; background: #fffdf9; }
.lulunel-product-reference > :not(.lulunel-product-reference-genre-icon) { position: relative; z-index: 1; }
.lulunel-product-reference-summary { display: grid; width: 100%; grid-template-columns: clamp(150px, 19vw, 210px) minmax(0, 1fr); gap: 24px; align-items: start; color: inherit; text-decoration: none; }
.lulunel-product-reference-genre-icon { position: absolute; z-index: 0; top: -24px; right: -14px; width: clamp(120px, 17.5%, 175px); height: auto; opacity: .2; pointer-events: none; transform: rotate(13deg); transform-origin: center; user-select: none; }
.lulunel-product-reference-image { display: block; overflow: hidden; border: 1px solid rgba(219,195,159,.65); border-radius: 13px; background: #f5f3ef; aspect-ratio: 1; }
.lulunel-product-reference-image img { width: 100%; height: 100%; object-fit: cover; }
.lulunel-product-reference-copy h3 { margin: 0 0 10px; font-size: clamp(1.1rem, 2vw, 1.38rem); }
.lulunel-product-reference-price { margin: 0 0 14px; font-weight: 700; }
.lulunel-product-reference-price small { margin-left: 5px; color: var(--color-muted); font-weight: 400; }
.lulunel-product-reference-reason { display: flex; grid-column: 1 / -1; gap: 11px; align-items: flex-end; margin-top: 0; padding-top: 2px; }
.lulunel-product-reference-reason > img { width: 82px; height: 82px; flex: none; object-fit: contain; }
.lulunel-product-reference-bubble { position: relative; min-width: 0; padding: 12px 15px; border: 1px solid #d9c3a5; border-radius: 16px; background: rgba(255,250,239,.94); box-shadow: 0 5px 14px rgba(117,87,55,.06); }
.lulunel-product-reference-bubble::before, .lulunel-product-reference-bubble::after { position: absolute; content: ""; }
.lulunel-product-reference-bubble::before { left: -10px; bottom: 18px; border-width: 8px 10px 8px 0; border-style: solid; border-color: transparent #d9c3a5 transparent transparent; }
.lulunel-product-reference-bubble::after { left: -8px; bottom: 19px; border-width: 7px 9px 7px 0; border-style: solid; border-color: transparent #fffaf0 transparent transparent; }
.lulunel-product-reference-comment { margin-top: 12px; padding: 11px 13px; border-radius: 10px; background: #f4f7f4; }
.lulunel-product-reference-bubble p, .lulunel-product-reference-comment p { margin: 0; }
.lulunel-product-reference-action { margin: 18px 0 0; }
.lulunel-product-reference-button { min-height: 44px; gap: 12px; padding: 0 19px; border: 1px solid #c8aa82; background: #f4e4cb; color: #5b4b3d; box-shadow: 0 7px 18px rgba(117,87,55,.1); transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.lulunel-product-reference-button span { font-size: 1.05em; }
.lulunel-product-reference-button:hover { border-color: #ad8960; background: #ecd5b4; color: #4f4034; text-decoration: none; box-shadow: 0 9px 22px rgba(117,87,55,.15); }
.lulunel-product-reference-button:focus-visible { outline: 3px solid rgba(112,128,104,.55); outline-offset: 3px; }
.lulunel-product-reference-mobile-arrow { display: none; }
.genre-editorial { margin-top: 72px; }
.product-editorial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.product-editorial-card { display: flex; min-height: 150px; padding: 20px; flex-direction: column; border: 1px solid var(--color-line); border-radius: 14px; background: #fffdf9; color: inherit; text-decoration: none; }
.product-editorial-card span { color: #8b665d; font-size: .75rem; font-weight: 700; }
.product-editorial-card strong { margin: 8px 0 18px; line-height: 1.55; }
.product-editorial-card small { margin-top: auto; text-align: right; }
.feature-lead { max-width: 780px; font-size: 1.08rem; line-height: 1.9; }

@media (max-width: 720px) {
	.lulunel-product-reference { gap: 12px; padding: 14px; }
	.lulunel-product-reference-summary { grid-template-columns: minmax(96px, 32%) minmax(0, 1fr); gap: 14px; }
	.lulunel-product-reference-copy { position: relative; min-height: 100%; padding-right: 30px; }
	.lulunel-product-reference-copy h3 { margin-bottom: 5px; font-size: .9rem; line-height: 1.45; }
	.lulunel-product-reference-price { margin-bottom: 9px; font-size: .82rem; }
	.lulunel-product-reference-reason { gap: 7px; font-size: .8rem; }
	.lulunel-product-reference-reason > img { display: none; }
	.lulunel-product-reference-bubble { width: 100%; padding: 9px 10px; border-radius: 13px; }
	.lulunel-product-reference-bubble::before, .lulunel-product-reference-bubble::after { display: none; }
	.lulunel-product-reference-comment { padding: 9px 10px; font-size: .8rem; }
	.lulunel-product-reference-action { display: none; }
	.lulunel-product-reference-mobile-arrow { position: absolute; right: 0; bottom: 0; display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #c8aa82; border-radius: 50%; background: #f4e4cb; color: #5b4b3d; font-size: .88rem; font-weight: 700; line-height: 1; }
	.lulunel-product-reference-genre-icon { top: -16px; right: -17px; width: 105px; }
	.product-editorial-grid { grid-template-columns: 1fr; }
}
.related-product-card { display: block; overflow: hidden; flex: 0 0 calc((100% - 54px) / 4); min-width: 0; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; color: var(--color-ink); text-decoration: none; box-shadow: 0 8px 22px rgba(91,77,63,.055); }
.related-product-image { display: block; overflow: hidden; width: 100%; aspect-ratio: 1; border-bottom: 1px solid var(--color-line); background: #f3f1ed; }
.related-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.related-product-card:hover .related-product-image img { transform: scale(1.035); }
.related-product-copy { display: block; padding: 18px 20px 20px; }
.related-product-copy small, .related-product-copy strong, .related-product-copy > span { display: block; }
.related-product-copy small { margin-bottom: 4px; color: #927d67; font-size: .68rem; }
.related-product-copy strong { overflow: hidden; min-height: 3em; font-family: var(--font-display); font-size: .98rem; font-weight: 500; line-height: 1.5; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.related-product-copy > span { margin-top: 7px; color: #8f4b43; font-size: .8rem; font-weight: 700; }
.review-summary-meta { margin: -16px 0 24px; color: var(--color-muted); font-size: .82rem; }
.review-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.review-comparison article { padding: 24px; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; }
.review-comparison .review-good { border-top: 4px solid var(--color-sage); }
.review-comparison .review-concern { border-top: 4px solid var(--color-peach); }
.review-comparison h3 { margin: 0 0 10px; font-size: 1.08rem; }
.review-comparison p { margin: 0; color: var(--color-muted); font-size: .92rem; }
.review-purchase-notes { margin-top: 16px; padding: 20px 24px; border-radius: var(--radius-medium); background: #f8f3ed; }
.review-purchase-notes p { margin: 7px 0 0; font-size: .88rem; }
.review-disclaimer { margin: 13px 2px 0; color: var(--color-muted); font-size: .72rem; }

.genre-archive-header { max-width: 760px; margin-bottom: 22px; }
.genre-archive-title { display: flex; align-items: center; gap: 13px; }
.genre-archive-title .section-guide, .genre-archive-title .page-title { align-self: center; }
.genre-description { width: 100%; max-width: none; margin: 0 0 56px; color: var(--color-muted); }
.genre-description.has-navigation { margin-bottom: 20px; }
.genre-description-desktop > :first-child { margin-top: 0; }
.genre-description-desktop > :last-child { margin-bottom: 0; }
.genre-description-mobile { display: none; }
.genre-navigation-jump { margin: 0 0 56px; }
.genre-navigation-jump button { display: inline-flex; align-items: center; gap: 14px; min-height: 48px; padding: 9px 12px 9px 17px; border: 2px solid #b89c85; border-radius: 12px; background: #fffdf9; color: #60483b; cursor: pointer; font-family: var(--font-display); font-size: .9rem; font-weight: 700; line-height: inherit; transition: border-color .18s ease, background-color .18s ease; }
.genre-navigation-jump button > span:last-child { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: #f8f4ec; font-size: 1rem; line-height: 1; }
.genre-navigation-jump button:hover, .genre-navigation-jump button:focus-visible { border-color: #80624f; background: #f8f4ec; }
.genre-navigation-jump button:focus-visible { outline: 3px solid #c7aa8f; outline-offset: 3px; }
.genre-navigation { margin-top: 44px; }
.genre-navigation { scroll-margin-top: 110px; }
.genre-navigation h3 { margin: 0 0 18px; color: #70584a; font-family: var(--font-display); font-size: 1rem; font-weight: 700; }
.genre-results .section-heading h2 { font-size: clamp(1.45rem, 2.5vw, 2rem); }
.genre-tree-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.genre-group-card { padding: 22px; border: 1px solid var(--color-line); border-radius: var(--radius-medium); background: #fff; box-shadow: 0 10px 30px rgba(91, 77, 63, .045); }
.genre-group-card.is-empty { background: #fcfaf7; box-shadow: none; }
.genre-group-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 1.05rem; font-weight: 700; text-decoration: none; }
.genre-group-title small { flex: none; color: var(--color-muted); font-size: .68rem; font-weight: 400; }
.genre-leaf-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }
.genre-leaf-links a { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; background: #eef2eb; color: #64705e; font-size: .72rem; text-decoration: none; }
.genre-leaf-links a.is-empty { background: #f5f1ec; color: #9a9188; }
.genre-leaf-links a span { display: grid; min-width: 17px; height: 17px; place-items: center; border-radius: 50%; background: #fff; font-size: .62rem; }
.genre-results { margin-top: 40px; }
.genre-results .post-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Shared visual frame: bold section boundaries, lighter-but-visible card frames. */
.site-header { border-bottom-width: 6px; }
.site-footer,
.discovery-browser,
.recently-viewed,
.related-products { border-top-width: 6px; }

.hero-search-button,
.category-card,
.category-featured-product img,
.discovery-filter-buttons a,
.discovery-filter-disabled,
.discovery-result,
.discovery-product-image,
.post-card,
.empty-state,
.product-media-frame,
.product-tags a,
.product-sticky-cta-image,
.recently-viewed-card,
.product-points article,
.product-spec-table,
.product-official-image,
.product-youtube-card,
.lulunel-product-reference,
.lulunel-product-reference-image,
.lulunel-product-reference-bubble,
.product-editorial-card,
.related-product-card,
.review-comparison article,
.genre-group-card { border-width: 2px; }

.related-product-image { border-bottom-width: 2px; }

@media (max-width: 1000px) and (min-width: 781px) {
	.genre-results .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) and (min-width: 781px) {
	.category-grid-all { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.related-product-card { flex-basis: calc((100% - 18px) / 2); }
	.related-products-viewport .related-product-card { flex-basis: calc((100% - 18px) / 2); }
}

@media (max-width: 780px) {
	.header-inner { min-height: 62px; }
	.fixed-breadcrumb { max-width: calc(100vw - 20px); min-height: 0; flex-wrap: wrap; gap: 3px 6px; padding: 7px 10px; overflow: visible; font-size: .68rem; white-space: normal; }
	.fixed-breadcrumb > [aria-current="page"] { flex: 0 1 auto; white-space: normal; }
	.brand-tagline, .main-navigation { display: none; }
	.custom-logo, .brand-mark { width: 52px; height: 52px; }
	.site-branding { gap: 10px; }
	.brand-name { font-size: clamp(.95rem, 4.2vw, 1.05rem); line-height: 1.35; }
	.brand-name-detail { display: none; }
	.floating-menu-toggle { top: 7px; right: 7px; min-width: 140px; min-height: 44px; grid-template-columns: 38px minmax(0, 1fr) 20px; padding: 3px 8px 3px 3px; transition: min-width .24s ease, width .24s ease, padding .24s ease, border-color .2s ease, box-shadow .2s ease; }
	.floating-menu-icon { width: 38px; height: 38px; }
	.floating-menu-icon img { width: 36px; height: 36px; }
	.floating-menu-copy small { font-size: .56rem; }
	.floating-menu-copy strong { font-size: .74rem; }
	.floating-menu-toggle > .floating-menu-mark { right: 7px; }
	.floating-menu-icon,
	.floating-menu-copy { transform: scale(1); transform-origin: center right; opacity: 1; transition: opacity .28s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility 0s linear; }
	html.mobile-menu-compact .floating-menu-toggle { width: 44px; min-width: 44px; height: 44px; min-height: 44px; max-height: 44px; grid-template-columns: 1fr; grid-template-rows: 1fr; padding: 0; }
	html.mobile-menu-compact .floating-menu-toggle .floating-menu-icon,
	html.mobile-menu-compact .floating-menu-toggle .floating-menu-copy { position: absolute; visibility: hidden; opacity: 0; pointer-events: none; transform: scale(.7); transition: opacity .22s ease, transform .24s cubic-bezier(.2,.7,.2,1), visibility 0s linear .24s; }
	html.mobile-menu-compact .floating-menu-toggle .floating-menu-mark { font-size: 1.16rem; }
	.site-menu-panel { padding: 24px 20px 52px; }
  .site-menu-content { gap: 44px; padding-top: 78px; }
	.site-menu-section-heading { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; margin-bottom: 18px; }
	.site-menu-section-heading img { width: 44px; height: 44px; }
	.site-menu-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.site-menu-category-card { min-height: 86px; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; padding: 12px; }
	.site-menu-category-card img { width: 34px; height: 34px; }
	.site-menu-category-card strong { font-size: .78rem; }
	.site-menu-category-card small { font-size: .58rem; }
	.site-menu-finder { padding-top: 38px; }
	.site-menu-finder-groups { grid-template-columns: 1fr; gap: 15px; }
	.site-menu-finder-group { grid-template-columns: 1fr; gap: 7px; }
	.site-menu-finder-group > p { margin-top: 0; font-size: .72rem; }
	.site-menu-finder-group a { min-height: 34px; padding: 6px 8px 6px 10px; font-size: .72rem; }
	.hero-inner { grid-template-columns: 1fr; text-align: center; }
	.hero-copy { margin-inline: auto; }
	.hero-search-button { min-width: min(100%, 278px); grid-template-columns: 64px minmax(0, 1fr) 30px; margin-inline: auto; }
	.hero-search-button-icon { width: 56px; height: 56px; }
	.hero-search-button-icon img { width: 53px; height: 53px; }
	.hero-visual { order: -1; }
	.hero-logo { max-width: 260px; }
	.section { padding: 64px 0; }
	.section-heading { display: block; }
	.section-heading p { margin-top: 12px; }
	.section-heading-title { grid-template-columns: 48px minmax(0, 1fr); gap: 7px 10px; }
	.product-section-heading { grid-template-columns: 48px minmax(0, 1fr); gap: 7px 10px; }
	.section-guide { width: 48px; height: 48px; padding: 0; }
	.section-heading-title .section-guide { width: 43px; height: 43px; }
	.product-section-heading .section-guide { width: 43px; height: 43px; }
	.section-heading-title .eyebrow { margin-top: 0; margin-bottom: 0; }
	.category-grid, .post-grid { grid-template-columns: 1fr; }
	.category-browser-section-article .category-grid-all { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.article-list { gap: 10px; }
	.article-list .post-card { grid-template-columns: 64px minmax(0, 1fr); min-height: 64px; }
	.article-list .post-card-thumb { width: 100%; height: 100%; min-height: 64px; margin: 0; }
	.article-list .post-card-body { padding: 10px 48px 10px 18px; }
	.article-list .post-card::after { right: 16px; font-size: 1.1rem; }
	.article-list .post-card h2 { margin-bottom: 0; font-size: .98rem; line-height: 1.45; }
	.article-list .post-card p { font-size: .72rem; -webkit-line-clamp: 1; }
	.article-list .post-card-meta { display: none; }
	.category-grid-all { grid-template-columns: 1fr; gap: 12px; }
	.category-grid-all .category-card { min-height: 138px; padding: 19px; }
	.category-grid-all .category-icon { margin-bottom: 17px; }
	.category-featured-product { display: grid; grid-template-columns: 42% minmax(0, 1fr); align-items: center; gap: 14px; }
	.category-featured-product img { width: 100%; margin-bottom: 0; }
	.category-featured-product small { margin-bottom: 4px; }
	.category-featured-product strong { font-size: .82rem; line-height: 1.5; }
	.discovery-browser { margin-top: 42px; padding-top: 34px; }
	.discovery-filter-group { grid-template-columns: 1fr; gap: 7px; }
	.discovery-filter-group > p { margin-top: 0; }
	.discovery-filter-buttons { gap: 8px; }
	.discovery-filter-buttons a, .discovery-filter-disabled { min-height: 42px; gap: 11px; padding: 8px 11px 8px 13px; font-size: .8rem; }
	.discovery-result { padding: 18px; }
	.discovery-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.discovery-page { padding-block: 52px; }
	.discovery-page-heading { grid-template-columns: 48px minmax(0, 1fr); gap: 6px 10px; }
	.discovery-page-heading .discovery-page-guide { width: 44px; height: 44px; }
	.discovery-page-title-row { gap: 9px; }
	.discovery-close { width: 30px; height: 30px; font-size: 1.15rem; }
	.genre-tree-grid { grid-template-columns: 1fr; }
	.genre-archive-header { margin-bottom: 18px; }
	.genre-description { margin-bottom: 38px; font-size: .9rem; line-height: 1.75; }
	.genre-description.has-navigation { margin-bottom: 16px; }
	.genre-description-desktop { display: none; }
	.genre-description-mobile { display: block; margin: 0; }
	.genre-navigation-jump { margin-bottom: 38px; }
	.genre-navigation { margin-top: 34px; }
	.footer-inner { display: block; }
	.product-detail { padding-top: 24px; }
	.product-hero { grid-template-columns: 1fr; }
	.product-summary { position: static; padding-top: 8px; }
	.product-summary h1 { font-size: clamp(1.5rem, 6.5vw, 2rem); line-height: 1.42; }
	.product-sticky-cta { padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
	.product-sticky-cta-inner { gap: 10px; }
	.product-sticky-cta-image { width: 42px; height: 42px; border-radius: 8px; }
	.product-sticky-cta-copy { display: block; }
	.product-sticky-cta-copy strong, .product-sticky-cta-copy span { display: block; }
	.product-sticky-cta-copy strong { font-size: .74rem; }
	.product-sticky-cta-copy span { margin-top: 1px; font-size: .82rem; }
	.product-sticky-cta-button { padding: 10px 14px; font-size: .78rem; }
	.recently-viewed { padding: 52px 0; }
	.recently-viewed-grid { grid-template-columns: 1fr; gap: 16px; }
	.recently-viewed-card.related-product-card { display: block; }
	.recently-viewed-card img { width: 100%; height: auto; }
	.recently-viewed-copy.related-product-copy { margin: 0; padding: 15px 17px 18px; }
	.recently-viewed-copy strong { font-size: .92rem; line-height: 1.5; }
	.related-products { padding: 56px 0 52px; }
	.related-products-heading { grid-template-columns: 43px minmax(0, 1fr); gap: 7px 10px; }
	.related-products-heading .section-guide { width: 43px; height: 43px; }
	.related-products-controls { margin-top: 0; padding-inline: max(2px, calc((var(--carousel-outside) - 44px) / 2)); }
	.related-products-controls button { width: 44px; height: 44px; font-size: 1.3rem; }
	.genre-results .post-card { display: grid; grid-template-columns: 42% minmax(0, 1fr); align-items: center; }
	.genre-results .post-card-thumb { width: 100%; height: auto; }
	.genre-results .post-card-body { padding: 14px 16px; }
	.genre-results .post-card h2 { margin-bottom: 0; font-size: .92rem; line-height: 1.5; }
	.product-points { grid-template-columns: 1fr; }
	.review-comparison { grid-template-columns: 1fr; }
	.product-spec-table div { grid-template-columns: 1fr; }
	.product-spec-table dt { padding-bottom: 5px; }
	.product-spec-table dd { padding-top: 5px; }
	.product-official-images-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.product-youtube-grid { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 640px) {
	.related-product-card { flex-basis: 78%; }
	.related-products-viewport .related-product-card { flex-basis: 78%; }
	.related-product-copy { padding: 15px 17px 18px; }
	.related-product-copy strong { font-size: .92rem; }
}

@media (prefers-reduced-motion: reduce) {
	[data-lulunel-scroll-reveal] { opacity: 1; animation: none; translate: none; }
	[data-lulunel-reveal-sequence] *, [data-lulunel-reveal-sequence] *::before { opacity: 1 !important; animation: none !important; translate: none !important; scale: none !important; rotate: none !important; }
	.category-featured-product::before { scale: 1 1; }
	.product-sticky-cta, .button-rakuten, .product-tags a { transition: none; }
	.recently-viewed-card, .related-products-track, .related-product-image img { transition: none; }
	.button-rakuten:hover, .button-rakuten:active { transform: none; }
	.product-tags a:hover, .product-tags a:active { transform: none; }
	.pjax-is-leaving [data-lulunel-pjax-container] { opacity: 1; transform: none; transition: none; }
	.pjax-loader { transition: none; }
	.pjax-loader-spinner { animation: none; }
}
