/* サイト共通コンポーネント（トップ01の <style> から移設） */
body {
    font-family: 'Noto Sans JP', sans-serif;
    color: var(--text-dark);
    background-color: var(--bg-white);
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .font-serif {
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
}

.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

header.scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(8px);
    height: 64px;
    box-shadow: 0 1px 0 rgba(0,0,0,0.05);
}

@media (max-width: 1023px) {
    #site-header {
        background-color: #ffffff;
        box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
    }
    #site-header.scrolled {
        background-color: #ffffff;
        backdrop-filter: none;
    }
}

/*
 * --- モバイルハンバーガー（マークアップ: inc/header_home.php / 挙動: assets/js/mobile-nav.js）---
 *
 * z-index をここに集約して記載し、他コンポーネントとの前後関係を把握しやすくする。
 * - .announcement-bar: 100（components.css 下部で指定。スクロールしない帯でもメニューより下に回さない）
 * - #site-header: Tailwind z-[60]（固定ヘッダー）
 * - .mobile-nav-overlay: 110（告知バーより前面。半透明で背面を覆う）
 * - .mobile-nav-drawer: 120（オーバーレイより前面で実パネル）
 *
 * 商品詳細の .mobile-sticky-cart は z-index:1000 だが、メニュー展開中は背面スクロールを止めるため
 * body に is-mobile-nav-open を付け、下記で一時的に隠してドロワー操作を邪魔しないようにする。
 */
.mobile-nav-overlay {
    position: fixed;
    inset: 0;
    z-index: 110;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.mobile-nav-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.mobile-nav-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: min(300px, 88vw);
    z-index: 120;
    background: #fff;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.08);
    transform: translateX(100%);
    transition: transform 0.25s ease;
    overflow-y: auto;
}
.mobile-nav-drawer.is-open {
    transform: translateX(0);
}

/* メニュー開閉中は背面スクロールを止める（iOS 含め挙動を揃えるため class で制御し、JS から付け外しする） */
body.is-mobile-nav-open {
    overflow: hidden;
}

body.is-mobile-nav-open .mobile-sticky-cart {
    visibility: hidden;
}

.nav-link {
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    position: relative;
}
.nav-link::after {
    content: '';
    position: absolute;
    bottom: -2px; left: 0;
    width: 0; height: 1px;
    background: var(--leaf-olive-dark);
    transition: width 0.3s ease;
}
.nav-link:hover::after { width: 100%; }

.btn-shop {
    display: inline-block;
    padding: 1.25rem 3rem;
    background-color: var(--leaf-olive-dark);
    color: white;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    transition: transform 0.3s ease, background-color 0.3s ease;
}
.btn-shop:hover {
    background-color: #7A8E68;
    transform: translateY(-2px);
}

.category-img-container {
    overflow: hidden;
    aspect-ratio: 3/4;
}
.category-img-container img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform 1.2s ease;
}
.category-card:hover img {
    transform: scale(1.02);
}

.announcement-bar {
    background-color: var(--leaf-olive-dark);
    color: white;
    font-size: 10px;
    letter-spacing: 0.1em;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-thumb { background: var(--leaf-olive-mid); border-radius: 4px; }

/* フォーム・ボタン（会員ページ05と揃える） */
.btn-primary {
    background-color: var(--leaf-olive-dark);
    color: white;
    padding: 1rem 2rem;
    font-size: 0.9rem;
    letter-spacing: 0.2em;
    text-align: center;
    width: 100%;
    transition: all 0.3s;
    cursor: pointer;
    display: inline-block;
}
.btn-primary:hover { background-color: #7A8E68; transform: translateY(-1px); }

input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select, textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 2px;
    font-size: 14px;
    background: transparent;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--leaf-olive-dark); }
label { font-size: 12px; font-weight: 500; margin-bottom: 0.5rem; display: block; }

.order-card { border: 1px solid #f3f4f6; border-radius: 4px; padding: 1.5rem; transition: box-shadow 0.3s; }
.order-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.02); }
