/* =============================================
   古川ぶどう園 カスタムテーマ
   テーマカラー：グリーン × ホワイト ナチュラル系
   ============================================= */

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600&family=Noto+Sans+JP:wght@400;500&display=swap');

/* --- ベース --- */
body {
    font-family: 'Noto Sans JP', sans-serif;
    color: #333;
    background-color: #fafaf8;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Noto Serif JP', serif;
}

a {
    color: #3a6b35;
}
a:hover {
    color: #2a4f27;
}

/* --- Bootstrap変数の上書き --- */
:root {
    --bs-link-color: #3a6b35;
    --bs-link-hover-color: #2a4f27;
    --bs-primary: #3a6b35;
}

/* --- ボタン --- */
.ec-blockBtn--action,
.ec-cartBtn,
.ec-blockBtn--cancel {
    background-color: #3a6b35 !important;
    border-color: #3a6b35 !important;
    color: #fff !important;
    border-radius: 4px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.05em;
    transition: background-color 0.2s;
}
.ec-blockBtn--action:hover,
.ec-cartBtn:hover {
    background-color: #2a4f27 !important;
    border-color: #2a4f27 !important;
}
.ec-blockBtn--cancel {
    background-color: #888 !important;
    border-color: #888 !important;
}
.ec-blockBtn--cancel:hover {
    background-color: #666 !important;
    border-color: #666 !important;
}

/* --- ヘッダー --- */
.ec-layoutRole__header {
    background-color: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

.ec-headerNaviRole {
    max-width: 1200px;
    margin: 0 auto;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ロゴ */
.ec-headerTitle__logo a,
.ec-headerTitle__logo {
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    color: #3a6b35 !important;
    text-decoration: none;
    font-weight: 600;
}

/* ナビゲーション */
.ec-gnav__item a {
    color: #3a6b35;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.05em;
}
.ec-gnav__item a:hover {
    color: #2a4f27;
    text-decoration: underline;
}

/* カートアイコン */
.ec-headerNaviRole__cart .ec-cartNavi {
    color: #3a6b35;
}
.ec-cartNavi__badge {
    background-color: #3a6b35 !important;
}

/* 検索 */
.ec-searchnavRole__search input[type="search"] {
    border-color: #3a6b35;
}
.ec-searchnavRole__search button {
    background-color: #3a6b35;
    border-color: #3a6b35;
    color: #fff;
}

/* --- フッター --- */
.ec-layoutRole__footer {
    background-color: #fff;
    color: #333;
    margin-top: 60px;
    border-top: none;
}

.ec-footerRole {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
    background-color: #fff !important;
    color: #333;
    border: none !important;
}

.ec-footerNavi__link a {
    color: #555;
    font-size: 13px;
    text-decoration: none;
}
.ec-footerNavi__link a:hover {
    color: #3a6b35;
}

.ec-footerTitle__logo a {
    color: #3a6b35;
    font-family: 'Noto Serif JP', serif;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
}

.ec-footerTitle__copyright {
    color: #999;
    font-size: 12px;
    margin-top: 8px;
}

/* --- 商品一覧 --- */
.ec-shelfRole {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.ec-shelfGrid__item a {
    color: #333;
    text-decoration: none;
}

.ec-shelfGrid__item-name {
    font-family: 'Noto Serif JP', serif;
    font-size: 14px;
    color: #333;
}

.ec-price__price {
    color: #3a6b35;
    font-weight: 600;
}

/* 商品カードホバー */
.ec-shelfGrid__item:hover {
    opacity: 0.85;
    transition: opacity 0.2s;
}

/* --- 商品詳細 --- */
.ec-productRole__name {
    font-family: 'Noto Serif JP', serif;
    color: #222;
    font-size: 24px;
}

.ec-productRole__price .ec-price__price {
    color: #3a6b35;
    font-size: 24px;
    font-weight: 600;
}

/* --- ページタイトル --- */
.ec-pageHeader h1 {
    font-family: 'Noto Serif JP', serif;
    color: #3a6b35;
    border-bottom: 2px solid #3a6b35;
    padding-bottom: 10px;
}

/* --- パンくず --- */
.ec-breadcrumb a {
    color: #3a6b35;
}

/* --- フォーム --- */
.ec-input input:focus,
.ec-input textarea:focus,
.ec-input select:focus,
.ec-halfInput input:focus,
.ec-numberInput input:focus {
    border-color: #3a6b35;
    box-shadow: 0 0 0 2px rgba(58,107,53,0.15);
    outline: none;
}

/* --- ページトップボタン --- */
.ec-blockTopBtn {
    background-color: #3a6b35;
    color: #fff;
    border-radius: 50%;
}

/* --- メインレイアウト --- */
.ec-layoutRole__contents {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px;
}

/* フロントページはコンテナ制約を解除 */
body.front_page .ec-layoutRole__contents,
body.front_page .ec-layoutRole__main {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

/* --- セクション見出し共通 --- */
.ec-secHeading__en {
    color: #3a6b35;
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.ec-secHeading__line {
    background-color: #3a6b35;
}

/* --- NEW ITEM / おすすめ商品 --- */
.ec-newItemRole__title,
.ec-newItemRole__titleSub {
    font-family: 'Noto Serif JP', serif;
}

/* --- ニュース --- */
.ec-newsRole__news-title a {
    color: #3a6b35;
}

/* --- カート・注文フロー ステップ --- */
.ec-progress__item.is-complete .ec-progress__number {
    background-color: #3a6b35;
}
.ec-progress__item.is-current .ec-progress__number {
    background-color: #3a6b35;
    border-color: #3a6b35;
}

/* --- マイページ --- */
.ec-mypageRole .ec-pageHeader h1 {
    color: #3a6b35;
}
.ec-loginBtn {
    background-color: #3a6b35 !important;
    border-color: #3a6b35 !important;
    color: #fff !important;
}
.ec-loginBtn:hover {
    background-color: #2a4f27 !important;
}

/* --- カスタムロゴ --- */
.ec-custom-logo {
    height: 112px;
    width: auto;
    max-width: none !important;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

/* ロゴブロック（別スロット）は非表示 */
.ec-headerRole__title {
    display: none;
}

/* --- ヘッダーナビ レイアウト修正 --- */
.ec-headerNaviRole {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 12px;
}

.ec-headerNaviRole__left {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    width: auto !important;
}

.ec-headerNaviRole__right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    width: auto !important;
    margin-left: 24px;
}

.ec-headerNaviRole__search {
    min-width: 160px;
}

/* --- タブレット・スマホ対応 --- */
@media (max-width: 767px) {
    .ec-layoutRole__contents {
        padding: 16px 12px;
    }
    .ec-headerNaviRole {
        padding: 10px 12px;
    }
    .ec-custom-logo {
        height: 56px;
    }
    .ec-headerNaviRole__search {
        display: none;
    }
}
