/**
 * Kimuraya Theme Styles
 *
 * @package Kimuraya
 */

/* ==========================================================================
   Variables
   ========================================================================== */
:root {
    /* Colors */
    --color-primary: #333333;
    --color-secondary: #666666;
    --color-dark: #26373A;
    --color-background: #ffffff;
    --color-background-gray: #f5f5f5;
    --color-background-mv: #e0e0e0;
    --color-background-pickup: #F0EFED;
    --color-background-floor: #354862;
    --color-header-background: #EFC0C2;
    --color-border: #e5e5e5;
    --color-placeholder: #cccccc;
    --color-accent: #c86b6b;
    --color-accent-orange: #f29b8f;

    /* Typography */
    --font-family-gothic: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
    --font-family-mincho: "Shippori Mincho", "Hiragino Mincho ProN", serif;
    --font-family-garamond: "EB Garamond", serif;
    --font-size-base: 16px;
    --line-height-base: 1.8;

    /* Font Sizes */
    --font-size-xs: 0.5625rem;   /* 9px */
    --font-size-sm: 0.6875rem;   /* 11px */
    --font-size-md: 0.75rem;     /* 12px */
    --font-size-body-sm: 0.8125rem; /* 13px */
    --font-size-body: 0.875rem;  /* 14px */
    --font-size-body-lg: 0.9375rem; /* 15px */
    --font-size-lg: 1rem;        /* 16px */
    --font-size-xl: 1.125rem;    /* 18px */
    --font-size-2xl: 1.5rem;     /* 24px */
    --font-size-3xl: 1.75rem;    /* 28px */
    --font-size-35: 2.1875rem;   /* 35px */
    --font-size-4xl: 2.5rem;     /* 40px */
    --font-size-5xl: 3.125rem;   /* 50px */

    /* Spacing */
    --spacing-4: 4px;
    --spacing-6: 6px;
    --spacing-8: 8px;
    --spacing-10: 10px;
    --spacing-12: 12px;
    --spacing-15: 15px;
    --spacing-16: 16px;
    --spacing-20: 20px;
    --spacing-24: 24px;
    --spacing-30: 30px;
    --spacing-40: 40px;
    --spacing-50: 50px;
    --spacing-60: 60px;
    --spacing-80: 80px;
    --spacing-100: 100px;

    /* Layout */
    --content-width: 1140px;
    --content-width-narrow: 900px;
    --content-padding: 60px;

    /* Border Radius */
    --radius: 3px;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: var(--font-size-base);
}

body {
    margin: 0;
    font-family: var(--font-family-gothic);
    font-size: var(--font-size-lg);
    line-height: var(--line-height-base);
    color: var(--color-primary);
    background-color: var(--color-background);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

a {
    color: inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0;
    font-weight: 500;
}

p {
    margin: 0;
}

/* ==========================================================================
   Utility
   ========================================================================== */
.font-mincho {
    font-family: var(--font-family-mincho);
}

.font-gothic {
    font-family: var(--font-family-gothic);
}

.text-tight {
    letter-spacing: -0.1em;
}

.placeholder-image {
    background-color: var(--color-placeholder);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: var(--font-size-md);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.pc-only {
    display: block;
}

.sp-only {
    display: none;
}

.sp-sm-only {
    display: none;
}

@media screen and (max-width: 768px) {
    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }
}

@media screen and (max-width: 375px) {
    .sp-sm-only {
        display: block;
    }
}

/* ==========================================================================
   Layout
   ========================================================================== */
.site-main {
    overflow: hidden;
}

.section-inner {
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

/* ==========================================================================
   Section Common (Label & Title)
   ========================================================================== */
.section-label {
    font-family: var(--font-family-garamond);
    font-size: var(--font-size-md);
    letter-spacing: 0.1em;
    color: var(--color-secondary);
    margin: 0 0 5px;
}

.section-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-3xl);
    font-weight: 400;
    line-height: 1.25;
}

/* Section Padding */
.section-padding {
    padding: var(--spacing-100) 0;
}

/* Inner Width */
.inner-narrow {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.inner-wide {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

/* Tag */
.tag {
    display: inline-block;
    padding: 4px 14px;
    font-size: var(--font-size-sm);
    letter-spacing: 0;
    border-radius: var(--radius);
}

.tag--dark {
    background-color: var(--color-dark);
    color: #fff;
}

.tag--accent {
    background-color: var(--color-accent-orange);
    color: #fff;
    padding: 2px 10px;
    font-size: var(--font-size-xs);
}

/* Link with Arrow */
.link-with-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-10);
    font-size: var(--font-size-body);
    transition: opacity 0.3s;
}

.link-with-arrow:hover {
    opacity: 0.7;
}

.link-with-arrow__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: var(--font-size-md);
}

