/*
Theme Name: GeneratePress Child
Theme URI: https://maroan.net/
Description: まろ庵（maroan.net）GeneratePress子テーマ
Author: まろ庵
Author URI: https://maroan.net/
Template: generatepress
Version: 1.21.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: generatepress-child
*/

/* -------------------------------------------------------------------------
   固定ページ：1カラム統一
   ------------------------------------------------------------------------- */

body.maroan-page-single-column #right-sidebar,
body.maroan-page-single-column #left-sidebar,
body.maroan-page-single-column .sidebar {
    display: none !important;
}

body.maroan-page-single-column #primary {
    width: 100%;
    max-width: 100%;
}

body.maroan-page-single-column.separate-containers .inside-article {
    margin-left: auto;
    margin-right: auto;
}

body.maroan-page-single-column .page-header,
body.maroan-page-single-column .page-header-image,
body.maroan-page-single-column .page-header-content {
    display: none !important;
}

body.maroan-static-page .site-main {
    background: linear-gradient(180deg, var(--mf-washi) 0%, #fffdf9 8rem, #fff 100%);
}

body.maroan-static-page .entry-content,
body.maroan-static-page .maroan-front-page__content,
body.maroan-static-page .maroan-product-hub-page__content {
    max-width: var(--maroan-page-width);
    margin-left: auto;
    margin-right: auto;
    padding: 2.5rem 1.25rem 4rem;
    font-family: var(--mf-sans);
    color: var(--mf-text);
    line-height: 2;
    letter-spacing: 0.03em;
}

body.maroan-static-page .maroan-front-page__content,
body.maroan-static-page .maroan-product-hub-page__content {
    padding-bottom: 0;
}

body.maroan-static-page .entry-content > .wp-block-heading.maroan-site-page-title,
body.maroan-static-page .entry-content > .wp-block-heading.maroan-product-hub-page-title,
body.maroan-static-page .entry-content > .wp-block-heading.maroan-front-page-title,
body.maroan-static-page .maroan-site-page-title,
body.maroan-static-page .maroan-product-hub-page-title,
body.maroan-static-page .maroan-product-hub__title,
body.maroan-static-page .maroan-front-page-title,
body.maroan-static-page .maroan-front-hub__title {
    margin: 0 0 1.75rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.65rem, 3.5vw, 2.1rem);
    font-weight: 500;
    letter-spacing: 0.12em;
    text-align: center;
    color: var(--mf-ink);
}

body.maroan-static-page .entry-content > .wp-block-heading.maroan-site-page-title::after,
body.maroan-static-page .entry-content > .wp-block-heading.maroan-product-hub-page-title::after,
body.maroan-static-page .entry-content > .wp-block-heading.maroan-front-page-title::after,
body.maroan-static-page .maroan-site-page-title::after,
body.maroan-static-page .maroan-product-hub-page-title::after,
body.maroan-static-page .maroan-product-hub__title::after,
body.maroan-static-page .maroan-front-page-title::after,
body.maroan-static-page .maroan-front-hub__title::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 2px;
    margin: 1rem auto 0;
    background: linear-gradient(90deg, transparent, var(--mf-gold), transparent);
}

body.maroan-static-page .entry-content p {
    color: var(--mf-text-muted);
    font-size: 0.95rem;
}

body.maroan-static-page .maroan-front-hub--fragment .maroan-front-hub__inner,
body.maroan-static-page .maroan-product-hub--fragment .maroan-product-hub__inner {
    max-width: none;
    padding: 0;
}

@media (max-width: 768px) {
    body.maroan-static-page .entry-content,
    body.maroan-static-page .maroan-front-page__content,
    body.maroan-static-page .maroan-product-hub-page__content {
        padding: 1.75rem 1rem 3rem;
    }
}

/* -------------------------------------------------------------------------
   商品詳細ページ（product CPT）
   ------------------------------------------------------------------------- */

.maroan-product-single__article {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

/* ファーストビュー */
.maroan-product-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
    margin-bottom: 2.5rem;
}

.maroan-product-hero__catch {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--mf-gold, #a8874f);
    letter-spacing: 0.02em;
}

.maroan-product-hero__title {
    margin: 0 0 0.75rem;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    line-height: 1.35;
}

.maroan-product-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
    color: var(--mf-text-muted, #5c6354);
}

.maroan-product-hero__badges .is-in-stock {
    color: #166534;
    font-weight: 600;
}

.maroan-product-hero__badges .is-out-of-stock {
    color: #b91c1c;
    font-weight: 600;
}