.link-with-arrow__icon--sm {
    width: 28px;
    height: 28px;
    font-size: var(--font-size-sm);
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: var(--color-header-background);
    transition: background-color 0.3s;
}

body.is-front-page .site-header {
    background-color: var(--color-header-background);
}

body.is-front-page .site-header.is-scrolled {
    background-color: var(--color-header-background);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-15) var(--spacing-40);
}

.header-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.header-logo-image {
    display: block;
    width: auto;
    height: 44px;
}

.header-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-xl);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--color-primary);
    transition: color 0.3s;
}

body.is-front-page .header-title {
    color: var(--color-primary);
}

body.is-front-page .site-header.is-scrolled .header-title {
    color: var(--color-primary);
}

.header-title-kana {
    letter-spacing: -0.3em;
}

.hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--spacing-8);
    width: 36px;
    height: 30px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.hamburger span {
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--color-primary);
    transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
}

.hamburger:hover span {
    opacity: 0.7;
}

body.is-front-page .hamburger span {
    background-color: var(--color-primary);
}

body.is-front-page .site-header.is-scrolled .hamburger span {
    background-color: var(--color-primary);
}

body.menu-open .site-header {
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.menu-open .header-title {
    color: #fff !important;
}

.hamburger.is-open span {
    background-color: #fff !important;
}

.hamburger.is-open span:first-child {
    transform: translateY(4.5px) rotate(45deg);
}

.hamburger.is-open span:last-child {
    transform: translateY(-4.5px) rotate(-45deg);
}

/* ==========================================================================
   Mobile Menu
   ========================================================================== */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    background-color: var(--color-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
}

.mobile-menu-inner {
    text-align: center;
}

.mobile-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mobile-menu-item {
    margin-bottom: var(--spacing-8);
}

.mobile-menu-link {
    display: inline-block;
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-2xl);
    color: #fff;
    padding: var(--spacing-16) var(--spacing-20);
    transition: opacity 0.3s;
}

.mobile-menu-link:hover {
    opacity: 0.7;
}

.mobile-menu-floor {
    margin-right: var(--spacing-8);
}

body.menu-open {
    overflow: hidden;
}

/* ==========================================================================
   Main Visual
   ========================================================================== */
.section-mv {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: var(--color-background-mv);
    text-align: center;
    overflow: hidden;
}

.mv-swiper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.mv-swiper .swiper-slide {
    overflow: hidden;
}

.mv-media {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mv-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 2;
    pointer-events: none;
}

.mv-content {
    position: relative;
    z-index: 3;
    padding: 0 var(--content-padding);
    color: #fff;
}

.mv-content .mv-label,
.mv-content .mv-title,
.mv-content .mv-description {
    color: #fff;
}

.mv-label {
    font-family: var(--font-family-garamond);
    font-size: var(--font-size-body-sm);
    letter-spacing: 0.1em;
    margin-bottom: var(--spacing-30);
    color: var(--color-primary);
}

.mv-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-5xl);
    font-weight: 400;
    letter-spacing: -0.02em;
    margin-bottom: var(--spacing-40);
    transform: scaleY(1.25);
    transform-origin: center center;
}

.mv-title-kana {
    letter-spacing: -0.3em;
}

.mv-description {
    font-size: var(--font-size-body-lg);
    line-height: 2.2;
    font-family: var(--font-family-mincho);
}

/* ==========================================================================
   Pick Up + News Wrapper (100vh)
   ========================================================================== */
.section-pickup-news {
    display: flex;
    flex-direction: column;
}

/* ==========================================================================
   Pick Up Section
   ========================================================================== */
.section-pickup {
    display: grid;
    grid-template-columns: 1fr;
    flex-shrink: 0;
}

.section-pickup--col-2 {
    grid-template-columns: repeat(2, 1fr);
}

.section-pickup--col-3 {
    grid-template-columns: repeat(3, 1fr);
}

.pickup-card {
    display: flex;
    gap: var(--spacing-20);
    padding: var(--spacing-30) var(--spacing-40);
    background-color: var(--color-background-pickup);
    border-right: 1px solid #DDDDDD;
}

.pickup-card:last-child {
    border-right: none;
}

.pickup-card-image {
    flex-shrink: 0;
    width: 100px;
    height: 75px;
    background-color: var(--color-placeholder);
    overflow: hidden;
    border-radius: var(--radius);
}

.pickup-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pickup-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.pickup-card-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-12);
    margin-bottom: var(--spacing-6);
}

.pickup-card-floor {
    font-family: var(--font-family-gothic);
    font-size: var(--font-size-sm);
    color: var(--color-secondary);
    font-weight: 500;
}


.pickup-card-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-body-lg);
    font-weight: 400;
    line-height: 1.6;
}

/* ==========================================================================
   News Section
   ========================================================================== */
.section-news {
    flex: 1;
    display: flex;
    align-items: center;
    padding: var(--spacing-100) 0;
}

.section-news .section-inner {
    width: 100%;
}

.news-inner {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: var(--spacing-60);
}

.news-list {
    border-top: 1px solid #DDDDDD;
}

.news-item {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-20);
    padding: var(--spacing-20) 0;
    border-bottom: 1px solid var(--color-border);
    position: relative;
    transition: background-color 0.2s ease;
}

.news-item:hover {
    background-color: rgba(0, 0, 0, 0.02);
}

.news-item-date {
    flex-shrink: 0;
    font-size: var(--font-size-body);
    color: var(--color-primary);
}


.news-item-title {
    flex: 1;
    font-size: var(--font-size-body-lg);
    line-height: 1.6;
}

a.news-item-title::after {
    content: '';
    position: absolute;
    inset: 0;
}

.news-more {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--spacing-30);
}


/* ==========================================================================
   Floor Guide Section
   ========================================================================== */
.section-floor {
    position: relative;
    background-color: var(--color-background-floor);
    color: #fff;
}

.section-floor.is-light-floor {
    color: var(--color-primary);
}

.section-floor.is-light-floor .section-label {
    color: var(--color-primary);
}

.section-floor.is-light-floor .floor-accordion,
.section-floor.is-light-floor .floor-item + .floor-item {
    border-color: rgba(51, 51, 51, 0.3);
}

/* 背景パターン */
.floor-pattern {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.floor-pattern.is-active {
    opacity: 1;
}

/* 波線パターン (3F) */
.floor-pattern--wave {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='12' viewBox='0 0 60 12'%3E%3Cpath d='M0 6 Q15 0 30 6 T60 6' fill='none' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 60px 12px;
}

/* ドットパターン (3F) */
.floor-pattern--dot {
    background-image: radial-gradient(circle, rgba(255,255,255,0.1) 1.5px, transparent 1.5px);
    background-size: 24px 24px;
}

/* 斜線パターン (2F) */
.floor-pattern--stripe {
    background-image: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 8px,
        rgba(255,255,255,0.05) 8px,
        rgba(255,255,255,0.05) 10px
    );
}

.floor-inner {
    display: grid;
    grid-template-columns: 4fr 6fr;
    gap: var(--spacing-60);
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
    align-items: start;
}

.floor-image {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.floor-image-item {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 240px;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.floor-image-item.is-active {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    opacity: 1;
}

.section-floor .section-label {
    color: #fff;
}

.section-floor .section-title {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-40);
}

.floor-accordion {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

.floor-item + .floor-item {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.floor-item-header {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: var(--spacing-15) 0;
    cursor: pointer;
}

.floor-item-info {
    flex: 1;
}

.floor-item-number {
    font-family: var(--font-family-gothic);
    font-size: var(--font-size-lg);
}

.floor-item-name {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-xl);
    font-weight: 400;
    letter-spacing: 0;
}

.floor-item-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    color: var(--color-background-floor);
    font-size: var(--font-size-sm);
    line-height: 1;
    transition: transform 0.3s;
}

.floor-item.is-active .floor-item-toggle {
    transform: rotate(-180deg);
}

.floor-item-body {
    display: none;
    padding-bottom: var(--spacing-24);
}

.floor-item.is-active .floor-item-body {
    display: block;
}

.floor-item-desc {
    font-size: var(--font-size-body);
    line-height: 1.8;
    margin-bottom: var(--spacing-16);
}


/* ==========================================================================
   Recommend Section (今月のおすすめ)
   ========================================================================== */
.recommend-inner {
    display: grid;
    grid-template-columns: 50% 1fr;
    gap: var(--spacing-80);
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.recommend-header {
    margin-bottom: var(--spacing-30);
}


/* タブ */
.recommend-tab {
    display: flex;
    align-items: center;
    gap: var(--spacing-16);
    padding: var(--spacing-16) 0;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    transition: opacity 0.3s;
    position: relative;
}

.recommend-tab:hover {
    opacity: 0.7;
}

.recommend-tab.is-active {
    border-bottom-color: var(--color-accent);
}

.recommend-tab.is-active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-accent);
}

.recommend-tab-floor {
    font-size: var(--font-size-body-sm);
    color: var(--color-secondary);
}

.recommend-tab.is-active .recommend-tab-floor {
    color: var(--color-accent);
}

.recommend-tab-name {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-lg);
}

.recommend-tab.is-active .recommend-tab-name {
    color: var(--color-accent);
}

/* スライダーコンテナ */
.recommend-sliders {
    position: relative;
    overflow: hidden;
}