/* ギャラリー */
.maroan-product-gallery__main {
    margin: 0;
    background: var(--mf-washi, #f7f4ed);
    border: 1px solid var(--mf-border, #e5dfd2);
    border-radius: 2px;
    overflow: hidden;
}

.maroan-product-gallery__zoom {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.maroan-product-gallery__zoom img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.maroan-product-gallery__thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.maroan-product-gallery__thumb {
    flex: 0 0 calc(20% - 0.4rem);
    min-width: 56px;
    padding: 2px;
    border: 2px solid transparent;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.maroan-product-gallery__thumb.is-active,
.maroan-product-gallery__thumb:hover,
.maroan-product-gallery__thumb:focus-visible {
    border-color: var(--mf-gold, #a8874f);
    outline: none;
}

.maroan-product-gallery__thumb img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
}

/* 購入ブロック */
.maroan-product-purchase {
    padding: 1.25rem 1.35rem;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep, #f0ebe1) 100%);
    border: 1px solid var(--mf-border, #e5dfd2);
    border-radius: 2px;
    box-shadow: 0 4px 20px rgba(28, 36, 20, 0.05);
}

.maroan-product-purchase__title {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
}

.maroan-product-purchase__price {
    margin: 0 0 0.75rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.2;
}

.maroan-product-purchase__price-note {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    font-weight: 400;
    color: #64748b;
}

.maroan-product-trust {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    background: #fff;
    border: 1px solid #e8dfd4;
    border-radius: 8px;
    font-size: 0.85rem;
    line-height: 1.65;
    color: #334155;
}

.maroan-product-trust p {
    margin: 0 0 0.55rem;
}

.maroan-product-trust p:last-child {
    margin-bottom: 0;
}

.maroan-product-purchase__lead {
    margin: 0 0 1rem;
    font-size: 0.9rem;
    line-height: 1.65;
    color: #475569;
}

.maroan-product-purchase__actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.maroan-product-purchase__stripe {
    padding-top: 0.5rem;
    border-top: 1px dashed #d6cfc4;
}

.maroan-product-purchase__stripe-label {
    margin: 0 0 0.45rem;
    font-size: 0.8rem;
    color: #64748b;
}

.maroan-product-btn {
    display: block;
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    line-height: 1.4;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.maroan-product-btn--primary {
    background: var(--mf-moss, #3a4b05);
    color: #fff;
    border: 2px solid var(--mf-moss, #3a4b05);
}

.maroan-product-btn--primary:hover,
.maroan-product-btn--primary:focus-visible {
    background: var(--mf-ink, #1c2414);
    border-color: var(--mf-ink, #1c2414);
    color: #fff;
}

.maroan-product-btn--stripe {
    background: #635bff;
    color: #fff;
    border: 2px solid #635bff;
}

.maroan-product-btn--stripe:hover,
.maroan-product-btn--stripe:focus-visible {
    background: #4f46e5;
    border-color: #4f46e5;
    color: #fff;
}

.maroan-product-btn--rakuten {
    background: #fff;
    color: #bf0000;
    border: 2px solid #bf0000;
}

.maroan-product-btn--rakuten:hover,
.maroan-product-btn--rakuten:focus-visible {
    background: #bf0000;
    color: #fff;
}

.maroan-product-btn--phone {
    background: #fff;
    color: var(--mf-moss, #3a4b05);
    border: 2px solid var(--mf-moss, #3a4b05);
}

.maroan-product-btn--phone:hover,
.maroan-product-btn--phone:focus-visible {
    background: var(--mf-washi-deep, #f0ebe1);
    color: var(--mf-ink, #1c2414);
    border-color: var(--mf-gold, #a8874f);
}

/* 本文セクション */
.maroan-product-single__summary,
.maroan-product-single__features,
.maroan-product-single__usages,
.maroan-product-single__spec-wrap,
.maroan-product-spec {
    margin: 2rem 0;
    padding-top: 0;
    border-top: 0;
}

.maroan-product-single__summary h2,
.maroan-product-single__features h2,
.maroan-product-single__usages h2,
.maroan-product-spec__title {
    margin: 0 0 1rem;
    font-size: 1.25rem;
}

.maroan-product-single__summary p {
    margin: 0;
    line-height: 1.75;
    color: #334155;
}

.maroan-product-single__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-product-single__list li {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    background: #f8fafc;
    border-radius: 8px;
    line-height: 1.65;
}

.maroan-product-single__list li strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #1e293b;
}

.maroan-product-single__list li span {
    color: #475569;
}

/* 仕様表 */
.maroan-product-spec__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.maroan-product-spec__table > tbody > tr {
    border-bottom: 1px solid #e2e8f0;
}

.maroan-product-spec__table > tbody > tr > th {
    width: 28%;
    padding: 0.75rem 1rem 0.75rem 1em;
    text-align: left;
    font-weight: 600;
    color: #334155;
    vertical-align: top;
}

.maroan-product-spec__table > tbody > tr > td {
    padding: 0.75rem 0 0.75rem 1em;
    color: #475569;
    line-height: 1.6;
}

.maroan-product-spec__detail {
    width: 100%;
    border-collapse: collapse;
}

.maroan-product-spec__detail th {
    width: 40%;
    padding: 0.35rem 0.75rem 0.35rem 1em;
    font-weight: 500;
    color: #64748b;
    vertical-align: top;
}

.maroan-product-spec__detail td {
    padding: 0.35rem 0 0.35rem 1em;
    color: #475569;
}

/* ライトボックス */
.maroan-product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
}

.maroan-product-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.82);
}

.maroan-product-lightbox__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 2.5rem 3.5rem;
}

.maroan-product-lightbox__figure {
    margin: 0;
    max-width: min(92vw, 1100px);
    max-height: 86vh;
}

.maroan-product-lightbox__figure img {
    display: block;
    max-width: 100%;
    max-height: 86vh;
    width: auto;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

.maroan-product-lightbox__close,
.maroan-product-lightbox__nav {
    position: absolute;
    border: 0;
    background: rgba(255, 255, 255, 0.92);
    color: #1e293b;
    cursor: pointer;
    line-height: 1;
}

.maroan-product-lightbox__close {
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    font-size: 1.5rem;
}

.maroan-product-lightbox__nav {
    top: 50%;
    transform: translateY(-50%);
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    font-size: 1.75rem;
}

.maroan-product-lightbox__nav--prev {
    left: 1rem;
}

.maroan-product-lightbox__nav--next {
    right: 1rem;
}

.maroan-product-lightbox__counter {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    margin: 0;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #334155;
    font-size: 0.85rem;
}

body.maroan-product-lightbox-open {
    overflow: hidden;
}

/* 固定フッターCTA */
.maroan-product-single-page {
    padding-bottom: 5.5rem;
}

.maroan-product-footer-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99990;
    border-top: 1px solid #e8dfd4;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(8px);
}

.maroan-product-footer-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0.75rem 1rem;
}

.maroan-product-footer-cta__title {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.35;
}

.maroan-product-footer-cta__price {
    margin: 0.15rem 0 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--mf-gold, #a8874f);
}

.maroan-product-footer-cta__price span {
    margin-left: 0.25rem;
    font-size: 0.75rem;
    font-weight: 400;
    color: #64748b;
}

.maroan-product-footer-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex-shrink: 0;
}

.maroan-product-footer-cta__btn {
    width: auto;
    min-width: 9rem;
    padding: 0.7rem 1rem;
    font-size: 0.85rem;
}

/* 下部CTA */
.maroan-product-single__cta-bottom {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 2px solid #e8dfd4;
}

.maroan-product-single__cta-bottom .maroan-product-purchase__title {
    font-size: 1.2rem;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .maroan-product-hero {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .maroan-product-gallery__thumb {
        flex: 0 0 calc(25% - 0.38rem);
    }

    .maroan-product-spec__table > tbody > tr > th {
        width: 34%;
        padding-right: 0.75rem;
    }

    .maroan-product-footer-cta__inner {
        flex-direction: column;
        align-items: stretch;
    }

    .maroan-product-footer-cta__actions {
        width: 100%;
    }

    .maroan-product-footer-cta__btn {
        width: 100%;
    }

    .maroan-product-lightbox__dialog {
        padding: 3rem 1rem 2.5rem;
    }

    .maroan-product-lightbox__nav {
        display: none;
    }
}

/* -------------------------------------------------------------------------
   商品一覧（カテゴリ）
   ------------------------------------------------------------------------- */

.maroan-product-archive__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

.maroan-product-archive__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 1.25rem;
    font-size: 0.85rem;
    color: #64748b;
}

.maroan-product-archive__breadcrumb a {
    color: #8b4513;
    text-decoration: none;
    font-weight: 600;
}

.maroan-product-archive__breadcrumb a:hover,
.maroan-product-archive__breadcrumb a:focus-visible {
    text-decoration: underline;
}

.maroan-product-archive__banner {
    margin: 0 0 1.25rem;
    border-radius: 8px;
    overflow: hidden;
}

.maroan-product-archive__banner img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
}

.maroan-product-archive__header {
    margin-bottom: 1.75rem;
}

.maroan-product-archive__title {
    margin: 0 0 0.5rem;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
}

.maroan-product-archive__description {
    margin: 0 0 0.5rem;
    color: #475569;
    line-height: 1.7;
}

.maroan-product-archive__note {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
    color: #64748b;
    line-height: 1.6;
}

.maroan-product-archive__count {
    margin: 0;
    font-size: 0.9rem;
    color: #64748b;
}

.maroan-product-archive__count-note {
    color: #8b4513;
    font-weight: 600;
}

.maroan-product-archive__filters {
    margin-bottom: 1.5rem;
    padding: 1rem 1.1rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
}

.maroan-product-archive-filter__row {
    margin-bottom: 0.85rem;
}

.maroan-product-archive-filter__row:last-child {
    margin-bottom: 0;
}

.maroan-product-archive-filter__row--split {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.maroan-product-archive-filter__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #475569;
}

.maroan-product-archive-filter__controls {
    display: flex;
    gap: 0.5rem;
}

.maroan-product-archive-filter__input,
.maroan-product-archive-filter__select {
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 0.9rem;
    background: #fff;
}

.maroan-product-archive-filter__input {
    flex: 1;
}

.maroan-product-archive-filter__submit {
    flex-shrink: 0;
    padding: 0.55rem 1rem;
    border: 0;
    border-radius: 6px;
    background: #8b4513;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.maroan-product-archive-filter__submit:hover,
.maroan-product-archive-filter__submit:focus-visible {
    background: #6d3610;
}

.maroan-product-archive-filter__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px dashed #d6cfc4;
}

.maroan-product-archive-filter__active {
    margin: 0;
    font-size: 0.85rem;
    color: #64748b;
}

.maroan-product-archive-filter__clear {
    font-size: 0.85rem;
    font-weight: 600;
    color: #8b4513;
    text-decoration: none;
}

.maroan-product-archive-filter__clear:hover,
.maroan-product-archive-filter__clear:focus-visible {
    text-decoration: underline;
}

.maroan-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-product-card {
    margin: 0;
}

.maroan-product-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.maroan-product-card__link:hover,
.maroan-product-card__link:focus-visible {
    border-color: #d6cfc4;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.maroan-product-card__thumb {
    aspect-ratio: 1 / 1;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
}

.maroan-product-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.maroan-product-card__noimg {
    color: #94a3b8;
    font-size: 0.85rem;
}

.maroan-product-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.9rem 1rem 1rem;
    flex: 1;
}

.maroan-product-card__catch {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #8b4513;
    line-height: 1.4;
}

.maroan-product-card__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.45;
}

.maroan-product-card__sku {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
}

.maroan-product-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-top: auto;
    padding-top: 0.35rem;
}

.maroan-product-card__price {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
}

.maroan-product-card__stock {
    font-size: 0.78rem;
    font-weight: 600;
}

.maroan-product-card__stock.is-in-stock {
    color: #166534;
}

.maroan-product-card__stock.is-out-of-stock {
    color: #b91c1c;
}

.maroan-product-archive__pagination {
    margin-top: 2rem;
}

.maroan-product-archive__pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

.maroan-product-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.65rem;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    color: #334155;
    text-decoration: none;
}

.maroan-product-archive__pagination .page-numbers.current {
    background: #8b4513;
    border-color: #8b4513;
    color: #fff;
}

.maroan-product-archive__empty {
    margin: 2rem 0 0;
    padding: 2rem;
    border: 1px dashed #d6cfc4;
    border-radius: 10px;
    text-align: center;
    color: #64748b;
}

@media (max-width: 768px) {
    .maroan-product-archive-filter__row--split {
        grid-template-columns: 1fr;
    }

    .maroan-product-archive-filter__controls {
        flex-direction: column;
    }

    .maroan-product-archive-filter__submit {
        width: 100%;
    }

    .maroan-product-hub__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* -------------------------------------------------------------------------
   まろ庵ブランド共通（格式高い和モダン）
   ------------------------------------------------------------------------- */

.maroan-brand-page {
    --mf-ink: #1c2414;
    --mf-moss: #3a4b05;
    --mf-gold: #a8874f;
    --mf-gold-light: #d4bc8e;
    --mf-washi: #f9f6f0;
    --mf-washi-deep: #f0ebe1;
    --mf-border: #e5ddd0;
    --mf-text: #3d3a35;
    --mf-text-muted: #6b6560;
    --mf-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
    --mf-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
    --maroan-page-width: 1080px;
}

/* -------------------------------------------------------------------------
   商品ハブページ
   ------------------------------------------------------------------------- */

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-breadcrumb,
.maroan-product-hub-page .maroan-product-hub__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin: 0 0 1.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: var(--mf-text-muted);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-breadcrumb a,
.maroan-product-hub-page .maroan-product-hub__breadcrumb a {
    color: var(--mf-moss);
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-breadcrumb a:hover,
.maroan-product-hub-page .maroan-product-hub__breadcrumb a:hover {
    color: var(--mf-gold);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-hero-image,
.maroan-product-hub-page .maroan-product-hub__hero {
    margin: 0 0 2rem;
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(28, 36, 20, 0.1);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-hero-image img,
.maroan-product-hub-page .maroan-product-hub__hero img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 340px;
    object-fit: contain;
}

.maroan-product-hub-page .maroan-product-hub__intro {
    max-width: 38rem;
    margin: 0 0 1.75rem;
    color: var(--mf-text-muted);
    font-size: 0.95rem;
    line-height: 2;
    letter-spacing: 0.04em;
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-trust,
.maroan-product-hub-page .maroan-product-hub__trust {
    margin: 0 auto 2.25rem;
    max-width: 44rem;
    padding: 1.5rem 1.75rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    font-size: 0.92rem;
    line-height: 1.95;
    color: var(--mf-text-muted);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-trust p,
.maroan-product-hub-page .maroan-product-hub__trust p {
    margin: 0 0 0.75rem;
    text-align: center;
    letter-spacing: 0.03em;
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-trust p:last-child,
.maroan-product-hub-page .maroan-product-hub__trust p:last-child {
    margin-bottom: 0;
}

.maroan-product-hub-page .maroan-product-hub__section {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--mf-border);
}

.maroan-product-hub-page .maroan-product-hub__section-title {
    margin: 0 0 0.5rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--mf-border);
    font-family: var(--mf-serif);
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-align: center;
    position: relative;
}

.maroan-product-hub-page .maroan-product-hub__section-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 2.5rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-product-hub-page .maroan-product-hub__section-title a {
    color: var(--mf-ink);
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-product-hub-page .maroan-product-hub__section-title a:hover,
.maroan-product-hub-page .maroan-product-hub__section-title a:focus-visible {
    color: var(--mf-gold);
}

.maroan-product-hub-page .maroan-product-hub__section-desc {
    margin: 0.75rem 0 1.25rem;
    color: var(--mf-text-muted);
    font-size: 0.9rem;
    line-height: 1.8;
    letter-spacing: 0.03em;
    text-align: center;
}

.maroan-product-hub-page .maroan-product-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-product-hub-page .maroan-product-hub__card-link {
    display: flex;
    flex-direction: column;
    min-height: 5rem;
    padding: 0;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(28, 36, 20, 0.04);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.maroan-product-hub-page .maroan-product-hub__card-link:hover,
.maroan-product-hub-page .maroan-product-hub__card-link:focus-visible {
    transform: translateY(-2px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 12px 28px rgba(28, 36, 20, 0.09);
}

.maroan-product-hub-page .maroan-product-hub__card-media {
    display: block;
    aspect-ratio: 16 / 9;
    background: var(--mf-washi);
    overflow: hidden;
}

.maroan-product-hub-page .maroan-product-hub__card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-product-hub-page .maroan-product-hub__card-link:hover .maroan-product-hub__card-media img,
.maroan-product-hub-page .maroan-product-hub__card-link:focus-visible .maroan-product-hub__card-media img {
    transform: scale(1.03);
}

.maroan-product-hub-page .maroan-product-hub__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
}

.maroan-product-hub-page .maroan-product-hub__card-label {
    font-family: var(--mf-serif);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--mf-ink);
    line-height: 1.45;
}

.maroan-product-hub-page .maroan-product-hub__card-count {
    font-size: 0.76rem;
    color: var(--mf-gold);
    letter-spacing: 0.08em;
}

.maroan-product-hub-page .maroan-product-hub__btn {
    width: auto;
    display: inline-block;
    border-radius: 2px;
    letter-spacing: 0.1em;
}

.maroan-product-hub-page .maroan-product-hub__btn.maroan-product-btn--primary {
    background: var(--mf-moss);
    border-color: var(--mf-moss);
}

.maroan-product-hub-page .maroan-product-hub__empty {
    margin-top: 2rem;
    padding: 2rem;
    border: 1px dashed var(--mf-border);
    border-radius: 2px;
    text-align: center;
    color: var(--mf-text-muted);
    background: var(--mf-washi);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-faq-title,
.maroan-product-hub-page .maroan-product-hub__faq-title {
    margin: 3rem 0 1.25rem;
    padding: 0 0 0.75rem;
    border: 0;
    border-bottom: 1px solid var(--mf-border);
    font-family: var(--mf-serif);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-align: center;
    position: relative;
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-faq-title::after,
.maroan-product-hub-page .maroan-product-hub__faq-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 2.5rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-product-hub-page .maroan-product-hub__faq {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.maroan-product-hub-page .maroan-product-hub__faq-list {
    display: grid;
    gap: 0.75rem;
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-faq-item,
.maroan-product-hub-page .maroan-product-hub__faq-item {
    border: 1px solid var(--mf-border);
    border-left: 2px solid var(--mf-gold-light);
    border-radius: 2px;
    background: #fffdf9;
    padding: 0.9rem 1.1rem;
    box-shadow: 0 2px 10px rgba(28, 36, 20, 0.04);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-faq-item summary,
.maroan-product-hub-page .maroan-product-hub__faq-item summary {
    cursor: pointer;
    font-family: var(--mf-serif);
    font-weight: 500;
    font-size: 0.92rem;
    letter-spacing: 0.03em;
    color: var(--mf-ink);
}

.maroan-product-hub-page .maroan-product-hub-page__content .maroan-product-hub-faq-item p,
.maroan-product-hub-page .maroan-product-hub__faq-item p {
    margin: 0.75rem 0 0;
    color: var(--mf-text-muted);
    line-height: 1.8;
    letter-spacing: 0.02em;
}

.maroan-product-hub-page .maroan-product-hub--fragment {
    margin-top: 0;
}

/* -------------------------------------------------------------------------
   サイト固定ページ（ショップ概要・お問い合わせ・特商法など）
   ------------------------------------------------------------------------- */

.maroan-site-page .entry-content .wp-block-table {
    margin: 2rem 0;
}

.maroan-site-page .entry-content table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.maroan-site-page .entry-content th,
.maroan-site-page .entry-content td {
    padding: 0.85rem 1rem;
    border: 1px solid var(--mf-border);
    vertical-align: top;
    text-align: left;
}

.maroan-site-page .entry-content th {
    width: 32%;
    background: var(--mf-washi-deep);
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--mf-ink);
}

.maroan-site-page .entry-content td {
    background: #fffdf9;
    color: var(--mf-text-muted);
}

@media (max-width: 768px) {
    .maroan-product-hub-page .maroan-product-hub__grid {
        grid-template-columns: 1fr;
    }

    .maroan-site-page .entry-content th {
        width: 38%;
    }

    .maroan-product-archive-page .maroan-product-archive__inner,
    .maroan-product-single-page .maroan-product-single__article {
        padding: 1.75rem 1rem 3rem;
    }
}

/* -------------------------------------------------------------------------
   商品カテゴリ一覧 — 格式高い和モダン
   ------------------------------------------------------------------------- */

.maroan-product-archive-page .page-header {
    display: none;
}

.maroan-product-archive-page .site-main {
    background: linear-gradient(180deg, var(--mf-washi) 0%, #fffdf9 10rem, #fff 100%);
}

.maroan-product-archive-page .maroan-product-archive__inner {
    max-width: var(--maroan-page-width);
    padding: 2.5rem 1.25rem 4rem;
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-product-archive-page.separate-containers .site-main > .maroan-product-archive__inner,
.maroan-product-single-page.separate-containers .site-main > .maroan-product-single__article {
    margin-bottom: 0;
    background: transparent;
}

.maroan-product-archive-page .maroan-product-archive__breadcrumb {
    margin: 0 0 1.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: var(--mf-text-muted);
}

.maroan-product-archive-page .maroan-product-archive__breadcrumb a {
    color: var(--mf-moss);
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-product-archive-page .maroan-product-archive__breadcrumb a:hover,
.maroan-product-archive-page .maroan-product-archive__breadcrumb a:focus-visible {
    color: var(--mf-gold);
    text-decoration: none;
}

.maroan-product-archive-page .maroan-product-archive__banner {
    margin: 0 0 2rem;
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(28, 36, 20, 0.1);
}

.maroan-product-archive-page .maroan-product-archive__banner img {
    border-radius: 2px;
}

.maroan-product-archive-page .maroan-product-archive__title {
    margin: 0 0 1rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.75rem, 4vw, 2.35rem);
    font-weight: 500;
    letter-spacing: 0.12em;
    color: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-archive__title::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 2px;
    margin-top: 0.9rem;
    background: linear-gradient(90deg, transparent, var(--mf-gold), transparent);
}

.maroan-product-archive-page .maroan-product-archive__description {
    max-width: 38rem;
    color: var(--mf-text-muted);
    font-size: 0.95rem;
    line-height: 2;
    letter-spacing: 0.04em;
}

.maroan-product-archive-page .maroan-product-archive__note {
    color: var(--mf-text-muted);
    letter-spacing: 0.03em;
}

.maroan-product-archive-page .maroan-product-archive__count {
    color: var(--mf-text-muted);
    letter-spacing: 0.04em;
}

.maroan-product-archive-page .maroan-product-archive__count-note {
    color: var(--mf-gold);
}

.maroan-product-archive-page .maroan-product-archive__filters {
    margin-bottom: 2rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    box-shadow: 0 4px 16px rgba(28, 36, 20, 0.04);
}

.maroan-product-archive-page .maroan-product-archive-filter__label {
    font-family: var(--mf-serif);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-archive-filter__input,
.maroan-product-archive-page .maroan-product-archive-filter__select {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    color: var(--mf-text);
}

.maroan-product-archive-page .maroan-product-archive-filter__input:focus,
.maroan-product-archive-page .maroan-product-archive-filter__select:focus {
    border-color: var(--mf-gold-light);
    outline: none;
}

.maroan-product-archive-page .maroan-product-archive-filter__submit {
    border-radius: 2px;
    background: var(--mf-moss);
    letter-spacing: 0.08em;
}

.maroan-product-archive-page .maroan-product-archive-filter__submit:hover,
.maroan-product-archive-page .maroan-product-archive-filter__submit:focus-visible {
    background: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-archive-filter__footer {
    border-top-color: var(--mf-border);
}

.maroan-product-archive-page .maroan-product-archive-filter__active {
    color: var(--mf-text-muted);
}

.maroan-product-archive-page .maroan-product-archive-filter__clear {
    color: var(--mf-moss);
    letter-spacing: 0.04em;
}

.maroan-product-archive-page .maroan-product-archive-filter__clear:hover,
.maroan-product-archive-page .maroan-product-archive-filter__clear:focus-visible {
    color: var(--mf-gold);
}

.maroan-product-archive-page .maroan-product-grid {
    gap: 1.5rem;
}

.maroan-product-archive-page .maroan-product-card__link {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    box-shadow: 0 4px 20px rgba(28, 36, 20, 0.04);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.maroan-product-archive-page .maroan-product-card__link:hover,
.maroan-product-archive-page .maroan-product-card__link:focus-visible {
    transform: translateY(-3px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 14px 32px rgba(28, 36, 20, 0.1);
}

.maroan-product-archive-page .maroan-product-card__thumb {
    background: var(--mf-washi);
    overflow: hidden;
}

.maroan-product-archive-page .maroan-product-card__img {
    transition: transform 0.5s ease;
}

.maroan-product-archive-page .maroan-product-card__link:hover .maroan-product-card__img {
    transform: scale(1.03);
}

.maroan-product-archive-page .maroan-product-card__catch {
    color: var(--mf-gold);
    letter-spacing: 0.06em;
}

.maroan-product-archive-page .maroan-product-card__title {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-card__sku {
    color: var(--mf-text-muted);
}

.maroan-product-archive-page .maroan-product-card__price {
    color: var(--mf-ink);
    font-family: var(--mf-serif);
}

.maroan-product-archive-page .maroan-product-archive__pagination .page-numbers {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    color: var(--mf-text);
    letter-spacing: 0.04em;
}

.maroan-product-archive-page .maroan-product-archive__pagination .page-numbers.current {
    background: var(--mf-moss);
    border-color: var(--mf-moss);
}

.maroan-product-archive-page .maroan-product-archive__empty {
    border: 1px dashed var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi);
    color: var(--mf-text-muted);
    letter-spacing: 0.03em;
}

/* -------------------------------------------------------------------------
   商品詳細 — 格式高い和モダン
   ------------------------------------------------------------------------- */

.maroan-product-single-page .entry-header {
    display: none;
}

.maroan-product-single-page .site-main {
    background: linear-gradient(180deg, var(--mf-washi) 0%, #fffdf9 8rem, #fff 100%);
}

.maroan-product-single-page .maroan-product-single__article {
    max-width: var(--maroan-page-width);
    padding: 2.5rem 1.25rem 4rem;
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-product-single-page .maroan-product-hero__catch {
    font-family: var(--mf-serif);
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--mf-gold);
}

.maroan-product-single-page .maroan-product-hero__title {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--mf-ink);
}

.maroan-product-single-page .maroan-product-hero__badges {
    color: var(--mf-text-muted);
    letter-spacing: 0.03em;
}

.maroan-product-single-page .maroan-product-gallery__main {
    background: var(--mf-washi);
    border: 1px solid var(--mf-border);
    border-radius: 2px;
}

.maroan-product-single-page .maroan-product-gallery__thumb {
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-product-single-page .maroan-product-gallery__thumb.is-active,
.maroan-product-single-page .maroan-product-gallery__thumb:hover,
.maroan-product-single-page .maroan-product-gallery__thumb:focus-visible {
    border-color: var(--mf-gold);
}

.maroan-product-single-page .maroan-product-purchase {
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    box-shadow: 0 4px 20px rgba(28, 36, 20, 0.05);
}

.maroan-product-single-page .maroan-product-purchase__title {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--mf-ink);
}

.maroan-product-single-page .maroan-product-purchase__price {
    font-family: var(--mf-serif);
    color: var(--mf-ink);
    letter-spacing: 0.02em;
}

.maroan-product-single-page .maroan-product-purchase__price-note {
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-trust {
    background: #fffdf9;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    color: var(--mf-text-muted);
    letter-spacing: 0.02em;
}

.maroan-product-single-page .maroan-product-purchase__lead {
    color: var(--mf-text-muted);
    letter-spacing: 0.02em;
}

.maroan-product-single-page .maroan-product-purchase__stripe {
    border-top-color: var(--mf-border);
}

.maroan-product-single-page .maroan-product-btn {
    border-radius: 2px;
    letter-spacing: 0.08em;
}

.maroan-product-single-page .maroan-product-btn--primary {
    background: var(--mf-moss);
    border-color: var(--mf-moss);
}

.maroan-product-single-page .maroan-product-btn--primary:hover,
.maroan-product-single-page .maroan-product-btn--primary:focus-visible {
    background: var(--mf-ink);
    border-color: var(--mf-ink);
}

.maroan-product-single-page .maroan-product-single__summary,
.maroan-product-single-page .maroan-product-single__features,
.maroan-product-single-page .maroan-product-single__usages,
.maroan-product-single-page .maroan-product-spec {
    border-top-color: var(--mf-border);
}

.maroan-product-single-page .maroan-product-single__summary h2,
.maroan-product-single-page .maroan-product-single__features h2,
.maroan-product-single-page .maroan-product-single__usages h2,
.maroan-product-single-page .maroan-product-spec__title {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--mf-ink);
    text-align: center;
    position: relative;
    padding-bottom: 0.65rem;
}

.maroan-product-single-page .maroan-product-single__summary h2::after,
.maroan-product-single-page .maroan-product-single__features h2::after,
.maroan-product-single-page .maroan-product-single__usages h2::after,
.maroan-product-single-page .maroan-product-spec__title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2.5rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-product-single-page .maroan-product-single__summary p {
    color: var(--mf-text-muted);
    line-height: 2;
    letter-spacing: 0.03em;
}

.maroan-product-single-page .maroan-product-single__list li {
    background: #fffdf9;
    border: 1px solid var(--mf-border);
    border-left: 2px solid var(--mf-gold-light);
    border-radius: 2px;
    box-shadow: 0 2px 10px rgba(28, 36, 20, 0.04);
}

.maroan-product-single-page .maroan-product-single__list li strong {
    font-family: var(--mf-serif);
    font-weight: 500;
    color: var(--mf-ink);
    letter-spacing: 0.04em;
}

.maroan-product-single-page .maroan-product-single__list li span {
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-spec__table > tbody > tr {
    border-bottom-color: var(--mf-border);
}

.maroan-product-single-page .maroan-product-spec__table > tbody > tr > th {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--mf-ink);
}

.maroan-product-single-page .maroan-product-spec__table > tbody > tr > td {
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-spec__detail th {
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-spec__detail td {
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-single__cta-bottom {
    border-top-color: var(--mf-border);
}

.maroan-product-single-page .maroan-product-footer-cta {
    border-top-color: var(--mf-border);
    background: rgba(255, 253, 249, 0.97);
    box-shadow: 0 -8px 24px rgba(28, 36, 20, 0.08);
}

.maroan-product-single-page .maroan-product-footer-cta__title {
    font-family: var(--mf-serif);
    color: var(--mf-ink);
    letter-spacing: 0.02em;
}

.maroan-product-single-page .maroan-product-footer-cta__price {
    font-family: var(--mf-serif);
    color: var(--mf-gold);
}

.maroan-product-single-page .maroan-product-breadcrumb,
.maroan-product-single-page .maroan-product-archive__trail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin: 0 0 1.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: var(--mf-text-muted);
}

.maroan-product-single-page .maroan-product-breadcrumb a,
.maroan-product-single-page .maroan-product-archive__trail-link {
    color: var(--mf-moss);
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-product-single-page .maroan-product-breadcrumb a:hover,
.maroan-product-single-page .maroan-product-breadcrumb a:focus-visible,
.maroan-product-single-page .maroan-product-archive__trail-link:hover,
.maroan-product-single-page .maroan-product-archive__trail-link:focus-visible {
    color: var(--mf-gold);
    text-decoration: none;
}

.maroan-product-single-page .maroan-product-breadcrumb [aria-current="page"],
.maroan-product-single-page .maroan-product-archive__trail-current {
    color: var(--mf-text);
}

.maroan-product-single-page .maroan-product-archive__trail-sep {
    color: var(--mf-text-muted);
    opacity: 0.65;
}

.maroan-product-single-page .maroan-btob-page__section {
    margin-bottom: 2.5rem;
}

.maroan-product-single-page .maroan-btob-page__section-title,
.maroan-product-single-page .maroan-product-spec__title.maroan-btob-page__section-title {
    margin-bottom: 1.25rem;
}

.maroan-product-single-page .maroan-product-hero.maroan-btob-page__section {
    margin-bottom: 2rem;
}

.maroan-product-single-page .maroan-product-single__cta-bottom {
    padding-top: 0;
    border-top: 0;
}

/* -------------------------------------------------------------------------
   トップページ（固定ページ）— 格式高い和モダン
   ------------------------------------------------------------------------- */

.maroan-front-page .maroan-front-page__content > .wp-block-heading.maroan-front-section-title,
.maroan-front-page .maroan-front-section-title {
    margin: 3.75rem 0 1.75rem;
    padding: 0 0 0.85rem;
    border: 0;
    border-bottom: 1px solid var(--mf-border);
    border-radius: 0;
    background: transparent;
    color: var(--mf-ink);
    font-family: var(--mf-serif);
    font-size: clamp(1.15rem, 2.4vw, 1.45rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.5;
    text-align: center;
    position: relative;
}

.maroan-front-page .maroan-front-page__content > .wp-block-heading.maroan-front-section-title::after,
.maroan-front-page .maroan-front-section-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 3rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-front-page .maroan-front-section-title--plain {
    text-align: center;
    letter-spacing: 0.08em;
}

.maroan-front-page .maroan-front-page__content > p.has-text-align-center {
    max-width: 38rem;
    margin-left: auto;
    margin-right: auto;
    color: var(--mf-text-muted);
    font-size: 0.98rem;
    line-height: 2;
    letter-spacing: 0.04em;
}

.maroan-front-page .maroan-front-hero-columns {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1.35rem;
    margin: 0 0 2.25rem;
}

.maroan-front-page .maroan-front-hero-columns > .wp-block-column {
    margin: 0;
    min-width: 0;
}

.maroan-front-page .maroan-front-hero-columns .wp-block-column {
    position: relative;
}

.maroan-front-page .maroan-front-page__content .wp-block-image.maroan-front-hero-image {
    margin: 0;
    width: 100%;
    max-width: none;
}

.maroan-front-page .maroan-front-hero-image a {
    display: block;
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 2px;
    box-shadow: 0 12px 40px rgba(28, 36, 20, 0.12);
    aspect-ratio: 3 / 1;
    background: var(--mf-washi);
    line-height: 0;
}

.maroan-front-page .maroan-front-hero-image a::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28, 36, 20, 0.55) 0%, rgba(28, 36, 20, 0.05) 55%, transparent 100%);
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.maroan-front-page .maroan-front-hero-image a:hover::after {
    opacity: 0.85;
}

.maroan-front-page .maroan-front-hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.maroan-front-page .maroan-front-hero-columns > .wp-block-column:nth-child(2) .maroan-front-hero-image img {
    object-fit: fill;
}

.maroan-front-page .maroan-front-hero-image a:hover img {
    transform: scale(1.04);
}

.maroan-front-page .maroan-front-hero-label {
    position: absolute;
    left: 1.35rem;
    bottom: 1.35rem;
    z-index: 1;
    margin: 0 !important;
    padding: 0 0 0 0.85rem;
    border-left: 2px solid var(--mf-gold-light);
    border-radius: 0;
    background: transparent;
    pointer-events: none;
}

.maroan-front-page .maroan-front-hero-label a {
    color: #fff;
    font-family: var(--mf-serif);
    font-size: clamp(1rem, 2vw, 1.2rem);
    font-weight: 500;
    letter-spacing: 0.22em;
    text-decoration: none;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
    pointer-events: auto;
}

.maroan-front-page .maroan-front-trust {
    margin: 0 auto 2.5rem;
    max-width: 44rem;
    padding: 1.5rem 1.75rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.maroan-front-page .maroan-front-trust p {
    max-width: none;
    margin: 0 0 0.75rem;
    color: var(--mf-text-muted);
    font-size: 0.92rem;
    line-height: 1.95;
    letter-spacing: 0.03em;
    text-align: center;
}

.maroan-front-page .maroan-front-trust p:last-child {
    margin-bottom: 0;
}

.maroan-front-page .maroan-front-hub--fragment {
    margin-top: 0;
}

.maroan-front-page .maroan-front-page__content .maroan-front-hub__cat-media,
.maroan-front-page .maroan-front-page__content .maroan-front-hub__entry-thumb {
    aspect-ratio: 4 / 3;
}

.maroan-front-page .maroan-front-page__content .maroan-front-hub__product-grid {
    margin-top: 0;
    gap: 1.5rem;
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__link {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    box-shadow: 0 4px 20px rgba(28, 36, 20, 0.04);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__link:hover,
.maroan-front-page .maroan-front-page__content .maroan-product-card__link:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(28, 36, 20, 0.1);
    border-color: var(--mf-gold-light);
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__thumb {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--mf-washi);
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__link:hover .maroan-product-card__img {
    transform: scale(1.03);
}

.maroan-front-page .maroan-front-page__content .maroan-product-card__title {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.02em;
}

.maroan-front-page .maroan-front-cta-buttons {
    margin: 2rem 0 3rem;
    gap: 1rem;
}

.maroan-front-page .maroan-front-cta-buttons .wp-block-button__link {
    min-width: 11rem;
    padding: 0.85em 2em;
    border-radius: 2px;
    font-family: var(--mf-sans);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.maroan-front-page .maroan-front-cta-buttons .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--mf-moss);
    color: #fff;
    border: 1px solid var(--mf-moss);
}

.maroan-front-page .maroan-front-cta-buttons .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    background: var(--mf-ink);
    border-color: var(--mf-ink);
}

.maroan-front-page .maroan-front-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--mf-moss);
    border: 1px solid var(--mf-gold);
}

.maroan-front-page .maroan-front-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--mf-washi-deep);
    color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__lead {
    max-width: 38rem;
    margin: 0 auto 2rem;
    color: var(--mf-text-muted);
    font-size: 0.98rem;
    line-height: 2;
    letter-spacing: 0.04em;
    text-align: center;
}

.maroan-front-page .maroan-front-hub__hero-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 1.35rem;
    margin-bottom: 2.25rem;
}

.maroan-front-page .maroan-front-hub__hero-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 2px;
    box-shadow: 0 12px 40px rgba(28, 36, 20, 0.12);
    aspect-ratio: 3 / 1;
    background: var(--mf-washi);
}

.maroan-front-page .maroan-front-hub__hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28, 36, 20, 0.55) 0%, transparent 60%);
    pointer-events: none;
}

.maroan-front-page .maroan-front-hub__hero-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.maroan-front-page .maroan-front-hub__hero-card:nth-child(2) img {
    object-fit: fill;
}

.maroan-front-page .maroan-front-hub__hero-card:hover img {
    transform: scale(1.04);
}

.maroan-front-page .maroan-front-hub__hero-label {
    position: absolute;
    left: 1.35rem;
    bottom: 1.35rem;
    z-index: 1;
    padding: 0 0 0 0.85rem;
    border-left: 2px solid var(--mf-gold-light);
    border-radius: 0;
    background: transparent;
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.22em;
    color: #fff;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

.maroan-front-page .maroan-front-hub__section + .maroan-front-hub__section,
.maroan-front-page .maroan-front-hub__about {
    margin-top: 3rem;
    padding-top: 0;
}

.maroan-front-page .maroan-front-hub__section-title {
    margin: 0 0 1.5rem;
    padding: 0 0 0.75rem;
    border: 0;
    border-bottom: 1px solid var(--mf-border);
    border-radius: 0;
    background: transparent;
    color: var(--mf-ink);
    font-family: var(--mf-serif);
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.5;
    text-align: center;
    position: relative;
}

.maroan-front-page .maroan-front-hub__section-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 2.5rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-front-page .maroan-front-hub__section-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-front-page .maroan-front-hub__section-title a:hover {
    color: var(--mf-gold);
}

.maroan-front-page .maroan-front-hub__section-title--plain {
    text-align: center;
    color: var(--mf-ink);
    border-bottom-color: var(--mf-border);
}

.maroan-front-page .maroan-front-hub__quick {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

.maroan-front-page .maroan-front-hub__quick-link {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 1rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    color: var(--mf-moss);
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.maroan-front-page .maroan-front-hub__quick-link:hover {
    border-color: var(--mf-gold);
    background: var(--mf-washi);
    color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__cat-grid,
.maroan-front-page .maroan-front-hub__entry-grid {
    display: grid;
    gap: 1.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-front-page .maroan-front-hub__cat-grid {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.maroan-front-page .maroan-front-hub__entry-grid {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.maroan-front-page .maroan-front-hub__cat-card,
.maroan-front-page .maroan-front-hub__entry-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(28, 36, 20, 0.04);
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.maroan-front-page .maroan-front-hub__cat-card:hover,
.maroan-front-page .maroan-front-hub__entry-card:hover {
    transform: translateY(-3px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 14px 32px rgba(28, 36, 20, 0.1);
}

.maroan-front-page .maroan-front-hub__cat-media,
.maroan-front-page .maroan-front-hub__entry-thumb {
    display: block;
    aspect-ratio: 4 / 3;
    background: var(--mf-washi);
    overflow: hidden;
}

.maroan-front-page .maroan-front-hub__cat-media img,
.maroan-front-page .maroan-front-hub__entry-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-front-page .maroan-front-hub__cat-card:hover .maroan-front-hub__cat-media img,
.maroan-front-page .maroan-front-hub__entry-card:hover .maroan-front-hub__entry-thumb img {
    transform: scale(1.03);
}

.maroan-front-page .maroan-front-hub__cat-body,
.maroan-front-page .maroan-front-hub__entry-body {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem 1.15rem 1.15rem;
}

.maroan-front-page .maroan-front-hub__cat-name,
.maroan-front-page .maroan-front-hub__entry-name {
    font-family: var(--mf-serif);
    font-weight: 500;
    font-size: 0.98rem;
    letter-spacing: 0.04em;
    color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__cat-desc,
.maroan-front-page .maroan-front-hub__entry-desc {
    font-size: 0.85rem;
    color: var(--mf-text-muted);
    line-height: 1.65;
    letter-spacing: 0.02em;
}

.maroan-front-page .maroan-front-hub__cat-meta,
.maroan-front-page .maroan-front-hub__entry-meta {
    font-size: 0.78rem;
    color: var(--mf-gold);
    letter-spacing: 0.08em;
}

.maroan-front-page .maroan-front-hub__product-grid {
    margin-bottom: 0.75rem;
}

.maroan-front-page .maroan-front-hub__more-wrap {
    margin: 1.5rem 0 0;
    text-align: center;
}

.maroan-front-page .maroan-front-hub__more {
    color: var(--mf-moss);
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-front-page .maroan-front-hub__more:hover {
    color: var(--mf-gold);
    text-decoration: none;
}

.maroan-front-page .maroan-front-hub__more::after {
    content: " →";
}

.maroan-front-page .maroan-front-hub__review-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.maroan-front-page .maroan-front-hub__review-item {
    border-left: 2px solid var(--mf-gold-light);
    background: #fffdf9;
    box-shadow: 0 2px 12px rgba(28, 36, 20, 0.04);
}

.maroan-front-page .maroan-front-hub__review-item + .maroan-front-hub__review-item {
    border-top: 0;
    margin-top: 0.75rem;
}

.maroan-front-page .maroan-front-hub__review-link {
    display: block;
    padding: 1.1rem 1.25rem;
    color: inherit;
    text-decoration: none;
    transition: background 0.2s ease;
}

.maroan-front-page .maroan-front-hub__review-link:hover {
    background: var(--mf-washi);
}

.maroan-front-page .maroan-front-hub__review-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.85rem;
    margin-bottom: 0.45rem;
    font-size: 0.78rem;
    color: var(--mf-text-muted);
    letter-spacing: 0.04em;
}

.maroan-front-page .maroan-front-hub__review-cat {
    padding: 0.15rem 0.55rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
}

.maroan-front-page .maroan-front-hub__review-title {
    font-family: var(--mf-serif);
    font-weight: 500;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
    color: var(--mf-ink);
    line-height: 1.65;
}

.maroan-front-page .maroan-front-hub__about-text {
    max-width: 38rem;
    margin: 0 auto 1.5rem;
    color: var(--mf-text-muted);
    font-size: 0.95rem;
    line-height: 2;
    letter-spacing: 0.04em;
    text-align: center;
}

.maroan-front-page .maroan-front-hub__cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin: 0;
}

.maroan-front-page .maroan-front-hub__cta-row .maroan-product-btn {
    width: auto;
    min-width: 11rem;
    padding: 0.85rem 2rem;
    border-radius: 2px;
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.12em;
}

.maroan-front-page .maroan-front-hub__cta-row .maroan-product-btn--primary {
    background: var(--mf-moss);
    border-color: var(--mf-moss);
}

.maroan-front-page .maroan-front-hub__cta-row .maroan-product-btn--primary:hover,
.maroan-front-page .maroan-front-hub__cta-row .maroan-product-btn--primary:focus-visible {
    background: var(--mf-ink);
    border-color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__contact-btn {
    background: transparent;
    color: var(--mf-moss);
    border: 1px solid var(--mf-gold);
}

.maroan-front-page .maroan-front-hub__contact-btn:hover,
.maroan-front-page .maroan-front-hub__contact-btn:focus-visible {
    background: var(--mf-washi-deep);
    color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__trust {
    margin: 0 auto 2rem;
    max-width: 44rem;
    padding: 1.5rem 1.75rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    color: var(--mf-text-muted);
    line-height: 1.95;
}

.maroan-front-page .maroan-front-hub__trust p {
    margin: 0 0 0.75rem;
    font-size: 0.92rem;
    letter-spacing: 0.03em;
    text-align: center;
}

.maroan-front-page .maroan-front-hub__trust p:last-child {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .maroan-front-page .maroan-front-hero-columns,
    .maroan-front-page .maroan-front-hub__hero-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .maroan-front-page .maroan-front-hub__cat-grid,
    .maroan-front-page .maroan-front-hub__entry-grid {
        grid-template-columns: 1fr;
    }

    .maroan-front-page .maroan-front-hub__cta-row,
    .maroan-front-page .maroan-front-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .maroan-front-page .maroan-front-page__content > .wp-block-heading.maroan-front-section-title,
    .maroan-front-page .maroan-front-section-title {
        margin-top: 2.75rem;
    }

    .maroan-site-footer__list {
        gap: 0.5rem 1rem;
    }
}

/* -------------------------------------------------------------------------
   サイトフッター（全ページ共通）
   ------------------------------------------------------------------------- */

.maroan-brand-page .site-footer {
    background: var(--mf-washi);
    border-top: 1px solid var(--mf-border);
}

.maroan-site-footer {
    border-bottom: 1px solid var(--mf-border);
    background: linear-gradient(180deg, var(--mf-washi-deep) 0%, var(--mf-washi) 100%);
}

.maroan-site-footer__inner {
    max-width: var(--maroan-page-width);
    margin: 0 auto;
    padding: 2rem 1.25rem 1.5rem;
    text-align: center;
    font-family: var(--mf-sans);
}

.maroan-site-footer__brand {
    margin: 0 0 1rem;
    font-family: var(--mf-serif);
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--mf-ink);
}

.maroan-site-footer__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-site-footer__list a {
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    color: var(--mf-moss);
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-site-footer__list a:hover,
.maroan-site-footer__list a:focus-visible {
    color: var(--mf-gold);
}

.maroan-site-footer__copy {
    margin: 1.25rem 0 0;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: var(--mf-text-muted);
}

.maroan-brand-page .site-info {
    background: var(--mf-washi);
    border-top: 0;
    color: var(--mf-text-muted);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}

.maroan-brand-page .site-info a {
    color: var(--mf-moss);
}

.maroan-brand-page .site-info a:hover,
.maroan-brand-page .site-info a:hover {
    color: var(--mf-gold);
}

/* -------------------------------------------------------------------------
   ブログ（レビュー記事など）
   ------------------------------------------------------------------------- */

.maroan-blog-page .site-main {
    background: linear-gradient(180deg, var(--mf-washi) 0%, #fffdf9 8rem, #fff 100%);
}

.maroan-blog-page .inside-article,
.maroan-blog-page .page-header {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-blog-page .entry-title,
.maroan-blog-page .page-header h1 {
    font-family: var(--mf-serif);
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--mf-ink);
}

.maroan-blog-page .entry-content {
    line-height: 2;
    letter-spacing: 0.03em;
    color: var(--mf-text-muted);
}

.maroan-blog-page .entry-content a {
    color: var(--mf-moss);
}

.maroan-blog-page .entry-content a:hover,
.maroan-blog-page .entry-content a:focus-visible {
    color: var(--mf-gold);
}

/* -------------------------------------------------------------------------
   ヘッダーナビ（和モダン）
   ------------------------------------------------------------------------- */

.maroan-brand-page .main-navigation a {
    font-family: var(--mf-sans);
    font-size: 0.88rem;
    letter-spacing: 0.06em;
    color: var(--mf-ink);
}

.maroan-brand-page .main-navigation a:hover,
.maroan-brand-page .main-navigation .current-menu-item > a,
.maroan-brand-page .main-navigation .current-menu-ancestor > a {
    color: var(--mf-gold);
}

.maroan-brand-page .site-header {
    border-bottom: 1px solid var(--mf-border);
    background: rgba(255, 253, 249, 0.97);
}

/* -------------------------------------------------------------------------
   商品一覧：カテゴリハブ・横断ナビ
   ------------------------------------------------------------------------- */

.maroan-product-archive-page .maroan-product-archive__hub {
    margin-top: 1rem;
}

.maroan-product-archive-page .maroan-product-archive__hub-title {
    margin: 0 0 1.25rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-align: center;
    color: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-archive__hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-product-archive-page .maroan-product-archive__hub-card {
    display: flex;
    flex-direction: column;
    min-height: 5rem;
    padding: 0;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(28, 36, 20, 0.04);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.maroan-product-archive-page .maroan-product-archive__hub-card:hover,
.maroan-product-archive-page .maroan-product-archive__hub-card:focus-visible {
    transform: translateY(-2px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 12px 28px rgba(28, 36, 20, 0.09);
}

.maroan-product-archive-page .maroan-product-archive__hub-card-media {
    display: block;
    aspect-ratio: 16 / 9;
    background: var(--mf-washi);
    overflow: hidden;
}

.maroan-product-archive-page .maroan-product-archive__hub-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-product-archive-page .maroan-product-archive__hub-card:hover .maroan-product-archive__hub-card-media img,
.maroan-product-archive-page .maroan-product-archive__hub-card:focus-visible .maroan-product-archive__hub-card-media img {
    transform: scale(1.03);
}

.maroan-product-archive-page .maroan-product-archive__hub-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
}

.maroan-product-archive-page .maroan-product-archive__hub-card-label {
    font-family: var(--mf-serif);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--mf-ink);
}

.maroan-product-archive-page .maroan-product-archive__hub-card-count {
    font-size: 0.76rem;
    color: var(--mf-gold);
    letter-spacing: 0.08em;
}

.maroan-product-archive-page .maroan-product-archive__nav {
    margin: 0 0 1.5rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-product-archive-page .maroan-product-archive__nav-label {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    color: var(--mf-text-muted);
}

.maroan-product-archive-page .maroan-product-archive__nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-product-archive-page .maroan-product-archive__nav-list a,
.maroan-product-archive-page .maroan-product-archive__nav-list .is-current {
    display: inline-block;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-decoration: none;
}

.maroan-product-archive-page .maroan-product-archive__nav-list a {
    color: var(--mf-moss);
    background: var(--mf-washi);
}

.maroan-product-archive-page .maroan-product-archive__nav-list a:hover,
.maroan-product-archive-page .maroan-product-archive__nav-list a:focus-visible {
    border-color: var(--mf-gold-light);
    color: var(--mf-gold);
}

.maroan-product-archive-page .maroan-product-archive__nav-list .is-current {
    color: var(--mf-ink);
    background: var(--mf-washi-deep);
    border-color: var(--mf-gold-light);
    font-weight: 600;
}

/* -------------------------------------------------------------------------
   お問い合わせフォーム
   ------------------------------------------------------------------------- */

.maroan-site-page .maroan-contact-form {
    margin: 2rem 0 0;
    padding: 1.5rem 1.35rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-site-page .maroan-contact-form__row {
    margin: 0 0 1rem;
}

.maroan-site-page .maroan-contact-form__row label {
    display: block;
    margin-bottom: 0.35rem;
    font-family: var(--mf-serif);
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    color: var(--mf-ink);
}

.maroan-site-page .maroan-contact-form__row .required {
    font-size: 0.75rem;
    color: var(--mf-gold);
}

.maroan-site-page .maroan-contact-form__row input,
.maroan-site-page .maroan-contact-form__row textarea {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fff;
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-site-page .maroan-contact-form__actions .maroan-product-btn {
    width: auto;
    min-width: 11rem;
}

.maroan-site-page .maroan-contact-form__actions .maroan-product-btn--primary {
    background: var(--mf-moss);
    border-color: var(--mf-moss);
}

.maroan-site-page .maroan-contact-notice {
    margin: 0 0 1.5rem;
    padding: 0.9rem 1.1rem;
    border-radius: 2px;
    font-size: 0.9rem;
    letter-spacing: 0.03em;
}

.maroan-site-page .maroan-contact-notice.is-success {
    border: 1px solid var(--mf-gold-light);
    background: var(--mf-washi-deep);
    color: var(--mf-ink);
}

.maroan-site-page .maroan-contact-notice.is-error {
    border: 1px solid #e8b4b4;
    background: #fff5f5;
    color: #8b3030;
}

.maroan-site-page .maroan-contact-form__note {
    margin: 0.85rem 0 0;
    font-size: 0.8rem;
    color: var(--mf-text-muted);
    letter-spacing: 0.03em;
}

.maroan-site-page .maroan-contact-info,
.maroan-site-page .maroan-shop-info {
    margin: 1.5rem 0;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
}

.maroan-site-page .maroan-contact-info a,
.maroan-site-page .maroan-shop-info a {
    color: var(--mf-moss);
}

/* -------------------------------------------------------------------------
   法人・施設向け（BtoB）ページ
   ------------------------------------------------------------------------- */

.maroan-btob-page {
    margin-top: 1.5rem;
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-btob-page__hero {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.maroan-btob-page__hero-media {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi-deep);
}

.maroan-btob-page__hero-media img {
    display: block;
    width: 100%;
    height: auto;
}

.maroan-btob-page__lead {
    margin: 0 0 1.25rem;
    font-size: 1rem;
    line-height: 2;
    color: var(--mf-text-muted);
}

.maroan-btob-page__hero-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-btob-page__hero-stats li {
    padding: 0.85rem 1rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
}

.maroan-btob-page__hero-stats strong {
    display: block;
    margin-bottom: 0.2rem;
    font-family: var(--mf-serif);
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-btob-page__hero-stats span {
    font-size: 0.82rem;
    color: var(--mf-text-muted);
}

.maroan-btob-trust {
    margin-bottom: 2.5rem;
    padding: 1.5rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-btob-trust__points {
    margin: 0 0 1.25rem;
    padding-left: 1.2rem;
    color: var(--mf-text-muted);
    line-height: 1.95;
}

.maroan-btob-trust__points li + li {
    margin-top: 0.65rem;
}

.maroan-btob-trust__actions {
    text-align: center;
}

.maroan-btob-page__section {
    margin-bottom: 3rem;
}

.maroan-btob-page__section-title,
.maroan-byoubu-process__title,
.maroan-btob-page__cta-title {
    margin: 0 0 0.75rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.35rem, 2.8vw, 1.65rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-align: center;
    color: var(--mf-ink);
}

.maroan-btob-page__section-note,
.maroan-byoubu-process__lead,
.maroan-btob-page__cta-lead {
    margin: 0 0 1.5rem;
    text-align: center;
    color: var(--mf-text-muted);
    line-height: 1.9;
}

.maroan-btob-page__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.maroan-btob-page__card {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
}

.maroan-btob-page__card-media {
    margin: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.maroan-btob-page__card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.maroan-btob-page__card-body {
    padding: 1rem 1.1rem 1.15rem;
}

.maroan-btob-page__card-title,
.maroan-btob-page__service-title,
.maroan-byoubu-process__item-title {
    margin: 0 0 0.5rem;
    font-family: var(--mf-serif);
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-btob-page__card-text,
.maroan-btob-page__service-body,
.maroan-byoubu-process__item-text,
.maroan-byoubu-process__item-note {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.85;
    color: var(--mf-text-muted);
}

.maroan-byoubu-process {
    margin-bottom: 3rem;
}

.maroan-byoubu-process__rows {
    display: grid;
    gap: 2rem;
}

.maroan-byoubu-process__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 1.25rem;
    align-items: start;
}

.maroan-byoubu-process__row--reverse .maroan-byoubu-process__media {
    order: 2;
}

.maroan-byoubu-process__media {
    margin: 0;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
}

.maroan-byoubu-process__media img {
    display: block;
    width: 100%;
    height: auto;
}

.maroan-byoubu-process__points {
    margin: 1rem 0;
    padding-left: 1.2rem;
    color: var(--mf-text-muted);
    line-height: 1.8;
    font-size: 0.9rem;
}

.maroan-byoubu-process__item-note {
    margin-top: 0.85rem;
}

.maroan-byoubu-process--btob {
    margin-top: 0.5rem;
    padding-top: 2.75rem;
    border-top: 1px solid var(--mf-border);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__title {
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    position: relative;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 2.5rem;
    height: 2px;
    background: var(--mf-gold);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__lead {
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto;
    line-height: 2;
    letter-spacing: 0.04em;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__rows {
    gap: 2.5rem;
    margin-top: 2rem;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__row {
    gap: 1.75rem;
    align-items: stretch;
    padding: 1.5rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(145deg, #fffdf9 0%, var(--mf-washi-deep) 100%);
    box-shadow: 0 10px 32px rgba(28, 36, 20, 0.07);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__media {
    margin: 0;
    align-self: center;
    border: 0;
    outline: 1px solid var(--mf-border);
    outline-offset: -1px;
    box-shadow: 0 14px 36px rgba(28, 36, 20, 0.12);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__media img {
    aspect-ratio: 4 / 3;
    object-fit: contain;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__step-label {
    display: inline-flex;
    align-items: baseline;
    gap: 0.45rem;
    margin: 0 0 0.65rem;
    font-family: var(--mf-serif);
    letter-spacing: 0.12em;
    color: var(--mf-gold);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__step-prefix {
    font-size: 0.68rem;
    font-weight: 500;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__step-number {
    font-size: 1.15rem;
    line-height: 1;
    color: var(--mf-moss);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__item-title {
    margin-bottom: 0.85rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--mf-border);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    letter-spacing: 0.08em;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__item-text {
    font-size: 0.9rem;
    line-height: 1.95;
    letter-spacing: 0.02em;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__points {
    margin: 1.35rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    counter-reset: btob-process-point;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__points li {
    counter-increment: btob-process-point;
    display: grid;
    grid-template-columns: 1.6rem minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    margin: 0;
    padding: 0.75rem 0.8rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: rgba(255, 253, 249, 0.92);
    font-size: 0.8rem;
    line-height: 1.65;
    letter-spacing: 0.02em;
    color: var(--mf-text-muted);
}

.maroan-byoubu-process--btob .maroan-byoubu-process__points li::before {
    content: counter(btob-process-point);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    margin-top: 0.1rem;
    border-radius: 999px;
    border: 1px solid var(--mf-gold-light);
    background: var(--mf-washi);
    font-family: var(--mf-serif);
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--mf-moss);
    line-height: 1;
}

.maroan-byoubu-process--btob .maroan-byoubu-process__item-note {
    margin-top: 1.15rem;
    padding: 0.95rem 1.05rem;
    border: 1px solid var(--mf-border);
    border-left: 2px solid var(--mf-gold);
    border-radius: 2px;
    background: linear-gradient(135deg, var(--mf-washi) 0%, #fffdf9 100%);
    font-size: 0.84rem;
    line-height: 1.85;
    letter-spacing: 0.02em;
}

.maroan-btob-page__service-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 1rem;
}

.maroan-btob-page__service-item {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-btob-page__service-step {
    font-family: var(--mf-serif);
    font-size: 1.35rem;
    line-height: 1;
    color: var(--mf-gold);
}

.maroan-btob-page__category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-btob-page__category-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background: #fffdf9;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.maroan-btob-page__category-card:hover {
    border-color: var(--mf-gold);
    box-shadow: 0 4px 16px rgba(44, 36, 22, 0.08);
}

.maroan-btob-page__category-media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.maroan-btob-page__category-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.maroan-btob-page__category-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.9rem 1rem 1rem;
}

.maroan-btob-page__category-label {
    font-family: var(--mf-serif);
    font-size: 1rem;
    color: var(--mf-ink);
}

.maroan-btob-page__category-note {
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--mf-text-muted);
}

.maroan-btob-page__category-count {
    margin-top: auto;
    font-size: 0.8rem;
    color: var(--mf-moss);
}

.maroan-btob-page__hub-link {
    margin: 1.25rem 0 0;
    text-align: center;
}

.maroan-btob-page__hub-link a {
    color: var(--mf-moss);
}

.maroan-btob-page__cta {
    margin-top: 1rem;
    padding: 2rem 1.5rem;
    text-align: center;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: linear-gradient(135deg, var(--mf-washi-deep) 0%, #fffdf9 100%);
}

.maroan-btob-page__cta-button {
    display: inline-flex;
    margin-top: 0.5rem;
}

@media (min-width: 900px) {
    .maroan-btob-page__hero {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
        align-items: center;
    }

    .maroan-btob-page__hero-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .maroan-btob-page__cards,
    .maroan-btob-page__category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .maroan-byoubu-process__row,
    .maroan-byoubu-process__row--reverse {
        grid-template-columns: 1fr;
    }

    .maroan-byoubu-process__row--reverse .maroan-byoubu-process__media {
        order: 0;
    }

    .maroan-byoubu-process--btob .maroan-byoubu-process__points {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .maroan-btob-page__hero-stats,
    .maroan-btob-page__cards,
    .maroan-btob-page__category-grid {
        grid-template-columns: 1fr;
    }

    .maroan-btob-page__service-item {
        grid-template-columns: 2.5rem minmax(0, 1fr);
    }

    .maroan-byoubu-process--btob .maroan-byoubu-process__row {
        padding: 1.15rem;
    }
}

/* -------------------------------------------------------------------------
   屏風・掛軸カテゴリハブ（本番 byoubu / kakejikutop 相当）
   ------------------------------------------------------------------------- */

.maroan-product-archive-page .maroan-byoubu-hub,
.maroan-product-archive-page .maroan-kakejiku-hub {
    margin-top: 0.5rem;
}

.maroan-byoubu-hub__trail,
.maroan-kakejiku-hub__trail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 1rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi);
    font-size: 0.86rem;
}

.maroan-byoubu-hub__trail-link,
.maroan-kakejiku-hub__trail-link {
    color: var(--mf-ink);
    font-weight: 600;
    text-decoration: none;
}

.maroan-byoubu-hub__trail-sep,
.maroan-kakejiku-hub__trail-sep {
    color: var(--mf-gold);
}

.maroan-byoubu-hub__nav {
    display: grid;
    gap: 0.9rem;
    margin-bottom: 1.5rem;
}

.maroan-product-archive__nav-byoubu {
    margin-bottom: 1.5rem;
}

.maroan-byoubu-hub__nav-group-label {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--mf-gold);
    text-align: center;
}

.maroan-byoubu-hub__nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
}

.maroan-byoubu-hub__nav-link {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    border: 1px solid var(--mf-border);
    border-radius: 999px;
    background: #fffdf9;
    color: var(--mf-ink);
    font-size: 0.86rem;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.maroan-byoubu-hub__nav-link:hover,
.maroan-byoubu-hub__nav-link:focus-visible,
.maroan-byoubu-hub__nav-link.is-current {
    border-color: var(--mf-gold);
}

.maroan-byoubu-hub__nav-link.is-current {
    background: var(--mf-moss);
    color: #fffdf9;
}

.maroan-btob-trust--standard {
    margin-bottom: 1.5rem;
}

.maroan-btob-trust--standard .maroan-btob-trust__title {
    margin: 0 0 0.75rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.2rem, 2.4vw, 1.45rem);
    text-align: center;
    color: var(--mf-ink);
}

.maroan-btob-trust--standard .maroan-btob-trust__lead {
    margin: 0 0 1rem;
    text-align: center;
    color: var(--mf-text-muted);
    line-height: 1.85;
}

.maroan-btob-trust__badges {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.maroan-btob-trust__badge {
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    text-align: center;
}

.maroan-btob-trust__badge-label {
    display: block;
    font-family: var(--mf-serif);
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-btob-trust__badge-note {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.82rem;
    color: var(--mf-text-muted);
}

.maroan-btob-trust--standard .maroan-btob-trust__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.maroan-byoubu-hub__hero {
    margin: 0 0 1.25rem;
    overflow: hidden;
    border-radius: 2px;
}

.maroan-byoubu-hub__hero img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.maroan-byoubu-hub__intro {
    margin: 0 0 1.75rem;
    text-align: center;
    line-height: 1.9;
    color: var(--mf-text-muted);
}

.maroan-byoubu-hub__intro p {
    margin: 0 0 0.85rem;
}

.maroan-byoubu-hub__cards-title,
.maroan-kakejiku-hub__section-title {
    margin: 0 0 1rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.1rem, 2.2vw, 1.35rem);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-align: center;
    color: var(--mf-ink);
}

.maroan-byoubu-hub__card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-byoubu-hub__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(28, 36, 20, 0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.maroan-byoubu-hub__card:hover,
.maroan-byoubu-hub__card:focus-visible {
    transform: translateY(-2px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 12px 28px rgba(28, 36, 20, 0.09);
}

.maroan-byoubu-hub__card-media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--mf-washi);
}

.maroan-byoubu-hub__card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-byoubu-hub__card:hover .maroan-byoubu-hub__card-media img {
    transform: scale(1.03);
}

.maroan-byoubu-hub__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem 1.15rem;
}

.maroan-byoubu-hub__card-label {
    font-family: var(--mf-serif);
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-byoubu-hub__card-desc {
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--mf-text-muted);
}

.maroan-byoubu-hub__card-count {
    font-size: 0.78rem;
    color: var(--mf-gold);
    letter-spacing: 0.08em;
}

.maroan-byoubu-hub__capbox {
    margin: 2.5rem 0;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
}

.maroan-byoubu-hub__capbox-title {
    margin: 0;
    padding: 0.85rem 1rem;
    background: var(--mf-moss);
    color: #fffdf9;
    font-family: var(--mf-serif);
    font-size: 1.05rem;
    font-weight: 500;
    text-align: center;
}

.maroan-byoubu-hub__capbox-body {
    padding: 1.25rem;
}

.maroan-byoubu-hub__base-row {
    display: grid;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}

.maroan-byoubu-hub__base-row + .maroan-byoubu-hub__base-row {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--mf-border);
}

.maroan-byoubu-hub__base-figure {
    margin: 0;
}

.maroan-byoubu-hub__base-figure img {
    display: block;
    width: 100%;
    height: auto;
}

.maroan-byoubu-hub__base-name {
    margin: 0 0 0.5rem;
    font-family: var(--mf-serif);
    font-size: 1rem;
    color: var(--mf-ink);
}

.maroan-byoubu-hub__base-text p {
    margin: 0 0 0.5rem;
    line-height: 1.8;
    color: var(--mf-text-muted);
}

.maroan-byoubu-hub-page .maroan-byoubu-process--btob {
    margin: 2.5rem 0 3rem;
}

.maroan-kakejiku-hub__lead {
    max-width: 42rem;
    margin: 0 auto 1.5rem;
    text-align: center;
    line-height: 1.85;
    color: var(--mf-text-muted);
}

.maroan-kakejiku-hub__guide {
    margin-bottom: 2rem;
}

.maroan-kakejiku-hub__guide-list {
    display: grid;
    gap: 1rem;
}

.maroan-kakejiku-hub__guide-item {
    padding: 1rem 1.1rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-kakejiku-hub__guide-title {
    margin: 0 0 0.55rem;
    font-family: var(--mf-serif);
    font-size: 1rem;
    color: var(--mf-ink);
}

.maroan-kakejiku-hub__guide-body {
    margin: 0;
    line-height: 1.85;
    color: var(--mf-text-muted);
}

.maroan-kakejiku-hub__hint {
    margin: 0 0 1rem;
    text-align: center;
    font-size: 0.92rem;
    color: var(--mf-text-muted);
}

.maroan-kakejiku-hub__quick {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin: 0 0 2rem;
}

.maroan-kakejiku-hub__quick-link {
    display: inline-flex;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--mf-border);
    border-radius: 999px;
    background: #fffdf9;
    color: var(--mf-ink);
    font-size: 0.86rem;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.maroan-kakejiku-hub__quick-link:hover,
.maroan-kakejiku-hub__quick-link:focus-visible {
    border-color: var(--mf-gold);
    background: var(--mf-washi);
}

.maroan-kakejiku-hub__section {
    margin-bottom: 2.5rem;
}

.maroan-kakejiku-hub__group + .maroan-kakejiku-hub__group {
    margin-top: 1.5rem;
}

.maroan-kakejiku-hub__group-title {
    margin: 0 0 0.85rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--mf-border);
    font-family: var(--mf-serif);
    font-size: 1rem;
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-kakejiku-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.maroan-kakejiku-hub__grid--featured {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

.maroan-kakejiku-hub__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    overflow: hidden;
    background: #fffdf9;
    color: inherit;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.maroan-kakejiku-hub__card:hover,
.maroan-kakejiku-hub__card:focus-visible {
    transform: translateY(-2px);
    border-color: var(--mf-gold-light);
    box-shadow: 0 12px 28px rgba(28, 36, 20, 0.09);
}

.maroan-kakejiku-hub__thumb {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--mf-washi);
}

.maroan-kakejiku-hub__card--compact .maroan-kakejiku-hub__thumb {
    aspect-ratio: 16 / 10;
}

.maroan-kakejiku-hub__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.maroan-kakejiku-hub__card:hover .maroan-kakejiku-hub__thumb img {
    transform: scale(1.03);
}

.maroan-kakejiku-hub__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.05rem 1.1rem;
}

.maroan-kakejiku-hub__name {
    font-family: var(--mf-serif);
    font-weight: 500;
    color: var(--mf-ink);
}

.maroan-kakejiku-hub__desc {
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--mf-text-muted);
}

.maroan-kakejiku-hub__meta {
    font-size: 0.78rem;
    color: var(--mf-gold);
    letter-spacing: 0.08em;
}

.maroan-rms-hub-faq {
    margin-top: 2.5rem;
}

.maroan-rms-hub-faq__title {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 2px;
    background: var(--mf-moss);
    color: #fffdf9;
    font-family: var(--mf-serif);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    text-align: center;
}

.maroan-rms-hub-faq__list {
    display: grid;
    gap: 0.65rem;
}

.maroan-rms-hub-faq__item {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    overflow: hidden;
}

.maroan-rms-hub-faq__question {
    padding: 0.85rem 1rem;
    font-weight: 600;
    color: var(--mf-ink);
    cursor: pointer;
    list-style: none;
}

.maroan-rms-hub-faq__question::-webkit-details-marker {
    display: none;
}

.maroan-rms-hub-faq__answer {
    padding: 0 1rem 1rem;
    line-height: 1.85;
    color: var(--mf-text-muted);
}

.maroan-rms-hub-faq__answer p {
    margin: 0;
}

@media (max-width: 768px) {
    .maroan-byoubu-hub__base-row {
        grid-template-columns: 1fr;
    }
}

/* -------------------------------------------------------------------------
   子カテゴリ商品一覧（本番 rms-product-archive 相当）
   ------------------------------------------------------------------------- */

.maroan-product-archive-child .maroan-product-archive__hub {
    margin-bottom: 1.25rem;
}

.maroan-product-archive-child .maroan-product-archive__trail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 1rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi);
    font-size: 0.86rem;
    line-height: 1.4;
}

.maroan-product-archive-child .maroan-product-archive__trail-link {
    color: var(--mf-moss);
    font-weight: 600;
    text-decoration: none;
}

.maroan-product-archive-child .maroan-product-archive__trail-link:hover,
.maroan-product-archive-child .maroan-product-archive__trail-link:focus-visible {
    color: var(--mf-gold);
    text-decoration: underline;
}

.maroan-product-archive-child .maroan-product-archive__trail-sep {
    color: var(--mf-text-muted);
}

.maroan-product-archive-child .maroan-product-archive__trail-current {
    color: var(--mf-text);
    font-weight: 700;
}

.maroan-product-archive-child .maroan-product-archive__nav-byoubu {
    margin-bottom: 0;
}

.maroan-byoubu-archive__intro {
    margin-bottom: 1.25rem;
}

.maroan-product-archive-child .maroan-byoubu-hub__line-banner {
    margin: 0 0 1.25rem;
    text-align: center;
}

.maroan-product-archive-child .maroan-byoubu-hub__line-banner img {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin: 0 auto;
    border-radius: 2px;
    box-shadow: 0 8px 24px rgba(28, 36, 20, 0.08);
}

.maroan-product-archive-child .maroan-byoubu-archive__intro-body {
    margin-bottom: 0;
}

.maroan-product-archive-child .maroan-byoubu-hub__category-count {
    margin-top: 0.75rem;
    font-size: 0.92rem;
    color: var(--mf-text-muted);
}

.maroan-product-archive-child .maroan-byoubu-hub__note {
    margin: 0.75rem 0 0;
    font-size: 0.88rem;
    color: var(--mf-text-muted);
    line-height: 1.7;
}

.maroan-product-archive-child .maroan-btob-trust--standard {
    margin-bottom: 1.25rem;
}

.maroan-product-archive-child .maroan-product-archive__results-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 1rem;
    margin-bottom: 1.25rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(180deg, var(--mf-washi) 0%, #fffdf9 100%);
    border: 1px solid var(--mf-border);
    border-radius: 2px;
}

.maroan-product-archive-child .maroan-product-archive__results-title {
    margin: 0;
    font-family: var(--mf-serif);
    font-size: clamp(1.25rem, 2.4vw, 1.6rem);
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.08em;
    color: var(--mf-ink);
}

.maroan-product-archive-child .maroan-product-archive__results-title::after {
    display: none;
}

.maroan-product-archive-child .maroan-product-archive__results-meta {
    flex-shrink: 0;
}

.maroan-product-archive-child .maroan-product-archive__results-count {
    margin: 0;
    color: var(--mf-text-muted);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.maroan-product-archive-child .maroan-product-archive__filters {
    margin-bottom: 1.1rem;
    padding: 0.95rem 1rem;
    background: #fffdf9;
}

.maroan-product-archive-child .maroan-product-archive-filter {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.maroan-product-archive-child .maroan-product-archive-filter__row {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0;
}

.maroan-product-archive-child .maroan-product-archive-filter__row--split {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.maroan-product-archive-child .maroan-product-archive-filter__field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.maroan-product-archive-child .maroan-product-archive-filter__controls {
    width: 100%;
}

.maroan-product-archive-child .maroan-product-archive-filter__input {
    flex: 1 1 240px;
    min-width: min(100%, 240px);
}

.maroan-product-archive-child .maroan-product-archive-filter__submit {
    min-height: 2.5rem;
    white-space: nowrap;
}

.maroan-product-archive-child .maroan-product-archive-filter__footer {
    padding-top: 0.15rem;
    border-top: 1px solid var(--mf-border);
}

.maroan-product-archive-child .maroan-product-archive-filter__clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.2rem;
    padding: 0 0.9rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: var(--mf-washi);
    color: var(--mf-text);
    text-decoration: none;
    white-space: nowrap;
}

.maroan-product-archive-child .maroan-product-archive-filter__clear:hover,
.maroan-product-archive-child .maroan-product-archive-filter__clear:focus-visible {
    border-color: var(--mf-gold-light);
    color: var(--mf-ink);
    text-decoration: none;
}

.maroan-product-archive-child .maroan-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.maroan-product-archive-child .maroan-product-archive__hub-footer {
    margin: 2rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--mf-border);
    text-align: center;
}

.maroan-product-archive-child .maroan-product-archive__hub-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0 1.35rem;
    border: 1px solid var(--mf-moss);
    border-radius: 999px;
    background: #fffdf9;
    color: var(--mf-moss);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.maroan-product-archive-child .maroan-product-archive__hub-back:hover,
.maroan-product-archive-child .maroan-product-archive__hub-back:focus-visible {
    background: var(--mf-moss);
    color: #fffdf9;
    text-decoration: none;
}

@media (max-width: 767px) {
    .maroan-product-archive-child .maroan-product-archive__filters {
        gap: 0.65rem;
        padding: 0.8rem 0.85rem;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__row--split {
        grid-template-columns: 1fr;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__controls {
        flex-direction: column;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__submit {
        width: 100%;
    }
}

@media (min-width: 768px) {
    .maroan-product-archive-child .maroan-product-archive-filter__row {
        flex-direction: row;
        align-items: center;
        gap: 0.85rem;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__row .maroan-product-archive-filter__label {
        flex: 0 0 8.5rem;
        margin-bottom: 0;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__row .maroan-product-archive-filter__controls {
        flex: 1;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__row--split {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 0.75rem;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__field {
        flex: 1 1 0;
        flex-direction: row;
        align-items: center;
        gap: 0.85rem;
    }

    .maroan-product-archive-child .maroan-product-archive-filter__field .maroan-product-archive-filter__label {
        flex: 0 0 7.5rem;
        margin-bottom: 0;
    }

    .maroan-product-archive-child .maroan-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }
}

@media (min-width: 1024px) {
    .maroan-product-archive-child .maroan-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* -------------------------------------------------------------------------
   ブランドデザイン統一（BtoB基準）
   ------------------------------------------------------------------------- */

.maroan-btob-page__section-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.maroan-btob-page__section-title a:hover,
.maroan-btob-page__section-title a:focus-visible {
    color: var(--mf-gold);
}

.maroan-btob-page__hero--text-only {
    margin-bottom: 2rem;
}

.maroan-btob-page__hero--text-only .maroan-btob-page__hero-body {
    max-width: 42rem;
    margin: 0 auto;
}

.maroan-btob-page__section-note--standalone {
    margin: -1rem auto 1.5rem;
    max-width: 40rem;
}

.maroan-btob-page--archive-hub,
.maroan-btob-page--product-hub {
    margin-top: 0;
}

.maroan-btob-page--archive-hub .maroan-btob-page__hero .maroan-btob-page__lead + .maroan-btob-page__lead {
    margin-top: 1rem;
}

.maroan-kakejiku-hub__group {
    margin-bottom: 2rem;
}

.maroan-kakejiku-hub__group:last-child {
    margin-bottom: 0;
}

.maroan-kakejiku-hub__group-title {
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--mf-border);
    font-family: var(--mf-serif);
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--mf-ink);
}

.maroan-btob-page .maroan-kakejiku-hub__quick {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    margin: 0 0 1.5rem;
}

.maroan-btob-page .maroan-kakejiku-hub__quick-link {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--mf-border);
    border-radius: 999px;
    background: #fffdf9;
    color: var(--mf-moss);
    font-size: 0.86rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.maroan-btob-page .maroan-kakejiku-hub__quick-link:hover,
.maroan-btob-page .maroan-kakejiku-hub__quick-link:focus-visible {
    border-color: var(--mf-gold-light);
    background: var(--mf-washi);
    color: var(--mf-ink);
}

.maroan-brand-faq__list {
    display: grid;
    gap: 0.65rem;
}

.maroan-brand-faq__item {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    overflow: hidden;
}

.maroan-brand-faq__question {
    padding: 0.9rem 1rem;
    font-family: var(--mf-serif);
    font-weight: 500;
    color: var(--mf-ink);
    cursor: pointer;
    list-style: none;
    letter-spacing: 0.03em;
}

.maroan-brand-faq__question::-webkit-details-marker {
    display: none;
}

.maroan-brand-faq__answer {
    padding: 0 1rem 1rem;
    color: var(--mf-text-muted);
    line-height: 1.85;
    border-top: 1px solid var(--mf-border);
}

.maroan-brand-faq__answer p {
    margin: 0.85rem 0 0;
}

.maroan-btob-page--product-hub .maroan-product-hub__title {
    margin-bottom: 1rem;
}

.maroan-btob-page--product-hub .maroan-btob-page__section-title.maroan-product-hub__title::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 2px;
    margin: 0.85rem auto 0;
    background: var(--mf-gold);
}

.maroan-product-archive-child .maroan-product-archive__inner {
    font-family: var(--mf-sans);
    color: var(--mf-text);
}

.maroan-product-archive-child .maroan-btob-trust--standard {
    padding: 1.5rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-front-page .maroan-front-hub__section-title,
.maroan-front-page .maroan-front-section-title {
    margin: 0 0 0.75rem;
    font-family: var(--mf-serif);
    font-size: clamp(1.35rem, 2.8vw, 1.65rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-align: center;
    color: var(--mf-ink);
}

.maroan-front-page .maroan-front-hub__lead,
.maroan-front-page .maroan-front-hub__trust {
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    color: var(--mf-text-muted);
    line-height: 1.9;
}

.maroan-front-page .maroan-front-hub__trust {
    margin-bottom: 2rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
}

.maroan-front-page .maroan-front-hub__card,
.maroan-front-page .maroan-front-hub__pickup-card {
    border: 1px solid var(--mf-border);
    border-radius: 2px;
    background: #fffdf9;
    box-shadow: 0 4px 16px rgba(28, 36, 20, 0.04);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.maroan-front-page .maroan-front-hub__card:hover,
.maroan-front-page .maroan-front-hub__pickup-card:hover {
    border-color: var(--mf-gold-light);
    box-shadow: 0 8px 24px rgba(28, 36, 20, 0.08);
    transform: translateY(-2px);
}

.maroan-front-page .maroan-front-hub__quick-link {
    border: 1px solid var(--mf-border);
    border-radius: 999px;
    background: #fffdf9;
    color: var(--mf-moss);
}

.maroan-front-page .maroan-front-hub__quick-link:hover {
    border-color: var(--mf-gold-light);
    background: var(--mf-washi);
}

/* 画像は枠内に全体表示（トリミングしない） */
.maroan-brand-page .maroan-btob-page__category-media,
.maroan-brand-page .maroan-btob-page__card-media,
.maroan-brand-page .maroan-product-hub__card-media,
.maroan-brand-page .maroan-byoubu-hub__card-media,
.maroan-brand-page .maroan-kakejiku-hub__thumb,
.maroan-brand-page .maroan-front-hub__cat-media,
.maroan-brand-page .maroan-front-hub__entry-thumb,
.maroan-brand-page .maroan-product-archive__hub-card-media,
.maroan-brand-page .maroan-byoubu-process__media,
.maroan-brand-page .maroan-byoubu-hub__line-banner,
.maroan-brand-page .maroan-byoubu-hub__base-figure,
.maroan-brand-page .maroan-product-archive__banner,
.maroan-brand-page .maroan-btob-page__hero-media,
.maroan-brand-page .maroan-product-hub__hero,
.maroan-brand-page .maroan-byoubu-hub__hero,
.maroan-brand-page .maroan-product-card__thumb,
.maroan-brand-page .maroan-front-hub__hero-card {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mf-washi);
}

.maroan-brand-page .maroan-btob-page__category-media img,
.maroan-brand-page .maroan-btob-page__card-media img,
.maroan-brand-page .maroan-product-hub__card-media img,
.maroan-brand-page .maroan-byoubu-hub__card-media img,
.maroan-brand-page .maroan-kakejiku-hub__thumb img,
.maroan-brand-page .maroan-front-hub__cat-media img,
.maroan-brand-page .maroan-front-hub__entry-thumb img,
.maroan-brand-page .maroan-product-archive__hub-card-media img,
.maroan-brand-page .maroan-byoubu-process__media img,
.maroan-brand-page .maroan-byoubu-hub__line-banner img,
.maroan-brand-page .maroan-byoubu-hub__base-figure img,
.maroan-brand-page .maroan-product-archive__banner img,
.maroan-brand-page .maroan-btob-page__hero-media img,
.maroan-brand-page .maroan-product-hub__hero img,
.maroan-brand-page .maroan-byoubu-hub__hero img,
.maroan-brand-page .maroan-product-card__img,
.maroan-brand-page .maroan-front-hub__hero-card img,
.maroan-brand-page .maroan-front-hero-image img {
    object-fit: cover;
    object-position: center;
}

.maroan-brand-page .maroan-front-hero-columns > .wp-block-column:nth-child(2) .maroan-front-hero-image img,
.maroan-brand-page .maroan-front-hub__hero-card:nth-child(2) img {
    object-fit: fill;
}

@media (max-width: 960px) {
    .maroan-btob-page__category-grid--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}