.recommend-slider-wrap {
    display: none;
}

.recommend-slider-wrap.is-active {
    display: block;
}

/* テキスト切り替え */
.recommend-item-text {
    display: none;
}

.recommend-item-text.is-active {
    display: block;
}

/* Swiper */
.recommend-main-swiper {
    width: 100%;
    margin-bottom: var(--spacing-20);
}

.recommend-main-swiper .swiper-slide {
    width: 100%;
}


/* メイン画像 */
.recommend-main-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: var(--color-placeholder);
    /* margin-bottom: var(--spacing-24); */
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-2xl);
    color: #999;
    border-radius: var(--radius);
}

.recommend-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* サムネイル */
.recommend-thumb-swiper {
    width: 100%;
    margin-bottom: var(--spacing-20);
}

.recommend-thumb-swiper .swiper-wrapper {
    display: flex;
    gap: var(--spacing-10);
}

.recommend-thumb-swiper .swiper-slide {
    width: 60px !important;
    flex-shrink: 0;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s;
}

.recommend-thumb-swiper .swiper-slide-thumb-active {
    opacity: 1;
}

.recommend-thumb {
    width: 60px;
    height: 60px;
    background-color: var(--color-placeholder);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-md);
    color: #999;
    border-radius: var(--radius);
}

.recommend-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 商品情報 */
.recommend-item-name {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-xl);
    margin-bottom: var(--spacing-12);
}

.recommend-item-price {
    font-size: var(--font-size-body);
    margin-bottom: var(--spacing-4);
}

.recommend-item-desc {
    font-size: var(--font-size-body);
    line-height: 1.9;
    margin-top: var(--spacing-16);
}

/* ==========================================================================
   Google Map Section
   ========================================================================== */
.section-map {
    width: 100%;
    height: 40vh;
}

.section-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* ==========================================================================
   More Section
   ========================================================================== */
.section-more {
    padding: var(--spacing-40) 0;
    text-align: center;
    background-color: var(--color-background-gray);
}

.more-button {
    display: inline-block;
    padding: var(--spacing-16) var(--spacing-80);
    background-color: var(--color-dark);
    color: #fff;
    font-size: var(--font-size-body);
    letter-spacing: 0.1em;
    transition: opacity 0.3s;
}

.more-button:hover {
    opacity: 0.8;
}

/* ==========================================================================
   Access Section
   ========================================================================== */
.access-header {
    margin-bottom: var(--spacing-50);
}
.access-table {
    border-top: 1px solid var(--color-border);
}
.access-row {
    display: flex;
    align-items: baseline;
    padding: var(--spacing-24) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-body-lg);
}

.access-row-label {
    flex-shrink: 0;
    width: 120px;
    color: var(--color-primary);
}

.access-row-value {
    flex: 1;
}

.access-row-value a {
    display: block;
    text-decoration: underline;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
    padding: var(--spacing-60) 0;
    background-color: var(--color-dark);
    color: #fff;
}

.footer-inner {
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.footer-columns {
    display: flex;
    gap: var(--spacing-60);
}

.footer-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-12);
}

.footer-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-8);
}

.footer-group-title {
    font-family: var(--font-family-mincho);
    font-weight: 500;
}

.footer-group-title--logo {
    margin: 0;
    line-height: 1;
}

.footer-logo-image {
    display: block;
    width: auto;
    height: 56px;
}

.footer-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

.footer-item {
    font-size: var(--font-size-body);
    line-height: 1.8;
}

.footer-link {
    color: #fff;
    transition: opacity 0.3s;
}

.footer-link:hover {
    opacity: 0.7;
}

.footer-text {
    font-size: var(--font-size-body);
    letter-spacing: 0;
}

/* Copyright */
.copyright {
    background-color: #000;
    padding: var(--spacing-20) 0;
    text-align: center;
}

.copyright-text {
    font-family: var(--font-family-garamond);
    font-size: var(--font-size-body-sm);
    color: #fff;
    letter-spacing: 0.05em;
}

/* ==========================================================================
   Subpage (下層ページ共通)
   ========================================================================== */
.page-subpage {
    padding-top: 80px;
}

/* ヒーローセクション */
.subpage-hero-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: var(--spacing-60) var(--content-padding) var(--spacing-40);
}

.subpage-hero-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-3xl);
    font-weight: 400;
    letter-spacing: 0.05em;
}

.subpage-hero-subtitle {
    font-family: var(--font-family-garamond);
    font-size: var(--font-size-body);
    letter-spacing: 0.1em;
    color: var(--color-secondary);
}

.subpage-hero-image {
    width: 100%;
}

.subpage-hero-image .placeholder-image,
.subpage-hero-image img {
    width: 100%;
    height: 30vh;
    object-fit: cover;
}

.subpage-hero-description {
    max-width: var(--content-width-narrow);
    margin: var(--spacing-40) auto;
    padding: 0 var(--content-padding);
    font-size: var(--font-size-body);
}

.subpage-hero-description p {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-body);
    line-height: 2;
}

/* 今月のおすすめセクション */
.subpage-recommend {
    background-color: var(--color-background-gray);
}

.subpage-recommend-inner {
    max-width: var(--content-width-narrow);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.subpage-recommend-header {
    margin-bottom: var(--spacing-40);
}

.subpage-recommend-slider {
    max-width: 500px;
    margin: 0 auto;
}

/* メイン画像 */
.subpage-recommend-main-swiper {
    margin-bottom: var(--spacing-16);
}

.subpage-recommend-main-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: var(--color-placeholder);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-2xl);
    color: #999;
}

.subpage-recommend-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* サムネイル */
.subpage-recommend-thumb-swiper {
    margin-bottom: var(--spacing-24);
}

.subpage-recommend-thumb-swiper .swiper-wrapper {
    display: flex;
    gap: var(--spacing-10);
}

.subpage-recommend-thumb-swiper .swiper-slide {
    width: 60px !important;
    flex: 0 0 60px;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s;
}

.subpage-recommend-thumb-swiper .swiper-slide-thumb-active {
    opacity: 1;
}

.subpage-recommend-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-color: var(--color-placeholder);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-md);
    color: #999;
}

.subpage-recommend-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 商品情報 */
.subpage-recommend-text {
    display: none;
}

.subpage-recommend-text.is-active {
    display: block;
}

.subpage-recommend-name {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-xl);
    margin-bottom: var(--spacing-12);
}

.subpage-recommend-price {
    font-size: var(--font-size-body);
    margin-bottom: var(--spacing-4);
}

.subpage-recommend-desc {
    font-size: var(--font-size-body);
    line-height: 1.9;
    margin-top: var(--spacing-16);
}

/* メニューセクション */
.subpage-menu-inner {
    max-width: var(--content-width-narrow);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.subpage-menu-header {
    margin-bottom: var(--spacing-40);
}

.subpage-menu-category {
    margin-bottom: var(--spacing-20);
}

.subpage-menu-category .tag {
    padding: 8px 20px;
    font-size: var(--font-size-body);
}

.subpage-menu-content {
    max-width: 600px;
    margin: 0 auto;
}

.subpage-menu-category {
    display: inline-block;
    background-color: var(--color-accent-orange);
    color: #fff;
    padding: 4px 16px;
    font-size: var(--font-size-body-lg);
    font-weight: 600;
    margin-top: var(--spacing-40);
    margin-bottom: var(--spacing-16);
    border-radius: 3px;
}

.subpage-menu-category:first-child {
    margin-top: 0;
}

.subpage-menu-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid var(--color-border);
}

.subpage-menu-table tr {
    border-bottom: 1px solid var(--color-border);
}

.subpage-menu-table td {
    padding: var(--spacing-16) 0;
    vertical-align: middle;
}

.subpage-menu-table-image {
    width: 80px;
    padding-right: var(--spacing-30);
}

.subpage-menu-table-image img,
.subpage-menu-table-image .placeholder-image {
    width: 50px;
    height: 50px;
    object-fit: cover;
    border-radius: 3px;
}

.subpage-menu-table-name {
    font-size: var(--font-size-body);
}

.subpage-menu-table-price {
    text-align: right;
    font-size: var(--font-size-body);
    white-space: nowrap;
}

.subpage-menu-note {
    margin-top: var(--spacing-20);
    font-size: var(--font-size-body-sm);
    color: var(--color-secondary);
}

/* PDFセクション */
.subpage-pdf-inner {
    max-width: var(--content-width-narrow);
    margin: 0 auto;
    padding: 0 var(--content-padding);
    text-align: center;
}

.subpage-pdf-button {
    display: inline-block;
    padding: var(--spacing-16) var(--spacing-80);
    background-color: var(--color-dark);
    color: #fff;
    font-size: var(--font-size-body);
    letter-spacing: 0.1em;
    transition: opacity 0.3s;
}

.subpage-pdf-button:hover {
    opacity: 0.8;
}

/* 下層アクセスセクション */
.subpage-access-inner {
    max-width: var(--content-width-narrow);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.subpage-access-header {
    margin-bottom: var(--spacing-40);
}

.subpage-access-content {
    max-width: 600px;
    margin: 0 auto;
}

/* スティッキーボタン */
.sticky-buttons {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}

.sticky-buttons.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sticky-button {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-16) var(--spacing-20);
    font-size: var(--font-size-body);
    font-weight: 500;
    text-align: center;
    transition: opacity 0.3s;
}

@media (min-width: 768px) {
    .sticky-button {
        padding: var(--spacing-20) var(--spacing-20);
        font-size: var(--font-size-xl);
    }
}

.sticky-button:hover {
    opacity: 0.8;
}

.sticky-button--tel {
    background-color: var(--color-dark);
    color: #fff;
}

.sticky-button--reserve {
    background-color: var(--color-accent);
    color: #fff;
}

/* ==========================================================================
   News Archive (お知らせ一覧)
   ========================================================================== */
.subpage-hero--simple {
    padding: var(--spacing-80) var(--content-padding) var(--spacing-60);
}

.subpage-hero--simple .subpage-hero-header {
    justify-content: space-between;
    align-items: baseline;
    padding: 0;
}

.news-archive-content {
    background-color: var(--color-background);
    padding-top: 80px;
}

.news-archive-inner {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--spacing-60);
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

/* Sidebar */
.news-sidebar {
    position: sticky;
    top: var(--spacing-40);
    align-self: start;
}

.news-sidebar-title {
    font-size: var(--font-size-body);
    font-weight: 500;
    margin-bottom: var(--spacing-16);
    padding-bottom: var(--spacing-12);
    border-bottom: 1px solid var(--color-border);
}

.news-category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.news-category-item {
    margin-bottom: var(--spacing-8);
}

.news-category-item a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-8) 0;
    font-size: var(--font-size-body-sm);
    color: var(--color-text);
    transition: color 0.2s ease;
}

.news-category-item a:hover {
    color: var(--color-accent);
}

.news-category-item.is-active a {
    color: var(--color-accent);
    font-weight: 500;
}

.news-category-count {
    color: var(--color-text-light);
    font-size: var(--font-size-body-sm);
}

/* SP Category Select */
.news-category-select-wrap {
    margin-bottom: var(--spacing-30);
}

.news-category-select {
    width: 100%;
    padding: var(--spacing-12) var(--spacing-16);
    font-size: var(--font-size-body);
    color: var(--color-text);
    background-color: #fff;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    cursor: pointer;
}

.news-category-select:focus {
    outline: none;
    border-color: var(--color-primary);
}

/* Main content */
.news-main {
    min-width: 0;
}

.news-list--archive {
    max-width: none;
    margin: 0;
}

.no-posts {
    text-align: center;
    color: var(--color-text-light);
    padding: var(--spacing-60) 0;
}

/* Pagination */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-8);
    margin-top: var(--spacing-60);
}

.pagination .nav-links {
    display: flex;
    align-items: center;
    gap: var(--spacing-8);
}

.pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--spacing-12);
    font-size: var(--font-size-body);
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    transition: all 0.2s ease;
}

.pagination .page-numbers:hover {
    background-color: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.pagination .page-numbers.current {
    background-color: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.pagination .prev,
.pagination .next {
    border: none;
    font-size: var(--font-size-lg);
}

.pagination .prev:hover,
.pagination .next:hover {
    background-color: transparent;
    color: var(--color-accent);
    border: none;
}

/* ==========================================================================
   News Single (お知らせ詳細)
   ========================================================================== */
.news-single-content {
    background-color: var(--color-background);
}

.news-single-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.news-article {
    margin: 0 auto;
}

.news-article-thumbnail {
    margin-bottom: var(--spacing-40);
}

.news-article-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.news-article-header {
    margin-bottom: var(--spacing-40);
}

.news-article-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-16);
    margin-bottom: var(--spacing-16);
}

.news-article-date {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
}

.news-article-title {
    font-size: var(--font-size-2xl);
    line-height: 1.6;
}

.news-article-body {
    font-size: var(--font-size-body-lg);
    line-height: 2;
    padding-top: var(--spacing-40);
    border-top: 1px solid var(--color-border);
    overflow: hidden;
}

.news-article-body p {
    margin-bottom: var(--spacing-24);
}

.news-article-body p:last-child {
    margin-bottom: 0;
}

.news-article-body img {
    max-width: 100%;
    width: auto;
    height: auto;
    margin: var(--spacing-30) 0;
}

.news-article-body figure {
    max-width: 100%;
    margin: var(--spacing-30) 0;
}

.news-article-body figure img {
    margin: 0;
}

.news-article-body .wp-block-image {
    max-width: 100%;
    margin: var(--spacing-30) 0;
}

.news-article-body .wp-block-image img {
    margin: 0;
}

.news-article-body .wp-caption-text,
.news-article-body figcaption {
    display: none;
}

.news-article-body h2,
.news-article-body h3,
.news-article-body h4 {
    margin-top: var(--spacing-40);
    margin-bottom: var(--spacing-20);
}

.news-article-body ul,
.news-article-body ol {
    margin: var(--spacing-24) 0;
    padding-left: var(--spacing-24);
}

.news-article-body li {
    margin-bottom: var(--spacing-8);
}

.news-article-footer {
    margin-top: var(--spacing-60);
    padding-top: var(--spacing-40);
    border-top: 1px solid var(--color-border);
    text-align: center;
}

.link-with-arrow--back {
    flex-direction: row-reverse;
}

.link-with-arrow--back .link-with-arrow__icon {
    margin-right: var(--spacing-8);
    margin-left: 0;
}

@media screen and (max-width: 979px) {
    .pickup-card {
        display: flex;
        flex-direction: column;
    }
}

/* ==========================================================================
   Responsive (SP)
   ========================================================================== */
@media screen and (max-width: 768px) {
    :root {
        --content-padding: 20px;
    }

    /* Header */
    .header-inner {
        padding: var(--spacing-20);
    }

    .header-title {
        font-size: var(--font-size-lg);
    }

    .header-logo-image {
        height: 32px;
    }

    .hamburger {
        width: 32px;
        height: 20px;
        gap: var(--spacing-10);
    }

    /* MV */
    .section-mv {
        padding: 0 var(--spacing-20);
    }

    .mv-content {
        padding: 0;
        width: 90%;
    }

    .mv-label {
        font-size: var(--font-size-md);
        margin-bottom: var(--spacing-24);
    }

    .mv-title {
        font-size: var(--font-size-35);
        margin-bottom: var(--spacing-30);
    }

    .mv-description {
        font-size: var(--font-size-body);
        line-height: 2;
        text-align: left;
    }

    /* Pickup */
    .section-pickup,
    .section-pickup--col-2,
    .section-pickup--col-3 {
        grid-template-columns: 1fr;
    }

    .pickup-card {
        flex-direction: row;
        padding: var(--spacing-20);
        border-right: none;
        border-bottom: 1px solid #DDDDDD;
    }

    .pickup-card:last-child {
        border-bottom: none;
    }

    /* Mobile Menu */
    .mobile-menu {
        align-items: flex-start;
        justify-content: flex-start;
        padding: 100px var(--content-padding);
    }

    .mobile-menu-inner {
        text-align: left;
    }

    /* News */
    .section-news {
        padding: var(--spacing-100) 0;
    }

    .news-inner {
        grid-template-columns: 1fr;
        gap: var(--spacing-30);
    }

    .news-item {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: var(--spacing-8) var(--spacing-12);
        padding: var(--spacing-16) 0;
    }

    .news-item-date {
        grid-row: 1;
        grid-column: 1;
    }

    .news-item .tag {
        grid-row: 1;
        grid-column: 2;
        justify-self: start;
    }

    .news-item-title {
        grid-row: 2;
        grid-column: 1 / -1;
    }

    /* News Archive / Single */
    .subpage-hero--simple {
        padding: var(--spacing-60) var(--content-padding) var(--spacing-40);
    }

    .subpage-hero--simple .subpage-hero-header {
        flex-direction: column;
        gap: var(--spacing-8);
        text-align: center;
    }

    .news-archive-inner {
        display: block;
    }

    .news-article-title {
        font-size: var(--font-size-xl);
    }

    .news-article-body {
        font-size: var(--font-size-body);
    }

    .pagination .page-numbers {
        min-width: 36px;
        height: 36px;
        font-size: var(--font-size-body-sm);
    }

    /* Floor Guide */
    .section-floor {
        padding: var(--spacing-100) 0;
    }

    .floor-inner {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-20);
    }

    .floor-image {
        align-self: start;
        margin-top: 0;
    }

    .section-floor .section-title {
        font-size: var(--font-size-xl);
        margin-bottom: var(--spacing-30);
    }

    .floor-item-header {
        padding: var(--spacing-16) 0;
    }

    .floor-item-number {
        font-size: var(--font-size-lg);
    }

    .floor-item-name {
        font-size: var(--font-size-lg);
    }

    .floor-item-body {
        padding-bottom: var(--spacing-20);
    }

    .floor-item-desc {
        font-size: var(--font-size-body-sm);
        margin-bottom: var(--spacing-12);
    }

    /* Recommend */
    .recommend-inner {
        grid-template-columns: 1fr;
        gap: var(--spacing-24);
    }

    /* Access */
    .access-row {
        flex-direction: column;
        gap: var(--spacing-8);
    }

    .access-label {
        width: auto;
    }

    /* Subpage Hero */
    .subpage-hero-header {
        flex-direction: column;
        gap: var(--spacing-8);
        padding-top: var(--spacing-30);
    }

    /* News Single */
    .news-single-content {
        padding-top: var(--spacing-30);
    }

    /* Footer */
    .site-footer {
        padding: var(--spacing-40) 0;
    }

    .footer-columns {
        flex-direction: column;
        gap: var(--spacing-30);
    }

    .footer-column {
        gap: var(--spacing-10);
    }
}

/* ==========================================================================
   Simple Page (プライバシーポリシー・会社概要・サイトマップ)
   ========================================================================== */
.page-simple .subpage-hero--simple {
    background-color: var(--color-background);
}

.simple-page-content {
    background-color: var(--color-background);
    padding-top: 0;
}

.simple-page-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

.simple-block-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-xl);
    font-weight: 400;
    margin-top: var(--spacing-40);
    margin-bottom: var(--spacing-16);
    padding-bottom: var(--spacing-8);
    border-bottom: 1px solid var(--color-border);
}

.simple-block-title:first-child {
    margin-top: 0;
}

.simple-block-content {
    margin-bottom: var(--spacing-40);
}

.simple-row {
    padding: var(--spacing-16) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-body-lg);
    line-height: 1.8;
}

.simple-row a {
    color: var(--color-primary);
    text-decoration: underline;
}

.simple-row a:hover {
    text-decoration: none;
}

/* Sitemap */
.sitemap-nav {
    font-size: var(--font-size-body-lg);
    line-height: 2;
}

.sitemap-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sitemap-list > li {
    padding: var(--spacing-16) 0;
    border-bottom: 1px solid var(--color-border);
}

.sitemap-list > li:first-child {
    border-top: 1px solid var(--color-border);
}

.sitemap-list a {
    color: var(--color-primary);
    transition: opacity 0.3s;
}

.sitemap-list a:hover {
    opacity: 0.7;
}

.sitemap-category {
    font-weight: 500;
}

.sitemap-list ul {
    list-style: none;
    padding: 0;
    margin: var(--spacing-8) 0 0 var(--spacing-24);
}

.sitemap-list ul li {
    padding: var(--spacing-4) 0;
}

/* ==========================================================================
   Page Default (固定ページ)
   ========================================================================== */
.page-default {
    padding: var(--spacing-80) var(--content-padding);
    background-color: var(--color-background);
}

.page-default .entry-header {
    max-width: 900px;
    margin: 0 auto var(--spacing-40);
    text-align: center;
}

.page-default .entry-title {
    font-family: var(--font-family-mincho);
    font-size: var(--font-size-3xl);
    font-weight: 400;
    color: var(--color-text);
}

.page-default .entry-content,
.simple-page-inner.entry-content {
    max-width: 900px;
    margin: 0 auto;
    font-size: var(--font-size-body-lg);
    line-height: 2;
    color: var(--color-text);
}

.simple-page-inner.entry-content h1,
.simple-page-inner.entry-content h2,
.simple-page-inner.entry-content h3,
.simple-page-inner.entry-content h4 {
    font-family: var(--font-family-mincho);
    font-weight: 400;
}

.page-default .entry-content h2,
.simple-page-inner.entry-content h2 {
    font-size: var(--font-size-xl);
    margin: var(--spacing-40) 0 var(--spacing-16);
    padding-bottom: var(--spacing-8);
    border-bottom: 1px solid var(--color-border);
}

.page-default .entry-content h3,
.simple-page-inner.entry-content h3 {
    font-size: var(--font-size-lg);
    margin: var(--spacing-30) 0 var(--spacing-12);
}

.simple-page-inner.entry-content h4 {
    font-size: var(--font-size-body-lg);
    margin: var(--spacing-24) 0 var(--spacing-8);
}

.page-default .entry-content p,
.simple-page-inner.entry-content p {
    margin-bottom: var(--spacing-16);
}

.page-default .entry-content ul,
.page-default .entry-content ol,
.simple-page-inner.entry-content ul,
.simple-page-inner.entry-content ol {
    margin: var(--spacing-16) 0;
    padding-left: var(--spacing-24);
}

.page-default .entry-content li,
.simple-page-inner.entry-content li {
    margin-bottom: var(--spacing-8);
}

.page-default .entry-content a,
.simple-page-inner.entry-content a {
    color: var(--color-primary);
    text-decoration: underline;
}

.page-default .entry-content a:hover,
.simple-page-inner.entry-content a:hover {
    text-decoration: none;
}

@media (max-width: 768px) {
    .page-default {
        padding: var(--spacing-60) var(--content-padding);
    }

    .page-default .entry-title {
        font-size: var(--font-size-2xl);
    }

    .page-default .entry-content,
    .simple-page-inner.entry-content {
        font-size: var(--font-size-body);
    }
}

/* ==========================================================================
   390px以下
   ========================================================================== */
@media (max-width: 390px) {
    /* TOP: Floor Guide */
    .page-top .floor-inner {
        grid-template-columns: 4.5fr 5.5fr;
    }
}
