@charset "UTF-8";
/*
Theme Name: iihcart-theme
Theme URI: https://imaoikiruhito-plugin.com/
Author: Imaoikiruhito
Author URI: https://www.imaoikiruhito.com/
Description: Generic e-commerce theme for Imaoikiruhito Cart Plugin
Version: 1.0.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl.html
Text Domain: iihcart-theme
Tags: e-commerce, cart, shop
*/

/* ==========================================================================
   CSS Variables

   以下の変数のうち一部はカスタマイザー（外観 → カスタマイズ → 配色 / ヘッダー /
   トップページ設定）で上書き可能。出力元は lib/style/common.php で、
   <style>:root{...}</style> をインラインで wp_head に注入する。

   - カスタマイザーで上書きされる変数:
       --color-primary, --color-button, --color-link, --color-text,
       --color-heading-bg, --color-footer-bg
     （--color-primary-dark と --color-button-hover は上記から自動生成）
     （--iihcart-logo-h-pc / --iihcart-logo-h-sp / --iihcart-hero-overlay /
       --iihcart-catchcopy はインラインで追加定義される）

   - 意図的に固定（カスタマイザー非対象）:
       --color-error, --color-text-light, --color-gray-*, --color-white,
       --container-width, --font-family, --border-radius-*,
       --padded-content-padding
     配色の基調には影響しない補助変数のため、過剰なカスタマイズ項目を避けて
     固定としている。変更が必要な場合は本ファイル直接編集か子テーマで対応。
   ========================================================================== */
:root {
	--color-primary: #b38a12;
	--color-primary-dark: #967310;
	--color-button: #e66000;
	--color-button-hover: #cc5500;
	--color-link: #006db2;
	--color-error: #e60012;
	--color-text: #111;
	--color-text-light: #666;
	--color-heading-bg: #f2efe6;
	--color-gray-bg: #f0f0f0;
	--color-gray-border: #ccc;
	--color-gray-light: #e5e5e5;
	--color-white: #fff;
	--color-footer-bg: #f2efe6;
	--container-width: 1000px;
	--font-family: "ヒラギノ角ゴ ProN","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;
	--border-radius-btn: 30px;
	--border-radius-sm: 4px;
	--padded-content-padding: 16px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--color-text); font-family: var(--font-family); font-size: 16px; line-height: 1.8; margin: 0; -webkit-font-smoothing: antialiased; }
a { color: var(--color-link); text-decoration: none; transition: opacity .3s; }
a:hover { opacity: .7; }
img { max-width: 100%; height: auto; }
h1,h2,h3,h4,h5,h6 { font-weight: 600; line-height: 1.4; }
ul.iihcart-breadcrumbs { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 0; }
ul.iihcart-breadcrumbs li { font-size: 12px; color: var(--color-text-light); }
ul.iihcart-breadcrumbs li a { color: var(--color-text-light); text-decoration: none; }
ul.iihcart-breadcrumbs li a:hover { text-decoration: underline; }
ul.iihcart-breadcrumbs .breadcrumb-separator { margin: 0 8px; }
ul.iihcart-breadcrumbs .breadcrumb-home-icon { display: inline-flex; vertical-align: middle; }

/* ==========================================================================
   Layout
   ========================================================================== */
.iihcart-container { max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.site-content { padding-bottom: 160px; }
@media(max-width:768px) {
	.iihcart-container { padding: 0 20px; }
	.site-content { padding-bottom: 80px; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header { background: var(--color-white); position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid #ddd; }
.header-top { display: flex; align-items: center; justify-content: space-between; max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 16px 20px; box-sizing: border-box; }
h1.site-logo { margin: 0; }
.site-logo a { font-size: 24px; font-weight: 700; color: var(--color-text); text-decoration: none; letter-spacing: .05em; }
.site-logo a:hover { opacity: 1; text-decoration: none; }
.site-logo img { max-height: var(--iihcart-logo-h-pc, 40px); max-width: 300px; width: auto; height: auto; object-fit: contain; }
.header-icons { display: flex; align-items: center; gap: 16px; }
.header-icon-link { display: flex; align-items: center; gap: 4px; color: var(--color-text); text-decoration: none; font-size: 14px; }
.header-icon-link:hover { text-decoration: none; opacity: .7; }
.header-icon-link svg { width: 20px; height: 20px; color: var(--color-text); }
.header-cart-link { position: relative; }
.cart-count-badge { position: absolute; top: -6px; right: -8px; background: var(--color-button); color: #fff; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.cart-count-badge.empty { display: none; }

/* PC Header Search Dropdown */
.header-top { position: relative; }
.header-search-toggle { cursor: pointer; margin-left: 16px; }
.header-search-form { display: none; position: absolute; top: 100%; right: 20px; z-index: 1001; background: #fff; border: 1px solid #ccc; border-radius: 2em; padding: 0 8px 0 20px; box-shadow: 0 4px 16px rgba(0,0,0,.12); margin-top: 4px; align-items: center; width: 320px; box-sizing: border-box; }
.header-search-form.is-open { display: flex; }
.header-search-form .header-search-input { border: none; outline: none; font-size: 15px; padding: 14px 0; width: 100%; background: transparent; flex: 1; min-width: 0; border-radius: 0; box-shadow: none; }
.header-search-form .header-search-input:-webkit-autofill,
.header-search-form .header-search-input:-webkit-autofill:hover,
.header-search-form .header-search-input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #fff inset !important; -webkit-text-fill-color: var(--color-text) !important; background-color: #fff !important; }
.header-search-input::placeholder { color: #bbb; }
.header-search-submit { border: none; background: none; cursor: pointer; padding: 10px; display: flex; align-items: center; flex-shrink: 0; }
.header-search-submit svg { width: 24px; height: 24px; color: #999; }
.header-search-submit:hover svg { color: var(--color-primary); }

/* PC Navigation */
.header-nav { background: var(--color-primary); }
.header-nav-inner { max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.header-nav ul { display: flex; align-items: center; justify-content: center; list-style: none; margin: 0; padding: 0; }
.header-nav ul li a { display: block; padding: 12px 24px; color: #fff; font-size: 13px; font-weight: 500; text-decoration: none; letter-spacing: .05em; transition: background .3s; }
.header-nav ul li a:hover { background: var(--color-primary-dark); opacity: 1; text-decoration: none; }

/* PC Submenu dropdown */
.header-nav ul li { position: relative; }
.header-nav ul li ul.sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; flex-direction: column; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.15); z-index: 100; padding: 4px 0; }
.header-nav ul li ul.sub-menu li a { color: var(--color-text, #111); padding: 10px 20px; font-size: 13px; white-space: nowrap; }
.header-nav ul li ul.sub-menu li a:hover { background: #fff; color: var(--color-primary); }
.header-nav ul li:hover > ul.sub-menu { display: flex; }

/* Hamburger */
.hamburger-btn { display: none; width: 50px; height: 50px; background: var(--color-primary); border: none; cursor: pointer; flex-shrink: 0; padding: 0; }
.hamburger-btn svg { width: 22px; height: 22px; color: #fff; }
@media(max-width:768px) {
	.hamburger-btn { display: flex; align-items: center; justify-content: center; width: 60px; height: auto; align-self: stretch; margin-right: -20px; }
	.header-nav { display: none; }
	.header-icon-label,.header-search-toggle,.header-search-form { display: none !important; }
	.header-top { height: 60px; padding: 0 20px; }
	.header-icons { align-self: stretch; }
	.site-logo a { font-size: 20px; }
	.site-logo img { max-height: var(--iihcart-logo-h-sp, 40px); max-width: 240px; }
}

/* Mobile menu overlay */
.mobile-menu-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #fff; z-index: 9999; overflow-y: auto; }
.mobile-menu-overlay.active { display: block; }
.mobile-menu-header { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 20px; border-bottom: 1px solid var(--color-gray-light); }
.mobile-menu-header .header-icons { align-self: stretch; }
.mobile-menu-close { width: 60px; background: var(--color-primary); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; margin-right: -20px; align-self: stretch; flex-shrink: 0; }
.mobile-menu-close svg { width: 22px; height: 22px; color: #fff; }
.mobile-menu-auth { padding: 16px 20px; border-bottom: 1px solid var(--color-gray-light); }
.mobile-menu-auth a { color: var(--color-link); font-size: 14px; text-decoration: underline; }
.mobile-menu-nav { list-style: none; margin: 0; padding: 0; }
.mobile-menu-nav > li { border-bottom: 1px solid var(--color-gray-light); display: flex; flex-wrap: wrap; align-items: center; }
.mobile-menu-nav > li > a { display: flex; align-items: center; padding: 16px 20px; color: var(--color-text); font-size: 16px; font-weight: 500; text-decoration: none; flex: 1; min-width: 0; }
.mobile-submenu-toggle { background: none; border: none; cursor: pointer; padding: 16px 20px; font-size: 20px; color: var(--color-text-light); flex-shrink: 0; margin-left: auto; }
.mobile-submenu { display: none; list-style: none; margin: 0; padding: 8px 0; background: var(--color-gray-bg); width: 100%; }
.mobile-submenu.active { display: block; }
.mobile-submenu li a { display: block; padding: 12px 20px; color: var(--color-text); font-size: 14px; text-decoration: none; }
.mobile-menu-search { padding: 24px 20px; }
.mobile-menu-search-form { display: flex; border: 1px solid var(--color-gray-border); border-radius: 30px; background: #fff; overflow: hidden; align-items: center; padding: 0 8px 0 16px; box-sizing: border-box; }
.mobile-menu-search-form input[type="text"] { flex: 1; border: none; padding: 12px 0; font-size: 14px; outline: none; background: transparent; min-width: 0; border-radius: 0; box-shadow: none; }
.mobile-menu-search-form input[type="text"]:-webkit-autofill,
.mobile-menu-search-form input[type="text"]:-webkit-autofill:hover,
.mobile-menu-search-form input[type="text"]:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #fff inset !important; -webkit-text-fill-color: var(--color-text) !important; background-color: #fff !important; }
.mobile-menu-search-form button { background: none; border: none; padding: 10px; cursor: pointer; display: flex; align-items: center; flex-shrink: 0; }
.mobile-menu-search-form button svg { width: 20px; height: 20px; color: var(--color-text-light); }

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */
.breadcrumbs-container { padding: 12px 0 0; }
.breadcrumbs-container + .iihcart-container { margin-top: 80px; }
@media(max-width:768px) { .breadcrumbs-container + .iihcart-container { margin-top: 40px; } }
.breadcrumbs-content { max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 0 20px; box-sizing: border-box; font-size: 12px; color: var(--color-text-light); }

/* ==========================================================================
   Category Title Bar
   ========================================================================== */
.category-title-bar { background: var(--color-heading-bg); min-height: 136px; display: flex; align-items: center; margin-bottom: 0; }
.category-title-bar h1 { max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 0 20px; box-sizing: border-box; color: var(--color-text); font-size: 32px; font-weight: normal; width: 100%; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn-iihcart,button.btn-iihcart,input[type="submit"].btn-iihcart,a.btn-iihcart { display: inline-block; background: var(--color-button); color: #fff; border: none; border-radius: var(--border-radius-btn); padding: 16px 48px; font-size: 16px; font-weight: normal; text-align: center; text-decoration: none; cursor: pointer; transition: background .3s; font-family: var(--font-family); -webkit-appearance: none; appearance: none; }
.btn-iihcart:hover,button.btn-iihcart:hover,input[type="submit"].btn-iihcart:hover,a.btn-iihcart:hover { background: var(--color-button-hover); color: #fff; text-decoration: none; opacity: 1; }
.btn-iihcart:disabled,button.btn-iihcart:disabled { background: #ccc; color: #fff; cursor: not-allowed; opacity: 0.7; }
.btn-iihcart-gray { display: inline-block; background: #999; color: #fff; border: none; border-radius: var(--border-radius-btn); padding: 16px 48px; font-size: 16px; font-weight: normal; text-align: center; cursor: pointer; -webkit-appearance: none; appearance: none; }
@media(max-width:768px) { .btn-iihcart,button.btn-iihcart,input[type="submit"].btn-iihcart,a.btn-iihcart,.btn-iihcart-gray { padding-top: 20px; padding-bottom: 20px; } }

/* Error / Required */
.error-message,.iihcart-error-message,.validation-error { color: var(--color-error); font-size: 13px; }
.iihcart-notice-error { color: var(--color-error); font-size: 14px; margin-bottom: 16px; }
.form-error-message { display: none; color: var(--color-error); background: #fff4f2; border: 1px solid var(--color-error); padding: 8px; font-size: 14px; margin-bottom: 16px; }
.exclamation-circle { display: inline-block; vertical-align: middle; color: var(--color-error); line-height: 1; position: relative; width: 1em; height: 1em; border: 0.1em solid currentColor; border-radius: 50%; box-sizing: content-box; margin-right: 4px; }
.exclamation-circle > span { width: 0.15em; height: 0.6em; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; }
.exclamation-circle > span::before, .exclamation-circle > span::after { content: ''; display: block; width: inherit; background: currentColor; }
.exclamation-circle > span::before { margin-bottom: 0.1em; height: 0.35em; border-radius: 0.025em; }
.exclamation-circle > span::after { height: 0.15em; border-radius: 50%; }
.error-message-container { margin-top: 8px; color: var(--color-error); font-size: 13px; }
.required-badge,.iihcart-required { display: inline-block; background: var(--color-error); color: #fff; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 2px; vertical-align: middle; margin-left: 4px; }

/* ==========================================================================
   Forms
   ========================================================================== */
input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="number"],textarea,select { border: 1px solid var(--color-gray-border); border-radius: var(--border-radius-sm); padding: 10px 12px; font-size: 16px; font-family: var(--font-family); color: var(--color-text); width: 100%; max-width: 100%; }
input:focus,textarea:focus,select:focus { border-color: var(--color-primary); outline: none; }
select { appearance: auto; width: auto; }
input[type="checkbox"] { accent-color: #248cb3; }

/* ==========================================================================
   Step Bar
   ========================================================================== */
/* Cart Step Progress Bar */
.cart-navigation { text-align: center; margin: 40px auto 40px; max-width: 560px; }
.iihcart-progress-tracker { display: flex; align-items: flex-start; justify-content: center; margin: 0; padding: 0; list-style: none; }
.iihcart-progress-tracker li { display: flex; flex-direction: column; align-items: center; flex: 1; position: relative; }
.iihcart-progress-tracker li .step-number { width: 36px; height: 36px; border-radius: 50%; background: #f2efe6; color: #888; border: 1px solid #f2efe6; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: normal; margin-bottom: 8px; z-index: 1; }
.iihcart-progress-tracker li.active .step-number { background: #fff; color: var(--color-text); border: 1px solid var(--color-text); }
.iihcart-progress-tracker li .text { font-size: 13px; color: #888; white-space: nowrap; }
.iihcart-progress-tracker li.active .text { color: var(--color-text); font-weight: normal; }
.iihcart-progress-tracker li+li::before { content: ""; position: absolute; top: 18px; right: 50%; width: 100%; height: 2px; background: #f2efe6; z-index: 0; }
@media(max-width:768px) {
	.cart-navigation { max-width: 100%; margin-bottom: 24px; }
	.iihcart-progress-tracker li .step-number { width: 28px; height: 28px; font-size: 13px; }
	.iihcart-progress-tracker li .text { font-size: 14px; white-space: normal; text-align: center; }
	.iihcart-progress-tracker li+li::before { top: 14px; }
}

/* Section Headings */
.iihcart-section-heading { background: var(--color-heading-bg); padding: 10px 16px; font-size: 14px; font-weight: 600; margin-bottom: 20px; }
.iihcart-page-title { font-size: 20px; font-weight: 700; margin-bottom: 24px; }
.iihcart-gray-bg { background: var(--color-gray-bg); padding: 16px; border-radius: var(--border-radius-sm); }

/* ==========================================================================
   Product Grid
   ========================================================================== */
.product-grid { display: grid; grid-template-columns: repeat(4,1fr); column-gap: 30px; row-gap: 40px; }
.product-grid-item { text-decoration: none; color: var(--color-text); }
.product-grid-item:hover { text-decoration: none; }
.product-grid-item .product-thumb { width: 226px; height: 226px; overflow: hidden; background: var(--color-gray-bg); margin-bottom: 10px; }
.product-grid-item .product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.product-grid-item:hover .product-thumb img { transform: scale(1.05); }
.product-grid-item .product-name { font-size: 16px; margin-bottom: 4px; color: #444; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-all; }
.product-grid-item .product-price { font-size: 16px; color: #444; }
.product-grid-item .product-category-link { font-size: 14px; color: #ccb88f; }
@media(max-width:1024px) {
	.product-grid { grid-template-columns: repeat(3,1fr); column-gap: 20px; row-gap: 36px; }
	.product-grid-item .product-thumb { width: 100%; height: auto; aspect-ratio: 1/1; }
}
@media(max-width:768px) {
	.product-grid { grid-template-columns: repeat(2,1fr); column-gap: 16px; row-gap: 32px; }
}

/* Pagination */
.iihcart-pagination { display: flex; justify-content: center; gap: 12px; margin: 40px 0; }
.iihcart-pagination a,.iihcart-pagination span { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; background: #f2efe6; border: none; border-radius: 0; font-size: 14px; color: #888; text-decoration: none; }
.iihcart-pagination a:hover { background: #e8e4d8; }
.iihcart-pagination .current { background: #fff; color: var(--color-text); border: 1px solid #000; font-weight: normal; }
.iihcart-pagination .disabled { background: #f2f2f2; color: #888; cursor: default; }
.nav-links { display: flex; gap: 12px; justify-content: center; }
.nav-links a,.nav-links span { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; background: #f2efe6; border: none; border-radius: 0; font-size: 14px; color: #888; text-decoration: none; }
.nav-links .current { background: #fff; color: var(--color-text); border: 1px solid #000; font-weight: 600; }
@media(max-width:1024px) {
	.iihcart-pagination { gap: 8px; }
	.iihcart-pagination a,.iihcart-pagination span { min-width: 36px; height: 36px; padding: 0 8px; }
	.nav-links { gap: 8px; }
	.nav-links a,.nav-links span { min-width: 36px; height: 36px; padding: 0 8px; }
}

/* ==========================================================================
   Single Product
   ========================================================================== */
.product-display { display: grid; grid-template-columns: 640px 1fr; gap: 40px; margin-bottom: 40px; }
.image-gallery .main-image { width: 640px; height: 480px; overflow: hidden; background: var(--color-gray-bg); margin-bottom: 16px; }
.image-gallery .main-image img { width: 100%; height: 100%; object-fit: cover; }
.image-gallery .thumbnails { display: flex; gap: 8px; }
.image-gallery .thumbnails img { width: 65px; height: 65px; object-fit: cover; cursor: pointer; border: 2px solid transparent; }
.image-gallery .thumbnails img:hover { border-color: var(--color-primary); }
.product-info .product-name { font-size: 24px; font-weight: normal; margin-bottom: 8px; }
.product-info .product-internal-capacity { font-size: 14px; color: var(--color-text); margin-bottom: 16px; }
.product-info .product-stock-status { font-size: 16px; margin-top: 36px; margin-bottom: 16px; }
.product-info .price-and-quantity { display: flex; align-items: center; gap: 24px; margin-bottom: 16px; }
.product-info .quantity { display: flex; align-items: center; gap: 8px; }
.product-info .quantity select { width: auto; min-width: 60px; }
.product-info .price { font-size: 24px; font-weight: normal; }
.product-info .price .tax-included { font-size: 14px; font-weight: normal; color: var(--color-text); }
.product-info .btn-iihcart { display: block; width: 100%; max-width: 320px; margin-top: 32px; }
@media(max-width:1024px) {
	.product-display { grid-template-columns: 1fr; gap: 24px; }
	.image-gallery .main-image { width: 100%; height: auto; aspect-ratio: 4/3; }
	.image-gallery .thumbnails { flex-wrap: wrap; }
	.product-info { margin-top: 16px; }
	.product-info .product-name { font-size: 22px; }
	.product-info .product-internal-capacity { font-size: 11px; }
	.product-info .product-stock-status { font-size: 12px; }
	.product-info .quantity { font-size: 14px; }
	.product-info .price { font-size: 24px; margin-left: auto; }
	.product-info .price .tax-included { font-size: 14px; }
	.product-info .btn-iihcart { max-width: 100%; }
	.single-iihcart .entry-content { margin-top: 40px; }
}

/* Shopping guide */
.shopping-guide-container { background: #f2f2f2; margin: 40px 0; padding: 24px 32px; }
.shopping-guide-title { font-size: 24px; font-weight: normal; padding-bottom: 16px; border-bottom: 1px solid var(--color-gray-border); margin-left: -32px; margin-right: -32px; padding-left: 32px; padding-right: 32px; }
.shopping-guide-section { border-bottom: 1px solid var(--color-gray-border); margin-left: -32px; margin-right: -32px; padding-left: 32px; padding-right: 32px; }
.shopping-guide-section:last-child { border-bottom: none; }
.shopping-guide-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 14px 0; background: none; border: none; font-size: 16px; font-family: var(--font-family); color: var(--color-text); cursor: pointer; text-align: left; }
.shopping-guide-toggle:hover { opacity: 0.7; }
.shopping-guide-toggle .toggle-sign { font-size: 18px; color: var(--color-text-light); }
.shopping-guide-content { padding: 0 0 16px; font-size: 16px; line-height: 1.8; }
@media(max-width:768px) {
	.shopping-guide-container { padding: 20px; margin: 32px 0; }
	.shopping-guide-title { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
	.shopping-guide-section { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
}

/* SP Fixed bar */
.btn-fixed-bottom { display: none; }
@media(max-width:1024px) {
	.btn-fixed-bottom { display: block; position: fixed; bottom: 0; left: 0; width: 100%; background: #fff; border-top: 1px solid var(--color-gray-light); z-index: 900; padding: 12px 20px; }
	.btn-fixed-content { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
	.btn-fixed-content .product-title-size-wrapper { display: none; }
	.btn-fixed-content .price-wrapper { font-size: 20px; font-weight: normal; flex: 1; }
	.btn-fixed-content .fixed-product-tax-included { font-size: 12px; font-weight: normal; color: var(--color-text); }
	.fixed-btn-iihcart { background: var(--color-button); color: #fff; border: none; border-radius: var(--border-radius-btn); padding: 14px 32px; font-size: 14px; font-weight: normal; cursor: pointer; font-family: var(--font-family); white-space: nowrap; }
	body.has-fixed-bar { padding-bottom: 70px; }
}

/* ==========================================================================
   Front Page
   ========================================================================== */
/* Front page: hero */
.frontpage-hero { position: relative; width: 100%; overflow: hidden; }
.frontpage-hero img { width: 100%; height: auto; display: block; }
.hero-slide { position: relative; height: calc(100vh - var(--hero-offset-top, 0px)); }
@supports (height: 100svh) { .hero-slide { height: calc(100svh - var(--hero-offset-top, 0px)); } }
.hero-slide::before { content: ''; position: absolute; inset: 0; background: var(--iihcart-hero-overlay, transparent); z-index: 1; pointer-events: none; }
.hero-slide > img { width: 100%; height: 100%; object-fit: cover; position: relative; z-index: 0; }
.hero-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: var(--iihcart-catchcopy, #fff); text-align: center; font-size: 30px; font-weight: 600; letter-spacing: .1em; z-index: 2; }
.frontpage-section { padding: 60px 0; }
.frontpage-section-title { text-align: center; font-size: 40px; font-weight: 600; letter-spacing: .1em; margin-bottom: 40px; }
@media(max-width:480px) { .frontpage-section-title { font-size: 24px; letter-spacing: .05em; margin-bottom: 24px; } }
.pickup-category-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; max-width: 1004px; margin: 0 auto; }
.pickup-category-item { position: relative; overflow: hidden; aspect-ratio: 5/2; display: block; border-left: 1px solid #b0b0b0; border-top: 1px solid #b0b0b0; }
.pickup-category-item:nth-child(odd) { border-left: none; }
.pickup-category-item:nth-child(-n+2) { border-top: none; }
.pickup-category-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.pickup-category-item:hover img { transform: scale(1.05); }
.pickup-category-item .category-label { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: #fff; font-size: 28px; font-weight: 600; letter-spacing: .1em; text-shadow: 0 2px 4px rgba(0,0,0,.5); }
@media(max-width:768px) {
	.pickup-category-grid { grid-template-columns: 1fr; }
	.pickup-category-item { border-left: none; border-top: 1px solid #b0b0b0; }
	.pickup-category-item:first-child { border-top: none; }
	.pickup-category-item .category-label { font-size: 20px; }
}

/* Archive content spacing */



/* ==========================================================================
   Page Headings
   ========================================================================== */
.page-heading-text { background: var(--color-heading-bg); min-height: 136px; display: flex; align-items: center; margin-bottom: 0; }
.page-heading-text h1 { max-width: calc(var(--container-width) + 40px); margin: 0 auto; padding: 0 20px; box-sizing: border-box; font-size: 32px; font-weight: normal; width: 100%; }
.page-heading-image { max-width: calc(var(--container-width) + 40px); margin: 24px auto 0; padding: 0 20px; box-sizing: border-box; position: relative; }
.page-heading-image img { width: 100%; height: 350px; object-fit: cover; display: block; }
.page-heading-image-title { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; font-size: 36px; font-weight: 700; text-align: center; width: 100%; padding: 0 40px; box-sizing: border-box; }
@media(max-width:768px) { .page-heading-image { max-width: none; margin-top: 0; padding: 0; } .page-heading-image img { height: 200px; } .page-heading-image-title { font-size: 20px; } .page-heading-text { min-height: 80px; } .page-heading-text h1 { font-size: 20px; } }

/* Entry content */
.entry-content h2 { font-size: 28px; margin: 32px 0 16px; }
.entry-content h3 { font-size: 18px; margin: 24px 0 12px; }
.entry-content p { margin-bottom: 16px; }
.entry-content img { margin: 16px 0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--color-footer-bg); padding-top: 60px; }
.footer-content { max-width: calc(var(--container-width) + 40px); margin: 0 auto 60px; padding: 0 20px; box-sizing: border-box; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.footer-content h3 { font-size: 30px; font-weight: 700; margin-bottom: 20px; }
.footer-calendar { margin-bottom: 0; }

/* 営業日カレンダー */
.iihcart-cal-wrapper { display: flex; gap: 20px; flex-wrap: nowrap; }
.iihcart-cal-month { flex: 1 1 0; min-width: 0; }
.iihcart-cal-title { font-size: 16px; margin-bottom: 6px; }
.iihcart-cal-table { border-collapse: collapse; width: 100%; }
.iihcart-cal-table th { background: #b3a57d; color: #fff; padding: 0; text-align: center; font-size: 16px; font-weight: 600; border: 1px solid #d4d2cd; aspect-ratio: 1/1; vertical-align: middle; }
.iihcart-cal-table td { padding: 0; text-align: center; font-size: 16px; background: #fff; border: 1px solid #d4d2cd; aspect-ratio: 1/1; vertical-align: middle; }
.iihcart-cal-table td.holiday { background: #fad4d4; }
.iihcart-cal-legend { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 14px; color: #666; }
.iihcart-cal-legend-color { display: inline-block; width: 16px; height: 16px; background: #fad4d4; border-radius: 2px; }
.footer-login { margin-top: 60px; }
.footer-login .login-form-row { display: flex; align-items: center; gap: 20px; margin-bottom: 12px; }
.footer-login .login-form-row label { font-size: 16px; white-space: nowrap; width: 100px; flex-shrink: 0; }
.footer-login .login-form-row input { width: 300px; max-width: 300px; flex: none; border: none; }
.footer-login .login-form-row input:focus { border: none; box-shadow: none; }
.footer-login .remember-me { display: flex; align-items: center; gap: 6px; font-size: 12px; margin-bottom: 16px; }
.footer-login .btn-iihcart { display: block; width: 100%; max-width: 250px; padding: 16px 0; font-size: 16px; text-align: center; }
.footer-login .footer-login-links { margin-top: 12px; font-size: 14px; }
.footer-login .footer-login-links p { margin: 0 0 4px; }
.footer-login .footer-login-links a { display: inline; text-decoration: underline; }
.footer-search { margin-bottom: 0; }
.footer-search-form { display: flex; border: 1px solid #ccc; border-radius: 2em; background: #fff; align-items: center; padding: 0 8px 0 20px; box-sizing: border-box; }
.footer-search-form input[type="text"] { flex: 1; border: none; padding: 14px 0; font-size: 15px; outline: none; background: transparent; min-width: 0; border-radius: 0; box-shadow: none; }
.footer-search-form input[type="text"]:focus { border: none; }
.footer-search-form input[type="text"]:-webkit-autofill,
.footer-search-form input[type="text"]:-webkit-autofill:hover,
.footer-search-form input[type="text"]:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #fff inset !important; -webkit-text-fill-color: var(--color-text) !important; background-color: #fff !important; }
.footer-search-form button { background: none; border: none; padding: 10px; cursor: pointer; display: flex; align-items: center; flex-shrink: 0; }
.footer-search-form button svg { width: 24px; height: 24px; color: #999; }
.footer-search-form button:hover svg { color: var(--color-primary); }
.footer-categories { margin-top: 60px; }
.footer-categories ul { list-style: none; margin: 0; padding: 0; }
.footer-categories ul li { margin-bottom: 8px; }
.footer-categories ul li a { color: #444; font-size: 14px; text-decoration: none; }
.footer-categories ul li a:hover { opacity: .7; }
.footer-nav { background: #b3a57d; padding: 14px 0; }
.footer-nav ul { display: flex; align-items: center; justify-content: center; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.footer-nav ul li a { display: block; padding: 4px 24px; color: #fff; font-size: 16px; text-decoration: none; }
.footer-nav ul li a:hover { opacity: .8; }
.footer-bottom-widget { background: #fff; padding: 32px 0 0; text-align: center; }
.footer-bottom-widget img { max-width: 300px; height: auto; }
.footer-bottom { background: #fff; padding: 40px 0 20px; text-align: center; }
.footer-shop-name { font-size: 48px; font-weight: 700; margin-bottom: 12px; }
.footer-shop-name a { color: var(--color-text); text-decoration: none; }
.footer-copyright { font-size: 12px; color: #999; }
.back-to-top { position: fixed; bottom: 0; right: 0; width: 48px; height: 48px; background: #fff; border: none; cursor: pointer; display: none; align-items: center; justify-content: center; z-index: 800; padding: 0; }
.back-to-top.visible { display: flex; }
.back-to-top svg { width: 48px; height: 48px; color: #b28a12; }
@media(max-width:768px) {
	.footer-content { grid-template-columns: 1fr; gap: 30px; padding: 0 20px; }
	.footer-login .login-form-row { flex-direction: column; align-items: flex-start; gap: 4px; margin-bottom: 0; }
	.footer-login .login-form-row + .login-form-row { margin-top: 16px; }
	.footer-login .login-form-row input { width: 100%; max-width: 100%; }
	.footer-login .remember-me { margin-top: 12px; }
	.footer-login .btn-iihcart { max-width: 200px; }
	.footer-search-form { max-width: 100%; }
	.footer-shop-name { font-size: 24px; }
	.footer-bottom { padding-bottom: 60px; }
	.footer-nav ul { justify-content: flex-start; }
	.back-to-top { bottom: 0; right: 0; }
	body.has-fixed-bar .back-to-top { bottom: 80px; }
	.iihcart-cal-wrapper { gap: 10px; }
	.footer-content h3 { font-size: 20px; }
	.footer-categories ul li a { font-size: 16px; }
	.iihcart-cal-title { font-size: 16px; }
	.iihcart-cal-table th { padding: 0; font-size: 14px; }
	.iihcart-cal-table td { padding: 0; font-size: 14px; }
}

/* ==========================================================================
   Auth Pages (Login / Registration)
   ========================================================================== */
.iihcart-auth-page-title { font-size: 24px; font-weight: normal; text-align: center; padding: 30px 0 24px; }
.entry-content > .iihcart-auth-page-title:first-child { padding-top: 0; }
.iihcart-auth-page-title.custom-margin-top { margin-top: 20px; padding-bottom: 12px; }
.iihcart-auth-form { max-width: var(--container-width); margin: 0 auto; }
.iihcart-auth-form-divider { border-top: 1px solid #ddd; }
.iihcart-user-registration-header-message { margin-bottom: 24px; }
.iihcart-auth-form .iihcart-auth-form-group { padding-left: 360px; }
.iihcart-form-group { display: flex; align-items: center; padding: 20px 0; gap: 20px; }
.iihcart-form-group .fixed-length-label { min-width: 190px; flex-shrink: 0; }
.iihcart-auth-form .iihcart-form-group { padding-left: 20px; }
.iihcart-auth-form .iihcart-form-group > .fixed-length-label { min-width: 320px; }
.iihcart-auth-form .iihcart-form-group .input-textbox { max-width: 400px; }
.iihcart-form-group .input-fields { flex: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.iihcart-form-group .input-wrapper { flex: 1; }
.iihcart-form-group .input-textbox { width: 100%; max-width: 300px; padding: 10px 12px; border: 1px solid var(--color-gray-border); border-radius: 0; font-size: 16px; font-family: var(--font-family); color: var(--color-text); }
.iihcart-form-group .input-textbox:focus { border-color: var(--color-primary); outline: none; }
.iihcart-form-group .input-textbox.input-wide { max-width: 400px; }
#password, #password-for-confirmation { max-width: 340px; }
.iihcart-auth-form-group { padding-bottom: 10px; padding-left: 210px; }
.iihcart-auth-password-reset-link { color: var(--color-link); font-size: 14px; text-decoration: underline; }
.password-reset-link { margin-top: 8px; margin-bottom: -8px; }
.password-reset-link a { color: var(--color-link); font-size: 14px; text-decoration: underline; }
#login_form .iihcart-form-group .input-textbox.input-wide { max-width: 400px; width: 100%; }
#login_form .iihcart-form-group:has(.iihcart-block-label) { display: grid; grid-template-columns: 324px 1fr; align-items: center; }
#login_form .iihcart-block-label { min-width: auto; width: fit-content; }
@media(max-width:1024px) {
	#login_form .iihcart-form-group:has(.iihcart-block-label) { display: flex; flex-direction: column; align-items: flex-start; }
	#login_form .iihcart-form-group .input-textbox.input-wide { max-width: 100%; }
	#login_form .iihcart-form-group .input-wrapper,
	#login_form .iihcart-form-group .input-fields { width: 100%; }
	.password-reset-link { text-align: right; }
}
.iihcart-auth-center-content { text-align: center; padding: 20px 0; }
.iihcart-auth-center-content .btn-iihcart { min-width: 280px; }
.iihcart-auth-login-space { padding-top: 40px; }
.iihcart-auth-remember-login { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 16px; font-size: 13px; flex-wrap: wrap; }
.iihcart-auth-remember-login .iihcart-auth-notice { width: 100%; text-align: center; margin-top: 0; }
.iihcart-auth-space { height: 0; }
.iihcart-auth-form-message { max-width: var(--container-width); margin: 0 auto; text-align: center; padding-bottom: 20px; }
.iihcart-button-spacing { padding-top: 8px; }
.iihcart-button-light { background: #fff !important; color: var(--color-text) !important; border: 1px solid var(--color-gray-border) !important; }
.iihcart-button-light:hover { background: var(--color-gray-bg) !important; }
@media(max-width:1024px) {
	.iihcart-auth-page-title { font-size: 20px; padding: 20px 0 16px; }
	.iihcart-auth-form { }
	.iihcart-form-group { flex-wrap: wrap; align-items: center; gap: 8px; padding: 16px 0; width: 100%; }
	.iihcart-form-group label:has(.iihcart-radio-option) { width: 100%; margin-right: 0; }
	.iihcart-form-group .iihcart-block-label { min-width: auto; }
	.iihcart-form-group .input-fields { width: 100%; flex-basis: 100%; flex-direction: column; }
	.iihcart-form-group .input-fields.expiration-date-fields { flex-direction: row; flex-wrap: nowrap; align-items: center; }
	.expiration-date-fields select { width: auto; max-width: none; }
	.iihcart-form-group .checkbox-and-error-wrapper { width: 100%; flex-basis: 100%; }
	.iihcart-form-group .input-textbox { max-width: 100%; width: 100%; display: block; }
	.iihcart-form-group .input-textbox.input-medium,
	.iihcart-form-group .input-textbox.input-narrow,
	.iihcart-form-group .input-textbox.input-wide { max-width: 100%; width: 100%; }
	.iihcart-auth-form .iihcart-form-group { padding-left: 0; }
	.iihcart-auth-form .iihcart-form-group .input-textbox { max-width: 100%; }
	#user_registration_form .iihcart-form-group .input-textbox,
	#user_registration_form .iihcart-form-group .input-textbox.input-medium,
	#user_registration_form .iihcart-form-group .input-textbox.input-narrow,
	#user_registration_form .iihcart-form-group .input-textbox.input-wide { max-width: 100%; width: 100%; }
	#user_registration_form .iihcart-form-group select.input-narrow { max-width: 100%; width: 100%; }
	.iihcart-auth-form .iihcart-form-group > .fixed-length-label { padding-left: 0; min-width: auto; }
	.iihcart-auth-form .iihcart-auth-form-group { padding-left: 0; }
	#password, #password-for-confirmation { max-width: 100%; width: 100%; }
	.iihcart-auth-form-group { padding-left: 0; text-align: right; }
	.iihcart-auth-form-divider { display: none; }
	#mypage_user_update_form .divider { display: none; }
	.iihcart-auth-form-message { text-align: left; }
	.iihcart-auth-remember-login { justify-content: flex-start; }
	.iihcart-auth-remember-login .iihcart-auth-notice { text-align: left; }
	#iihcart_user_login_form .iihcart-auth-remember-login { justify-content: center; }
	#iihcart_user_login_form .iihcart-auth-remember-login .iihcart-auth-notice { text-align: center; }
	.iihcart-auth-center-content .btn-iihcart { min-width: 200px; width: 100%; }
	.iihcart-button-large { width: 100%; min-width: auto !important; }
	.iihcart-action-buttons { width: 100%; }
	.iihcart-action-button-container { width: 100%; }
	.iihcart-action-button-container .btn-iihcart { min-width: 200px; width: 100%; }
	.iihcart-action-button-container-alt .btn-iihcart { width: 100%; min-width: auto; }
	#delivery_form textarea { max-width: 100%; }
	#delivery_form select.input-medium-fixed { max-width: 100%; width: 100%; }
	.iihcart-required-field-missing { display: none; }
	#shipping-address-fields { background: #f2f2f2; padding: 12px 16px; }
	#shipping-address-fields .iihcart-form-group { border-bottom: none; padding: 0; gap: 0; }
	#shipping-address-fields .iihcart-block-label { margin: 0; padding: 8px 0 0; width: 100%; min-width: auto; background: transparent; border-bottom: none; margin-bottom: 0; font-size: 14px; font-weight: 700; }
	#shipping-address-fields .input-fields { padding: 4px 0 8px; }
	.zeus-radio-buttons-container { flex-direction: column; gap: 4px; }
	#iih_zeus_token_card_info_area { padding: 0; }
	#iih_zeus_token_card_info_area .zeus-radio-buttons-container { align-items: flex-start; margin-bottom: 12px; gap: 8px; }
	#zeus_registerd_card_area,
	#iih_zeus_registerd_card_area_extra_payment_times,
	#iih_zeus_new_card_area_extra_bland,
	#zeus_new_card_area,
	#iih_zeus_new_card_area_extra_payment_times { border-top: none; background: #f2f2f2; padding: 4px 16px; }
	#zeus_registerd_card_area,
	#iih_zeus_new_card_area_extra_bland { padding-top: 12px; }
	#zeus_registerd_card_area:last-child,
	#iih_zeus_registerd_card_area_extra_payment_times,
	#zeus_new_card_area:last-child,
	#iih_zeus_new_card_area_extra_payment_times { padding-bottom: 24px; }
	#mypage-card-register-form #zeus_new_card_area { padding-bottom: 24px; }
	.credit-card-info { text-align: left; }
	#iihcart-credit-card-payment-method-wrap { padding-left: 0; }
	#mypage-card-register-form { padding-left: 0; }
	#mypage-card-register-form .pagination-buttons,
	#mypage-card-register-form .iihcart-order-details-footer-container { margin-left: 0; }
	#zeus_registerd_card_area .iihcart-form-group,
	#zeus_new_card_area .iihcart-form-group,
	#iih_zeus_new_card_area_extra_bland .iihcart-form-group,
	#iih_zeus_registerd_card_area_extra_payment_times .iihcart-form-group,
	#iih_zeus_new_card_area_extra_payment_times .iihcart-form-group { flex-direction: column; align-items: flex-start; border: none; padding: 0; gap: 0; }
	#zeus_registerd_card_area .iihcart-block-label,
	#zeus_new_card_area .iihcart-block-label,
	#iih_zeus_new_card_area_extra_bland .iihcart-block-label,
	#iih_zeus_registerd_card_area_extra_payment_times .iihcart-block-label,
	#iih_zeus_new_card_area_extra_payment_times .iihcart-block-label { margin: 0; width: auto; min-width: auto; padding: 0; border: none; margin-bottom: 0; background: transparent; font-weight: 700; font-size: 14px; padding-top: 12px; text-align: left; }
	#zeus_registerd_card_area .input-fields,
	#zeus_new_card_area .input-fields,
	#iih_zeus_new_card_area_extra_bland .input-fields,
	#iih_zeus_registerd_card_area_extra_payment_times .input-fields,
	#iih_zeus_new_card_area_extra_payment_times .input-fields { padding: 4px 0 0 0; align-items: flex-start; justify-content: flex-start; }
	#zeus_registerd_card_area .input-text,
	#zeus_new_card_area .input-text { text-align: left; }
	#zeus_new_card_area .input-fields.expiration-date-fields { align-items: center; }
	#zeus_new_card_area input[type="tel"],
	#zeus_new_card_area input[type="text"],
	#iihcart-card-brand-select,
	#zeus_token_card_number,
	#zeus_token_card_cvv,
	#zeus_token_card_cvv_for_registerd_card,
	.iihcart-select-label,
	.iihcart-select-label-first { width: 100%; max-width: 100%; }
}

/* ==========================================================================
   Mypage
   ========================================================================== */
/* User Info Box */
.iihcart-user-info-container { background: #f2f2f2; padding: 32px; margin-bottom: 32px; }
.iihcart-user-name { font-size: 16px; margin-bottom: 4px; }
.iihcart-name-bold { font-weight: 700; font-size: 20px; }
.iihcart-user-logout { font-size: 12px; color: #444; margin-left: 8px; }
.iihcart-user-email { font-size: 16px; color: var(--color-text); margin-bottom: 8px; }
.iihcart-user-info { display: flex; gap: 20px; font-size: 14px; color: #888; }
.mobile-hide { display: block; }

/* Section Headings */
.iihcart-form-heading { background: #f2efe6; padding: 16px 16px; font-size: 16px; font-weight: normal; margin-top: 40px; margin-bottom: 16px; }
.iihcart-order-info-heading { font-size: 14px; font-weight: 600; margin-top: 24px; margin-bottom: 8px; padding-left: 16px; }
.iihcart-order-info-heading.margin-top-3 { margin-top: 32px; }
.iihcart-form-detail-instruction { font-size: 14px; color: var(--color-text); margin-bottom: 16px; padding-left: 16px; }

/* Purchase History Table */
.iihcart-order-history-header { display: flex; max-width: 100%; margin: 0 0 0 20px; background: #f2f4f5; padding: 12px 0; }
.iihcart-order-date-header { font-size: 14px; color: #111; width: 180px; text-align: center; flex: 0 0 auto; margin-right: 16px; }
.iihcart-order-number-header { font-size: 14px; color: #111; width: 180px; text-align: center; margin-right: auto; }
.iihcart-order-total-header { font-size: 14px; color: #111; flex: 0 0 auto; white-space: nowrap; text-align: right; padding: 0 48px 0 0; }
.iihcart-order-history-border { display: none; border-bottom: 1px solid #ddd; }

/* Order history rows (dynamically loaded) */
.iihcart-order-history-item { display: flex; max-width: 100%; margin: 0; border-bottom: 1px solid #ddd; padding: 16px 0 16px 20px; }
.iihcart-order-history-item > div { font-size: 16px; }
.iihcart-order-date { font-size: 16px; color: #111; width: 180px; text-align: center; flex: 0 0 auto; margin-right: 16px; }
.iihcart-order-number { font-size: 16px; color: #666; width: 280px; text-align: left; margin-right: auto; }
.iihcart-order-number a { color: #248cb3; text-decoration: underline; }
.iihcart-order-number a:hover { color: #60a6bf; }
.iihcart-order-history-item a { color: var(--color-link); text-decoration: underline; }
.iihcart-order-history-item a:hover { opacity: 0.7; }
.iihcart-order-total { font-size: 16px; color: #111; flex: 0 0 auto; white-space: nowrap; text-align: right; padding: 0 24px 0 0; }
.iihcart-order-history-for-wide { display: block; }
.iihcart-order-history-for-narrow { display: none; }
.iihcart-order-history-table { }
.iihcart-order-detail { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; }
.iihcart-order-label { min-width: 150px; font-size: 14px; }
.iihcart-order-value { word-break: break-all; white-space: normal; font-size: 14px; }
.iihcart-order-value a { color: #248cb3; text-decoration: underline; }
.iihcart-order-value a:hover { color: #60a6bf; }

/* Pagination */
.pagination-buttons { display: flex; justify-content: center; gap: 20px; padding: 24px 0; }
.btn-previous-page, .btn-next-page { display: none; position: relative; background: #fff; border: 1px solid var(--color-text); border-radius: 0; padding: 10px 20px; font-size: 13px; cursor: pointer; font-family: var(--font-family); color: var(--color-text); width: 160px; text-align: center; }
.btn-previous-page svg, .btn-next-page svg { position: absolute; top: 50%; transform: translateY(-50%); }
.btn-previous-page svg { left: 12px; }
.btn-next-page svg { right: 12px; }
.btn-previous-page:hover, .btn-next-page:hover { background: var(--color-gray-bg); }
.btn-previous-page:disabled, .btn-next-page:disabled { opacity: .4; cursor: not-allowed; border-color: var(--color-gray-border); }
[type=button].btn-disabled, [type=reset].btn-disabled, [type=submit].btn-disabled, button.btn-disabled { cursor: not-allowed; background: #e3e5e5; color: #888; border-color: #e3e5e5; }
.button-spacing { padding-top: 32px; }

/* Dividers */
.divider { border-top: 1px solid #eee; }

/* Form Groups on Mypage */
.iihcart-form-group .iihcart-block-label { display: flex; align-items: center; gap: 8px; min-width: 190px; font-size: 16px; flex-shrink: 0; }
.iihcart-form-group.custom-margin { }
.iihcart-label-area { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
#register_form .iihcart-label-area { min-width: 324px; justify-content: space-between; }
#user_registration_form .iihcart-label-area { min-width: 324px; justify-content: space-between; }
#user_registration_confirmation_form .iihcart-block-label { min-width: 324px; }
#user_registration_confirmation_form label { cursor: default; }
.iihcart-confirmation-value { font-size: 16px; }
@media(max-width:1024px) {
	#register_form .iihcart-label-area { min-width: auto; }
	#user_registration_form .iihcart-label-area { min-width: auto; }
	#user_registration_confirmation_form .iihcart-block-label { min-width: auto; font-size: 13px; }
	#user_registration_confirmation_form .iihcart-confirmation-value { width: 100%; flex-basis: 100%; }
	#user_registration_confirmation_form .iihcart-form-group { gap: 4px; }
}
#register_form .iihcart-block-label { min-width: auto; }
#user_registration_form .iihcart-block-label { min-width: auto; }
#mypage_user_update_form .iihcart-block-label { min-width: 324px; justify-content: space-between; }
@media(max-width:1024px) {
	#mypage_user_update_form .iihcart-block-label { min-width: auto; }
}
@media(min-width:1025px) {
	#user_registration_form .iihcart-form-group .input-textbox { max-width: 300px; }
	#user_registration_form .iihcart-form-group .input-textbox.input-wide { max-width: 400px; }
	#user_registration_form .iihcart-form-group .input-textbox.input-medium { max-width: 240px; }
	#user_registration_form .iihcart-form-group .input-textbox.input-narrow { max-width: 200px; }
	#user_registration_form .iihcart-form-group select.input-narrow { max-width: 200px; width: 200px; }
	#mypage_user_update_form .iihcart-form-group .input-textbox { max-width: 300px; }
	#mypage_user_update_form .iihcart-form-group .input-textbox.input-wide { max-width: 400px; }
	#mypage_user_update_form .iihcart-form-group .input-textbox.input-medium { max-width: 240px; }
	#mypage_user_update_form .iihcart-form-group .input-textbox.input-narrow { max-width: 200px; }
	#mypage_user_update_form .iihcart-form-group select.input-narrow { max-width: 200px; width: 200px; }
}
.iihcart-required-container { display: inline-flex; align-items: center; }
.iihcart-required-field { background: var(--color-error); color: #fff; font-size: 10px; padding: 2px 6px; border-radius: 2px; font-weight: normal; }
.input-textbox.input-medium { max-width: 240px; }
.input-textbox.input-narrow { max-width: 200px; }
select.input-narrow { max-width: 200px; width: 200px; }
@media(max-width:1024px) {
	select.input-narrow { max-width: 100%; width: 100%; }
}
.input-text { font-size: 16px; padding: 10px 0; }
.iihcart-radio-option { margin-right: 4px; }
.iihcart-form-group label:has(.iihcart-radio-option) { margin-right: 12px; }
.iihcart-form-group label { font-size: 16px; cursor: pointer; }

/* Checkbox & Agreement */
.checkbox-and-error-wrapper { flex: 1; }
.checkbox-wrapper { display: flex; align-items: flex-start; gap: 8px; }
.iihcart-checkbox-option { width: 18px; height: 18px; accent-color: #248cb3; cursor: pointer; flex-shrink: 0; margin-top: 4px; }
.iihcart-checkbox-label { font-size: 16px; cursor: pointer; }
.iihcart-form-group label.error { display: block; width: 100%; flex-basis: 100%; color: var(--color-error); font-size: 13px; margin-top: 4px; cursor: default; }
.iihcart-form-group-note { font-size: 14px; }
.iihcart-auth-notice { font-size: 12px; color: #888; margin-top: 8px; }
.iihcart-checkbox-label a { color: var(--color-link); text-decoration: underline; }
.iihcart-checkbox-label a:hover { opacity: 0.7; }

/* Modal */
.iihcart-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; justify-content: center; align-items: center; }
.iihcart-modal::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); }
.modal-dialog { position: relative; width: 90%; max-width: 640px; max-height: 90vh; z-index: 1; }
.modal-content { background: #fff; display: flex; flex-direction: column; max-height: 90vh; }
.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 0 20px; background: #e6e6e6; flex-shrink: 0; }
.modal-title { font-size: 12px; font-weight: normal; color: #666; line-height: 1; }
.modal-close-button { background: none; border: none; font-size: 24px; cursor: pointer; color: #666; padding: 0; line-height: 1; }
.modal-close-button:hover { color: var(--color-text); }
.modal-body { padding: 24px; overflow-y: auto; }
.privacy-policy-title { font-size: 18px; font-weight: normal; margin-bottom: 12px; color: #444; }
.terms-of-use-title { font-size: 18px; font-weight: normal; margin-bottom: 12px; color: #444; }
.pre-registration-notice { font-size: 14px; color: #444; margin-bottom: 20px; }
.modal-content-box { border: 1px solid #ccc; padding: 16px; max-height: 400px; overflow-y: auto; font-size: 14px; line-height: 1.8; color: #444; }
.modal-content-box p:first-child { margin-top: 0; }
.modal-content-box p:last-child { margin-bottom: 0; }
@media(max-width:768px) {
	.modal-dialog { width: 94%; }
	.modal-body { padding: 20px; }
	.privacy-policy-title, .terms-of-use-title { font-size: 16px; }
	.modal-content-box { padding: 16px; max-height: 50vh; }
}

/* Card Info Display */
.iih-form-info-wide { margin: 8px 0; padding-left: 16px; }
.iih_form_info_area { overflow: hidden; }
.iih_form_info_area .iihcart-form-group { padding: 0; border-bottom: 1px solid #ccc; margin: 0; align-items: stretch; gap: 0; }
.iih_form_info_area .iihcart-block-label { background: #f2f2f2; min-width: 160px; padding: 16px; font-size: 13px; display: flex; align-items: center; border-bottom: 1px solid #fff; margin-bottom: -1px; cursor: default; }
.iih_form_info_area .iihcart-form-group:last-child .iihcart-block-label { border-bottom: none; margin-bottom: 0; }
.iih_form_info_area .input-fields { padding: 16px; }
.iih_form_info_area .input-text { padding: 0; }
.iih-form-info-wide.padding-top-0 { padding-top: 0; }
@media(max-width:1024px) {
	.iih_form_info_area { background: #f2f2f2; padding: 16px 20px; }
	.iih-form-info-wide { padding-left: 0; }
	.iih_form_info_area .iihcart-form-group { flex-direction: column; align-items: flex-start; border-bottom: none; padding: 16px 0; gap: 4px; }
	.iih_form_info_area .iihcart-block-label { background: transparent; min-width: auto; padding: 0; margin: 0; border-bottom: none; font-weight: 700; font-size: 14px; }
	.iih_form_info_area .input-fields { padding: 0; }
	.iih_form_info_area .input-text { font-size: 16px; }
}

/* Misc Buttons */
.iihcart-button-unsubscribe { background: #fadcde !important; color: #e60012 !important; }
.iihcart-button-unsubscribe:hover { background: #f5c0c4 !important; color: #e60012 !important; }

/* Padded Content */
.padded-content { padding-left: var(--padded-content-padding); padding-right: var(--padded-content-padding); }
.iihcart-action-button-container-alt { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 8px 0; width: 100%; }
@media(min-width:769px) {
	.iihcart-action-button-container-alt .btn-iihcart { width: 280px; min-width: 280px; }
}
.cart-content-margin { margin-top: 8px; }
.credit-card-info { font-size: 16px; font-weight: 700; margin-bottom: 16px; }

/* Cart Page */
.cart-page-title { font-size: 24px; font-weight: normal; margin-top: 0; margin-bottom: 24px; }
.shipping-message { color: #e60012; font-size: 14px; margin: 0 0 24px 0; }
.iihcart-blank-message { font-size: 16px; padding: 32px; background: var(--color-gray-bg); text-align: center; line-height: 1.8; }
#iihcart-cart-error-message:empty { display: none; }
#iihcart-cart-page-header-message { margin-bottom: 16px; color: var(--color-text); }
/* Negative margins cancel .padded-content's padding so these elements span full width on desktop.
   On mobile (max-width:768px), .padded-content padding is 0 so these margins are not needed (and not applied). */
@media(min-width:769px) {
	.padded-content > .cart-page-title,
	#iihcart-cart-page-header-message,
	.shipping-message,
	.form-error-message,
	.cart-items-table { margin-left: calc(-1 * var(--padded-content-padding)); margin-right: calc(-1 * var(--padded-content-padding)); }
	.cart-items-table .cart-page-item > td:first-child { padding-left: 0; }
	.cart-items-table .cart-page-item > td:last-child { padding-right: 0; }
}
#iihcart-cart-page-footer-message { margin-top: 16px; margin-bottom: 40px; color: var(--color-text); }
#iihcart-user-info-page-header-message { margin-bottom: 16px; color: var(--color-text); }
#iihcart-user-info-page-footer-message { margin-top: 24px; color: var(--color-text); }
#iihcart-payment-delivery-page-header-message { margin-bottom: 24px; color: var(--color-text); }
#iihcart-payment-delivery-page-footer-message { margin-top: 24px; margin-bottom: 40px; color: var(--color-text); }

/* Cart Items Table */
.cart-items-table { width: 100%; }
.cart-page-item > td:first-child { padding-left: 12px; }
.cart-page-item > td:last-child { padding-right: 12px; }
.cart-items-table a { color: var(--color-text); text-decoration: none; }
.cart-items-table a:hover { color: var(--color-primary); }
.cart-page-item { display: flex; justify-content: space-between; border-bottom: 1px solid #ddd; padding: 24px 0; }
.cart-page-item .tax-included { font-size: 12px; }
.cart-item-image img { width: 152px; height: 152px; min-width: 152px; object-fit: cover; }
.cart-item-image { flex-shrink: 0; }
.cart-item-details { flex-grow: 1; padding: 8px 16px 0 24px; }
.cart-item-title { font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.cart-item-price, .cart-item-stock { margin: 0 0 4px 0; font-size: 13px; display: block; }
.cart-item-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; padding: 8px 0 0 0; }
.cart-item-actions.desktop-actions { display: flex; }
.cart-item-actions.mobile-actions { display: none; }
.cart-item-select { }
.iihcart-quantity { padding: 4px 8px; display: inline-block; }
.iihcart-amount { white-space: nowrap; font-size: 18px; display: block; }
.cart-item-bottom { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.iihcart-remove-from-cart { margin-left: auto; }
.cart-item-actions .iihcart-remove-from-cart { background: transparent; color: #888; border: none; text-decoration: none; padding: 0; cursor: pointer; font-size: 14px; transition: color 0.2s; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.cart-item-actions .iihcart-remove-from-cart .remove-icon { display: inline-block; width: 9px; height: 9px; margin-top: 4px; font-size: 0; overflow: hidden; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 65.37 65.37' fill='%23888888'%3E%3Cpath d='M36.24,32.68l28.39-28.39c.98-.98.98-2.58,0-3.56-.98-.98-2.57-.98-3.56,0l-28.39,28.39L4.29.74C3.31-.25,1.72-.25.74.74-.25,1.72-.25,3.31.74,4.29l28.39,28.39L.74,61.08c-.98.98-.98,2.58,0,3.56.98.98,2.57.98,3.56,0l28.39-28.39,28.39,28.39c.47.48,1.11.74,1.78.74s1.3-.26,1.78-.74c.98-.98.98-2.58,0-3.56l-28.39-28.39Z'/%3E%3C/svg%3E") no-repeat center / contain; }
.cart-item-actions .iihcart-remove-from-cart .remove-text { text-decoration: underline; }
.cart-item-actions .iihcart-remove-from-cart:hover { color: var(--color-primary); }
.cart-item-actions .iihcart-remove-from-cart:hover .remove-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 65.37 65.37' fill='%23b38a12'%3E%3Cpath d='M36.24,32.68l28.39-28.39c.98-.98.98-2.58,0-3.56-.98-.98-2.57-.98-3.56,0l-28.39,28.39L4.29.74C3.31-.25,1.72-.25.74.74-.25,1.72-.25,3.31.74,4.29l28.39,28.39L.74,61.08c-.98.98-.98,2.58,0,3.56.98.98,2.57.98,3.56,0l28.39-28.39,28.39,28.39c.47.48,1.11.74,1.78.74s1.3-.26,1.78-.74c.98-.98.98-2.58,0-3.56l-28.39-28.39Z'/%3E%3C/svg%3E"); }

/* Cart Totals */
.iihcart-final-amount { font-size: 16px; padding: 24px 0; }
.iihcart-final-amount span { font-weight: normal; }
.iihcart-final-amount-item { display: flex; justify-content: flex-end; align-items: center; }
.iihcart-final-amount-item .label { margin-right: 32px; color: var(--color-text); }
.iihcart-final-amount .amount { font-size: 20px; font-weight: normal; }
.iihcart-final-amount-item .tax-included { font-size: 14px; }
.iihcart-final-amount-separator { border-top: 1px solid #ddd; margin: 8px 0; }

/* Confirmation Page - Final Amount Rows */
#confirmation .iihcart-final-amount { display: grid; grid-template-columns: 1fr auto; row-gap: 4px; align-items: baseline; }
#confirmation .iihcart-final-amount-row { display: contents; }
#confirmation .iihcart-final-amount-row .label { text-align: right; padding-right: 32px; color: #888; font-size: 16px; }
#confirmation .iihcart-final-amount-row .amount-value { white-space: nowrap; font-size: 16px; text-align: right; }
#confirmation .iihcart-final-amount-row .amount { font-size: 16px; }
#confirmation .iihcart-final-amount-row.total-payment .label { font-weight: normal; color: var(--color-text); padding-top: 16px; }
#confirmation .iihcart-final-amount-row.total-payment .amount-value { padding-top: 16px; }
#confirmation .iihcart-final-amount-row.total-payment .amount { font-size: 20px; font-weight: 700; }
#confirmation .iihcart-final-amount-row.total-payment .tax-included { font-size: 14px; }

/* Confirmation Page - Cart Items */
#confirmation .cart-item-title { font-weight: normal; }
#confirmation .cart-page-item .tax-included { font-size: 11px; }

/* Confirmation Page - Info Sections */
#confirmation { font-size: 16px; }
#confirmation .iihcart-form-heading { margin-top: 32px; }
#confirmation .iihcart-form-heading:first-child { margin-top: 0; }
.margin-bottom-3 { margin-bottom: 12px; }
.confirm-user-info,
.confirm-shipping-address-info,
.confirm-etc-info { padding: 16px; font-size: 16px; line-height: 1.8; }
.confirm-user-info P,
.confirm-shipping-address-info P,
.confirm-etc-info P { margin: 0; padding: 4px 0; }
.confirm-user-info .label,
.confirm-etc-info .label { display: inline-block; min-width: 120px; margin-right: 16px; color: var(--color-text-light); }

/* Confirmation Page - Footer Message */
#iihcart-confirm-input-page-header-message { margin-bottom: 24px; color: var(--color-text); }
#iihcart-confirm-input-page-footer-message { margin: 32px 0; line-height: 2; color: var(--color-text); }

/* Confirmation Page - Privacy Policy Checkbox */
.iihcart-agree-to-the-privacy-policy-wrap { display: flex; justify-content: center; padding: 24px 0 16px; }
.iihcart-agree-to-the-privacy-policy-wrap .checkbox-wrapper { justify-content: center; }

/* Confirmation Page - Bottom Buttons */
.iihcart-form-bottom-buttons-narrow { border: none; padding-top: 16px; padding-bottom: 40px; }

/* Confirmation Page - Button disabled state */
#btn-confirm-order.disabled { background: #ccc; color: #fff; cursor: not-allowed; opacity: 0.7; }

/* Processing Overlay */
#iihcart-processing-overlay { display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.5); justify-content: center; align-items: center; }
.iihcart-processing-content { background: #fff; border-radius: 8px; padding: 40px 48px; text-align: center; box-shadow: 0 4px 24px rgba(0,0,0,0.2); }
.iihcart-spinner { width: 36px; height: 36px; margin: 0 auto 20px; border: 3px solid #e0e0e0; border-top-color: var(--color-primary); border-radius: 50%; animation: iihcart-spin 0.8s linear infinite; }
@keyframes iihcart-spin { to { transform: rotate(360deg); } }
.iihcart-processing-message { font-size: 16px; color: var(--color-text); line-height: 1.6; margin: 0; }

/* Zeus 3D Secure Overlay (challenge iframe background) */
#iihcart-zeus-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 10001; }

/* Action Buttons (cart flow) */
.iihcart-action-buttons { display: flex; flex-direction: column; align-items: center; gap: 20px; padding-top: 20px; }
.iihcart-action-button-container { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.iihcart-action-button-container .btn-iihcart { min-width: 280px; }
.iihcart-action-button-container.no-full-width { width: auto; }
.iihcart-button-no-border-no-full-width { border: none !important; box-shadow: none; width: auto; min-width: 0 !important; background: transparent !important; color: var(--color-text) !important; padding: 8px 0 !important; display: inline-flex !important; align-items: center; gap: 4px; }
.iihcart-button-no-border-no-full-width:hover { color: var(--color-primary) !important; background: transparent !important; }
.iihcart-button-no-border-no-full-width .breadcrumb-separator { display: inline-flex; align-items: center; width: 8px; height: 12px; }
.iihcart-button-no-border-no-full-width .breadcrumb-separator svg { width: 100%; height: 100%; fill: currentColor; }

/* Responsive visibility helpers (mobile-first base) */
.hide-on-desktop { display: inline-flex; }
.show-on-desktop, .iihcart-required-container.show-on-desktop { display: none; }

/* Payment & Delivery Page */
@media(min-width:769px) {
	.hide-on-desktop { display: none; }
	.show-on-desktop, .iihcart-required-container.show-on-desktop { display: inline-flex; }
	.iihcart-required-field-missing { display: inline-block; width: 32px; flex-shrink: 0; }
}
#delivery_form > .iihcart-form-heading:first-of-type { margin-top: 0; }
.delivery-options { width: 100%; }
.form-radio { display: flex; align-items: center; gap: 8px; padding: 8px 0; }
.form-radio input[type="radio"] { width: 18px; height: 18px; accent-color: #248cb3; cursor: pointer; flex-shrink: 0; margin: 0; }
.form-radio label { font-size: 16px; cursor: pointer; font-weight: normal; }
.customer-information-address { padding: 4px 0 8px 26px; font-size: 14px; line-height: 1.8; color: var(--color-text); }
.customer-information-address p { margin: 0; }
#shipping-address-fields { margin-top: 16px; }
@media(min-width:769px) {
	#shipping-address-fields .iihcart-form-group { border-bottom: 1px solid #ccc; margin: 0; padding: 0; align-items: stretch; gap: 0; }
	#shipping-address-fields .iihcart-form-group:last-child .iihcart-block-label { border-bottom: 1px solid #fff; margin-bottom: -1px; }
	#shipping-address-fields .iihcart-block-label { background: #f2f2f2; padding: 16px 16px; margin: 0; min-width: 240px; display: flex; align-items: center; border-bottom: 1px solid #fff; margin-bottom: -1px; }
	#shipping-address-fields .input-fields { padding: 12px 16px 12px 32px; align-items: center; }
	#shipping-address-fields .input-fields > .show-on-desktop,
	#shipping-address-fields .input-fields > .iihcart-required-field-missing { width: 40px; flex-shrink: 0; text-align: center; }
}

/* Delivery/Payment Selects */
#delivery_form .padded-content > .iihcart-form-group { padding: 12px 0; }
#delivery_form select.input-medium-fixed { width: 240px; min-width: 240px; }
#delivery_form textarea { width: 100%; resize: vertical; padding: 12px; font-size: 16px; line-height: 1.6; }

/* Zeus Card Radio Toggle */
.zeus-radio-buttons-container { display: flex; gap: 24px; margin-bottom: 16px; }
.zeus-radio-button-group { display: flex; align-items: center; gap: 6px; }
.zeus-radio-button-group input[type="radio"] { width: 16px; height: 16px; accent-color: #248cb3; cursor: pointer; margin: 0; }
.zeus-radio-button-group label { font-size: 16px; cursor: pointer; }

/* Zeus Card - Shared Table Styles (desktop only) */
#zeus_registerd_card_area,
#iih_zeus_registerd_card_area_extra_payment_times,
#iih_zeus_new_card_area_extra_bland,
#zeus_new_card_area,
#iih_zeus_new_card_area_extra_payment_times { margin: 0; }

@media(min-width:1025px) {
#zeus_registerd_card_area .iihcart-form-group,
#iih_zeus_registerd_card_area_extra_payment_times .iihcart-form-group,
#iih_zeus_new_card_area_extra_bland .iihcart-form-group,
#zeus_new_card_area .iihcart-form-group,
#iih_zeus_new_card_area_extra_payment_times .iihcart-form-group { border-bottom: 1px solid #ccc; margin: 0; padding: 0; align-items: stretch; gap: 0; }

#zeus_registerd_card_area .iihcart-block-label,
#iih_zeus_registerd_card_area_extra_payment_times .iihcart-block-label,
#iih_zeus_new_card_area_extra_bland .iihcart-block-label,
#zeus_new_card_area .iihcart-block-label,
#iih_zeus_new_card_area_extra_payment_times .iihcart-block-label { background: #f2f2f2; padding: 16px 16px; margin: 0; min-width: 240px; display: flex; align-items: center; border-bottom: 1px solid #fff; margin-bottom: -1px; font-size: 14px; }

#zeus_registerd_card_area .input-fields,
#iih_zeus_registerd_card_area_extra_payment_times .input-fields,
#iih_zeus_new_card_area_extra_bland .input-fields,
#zeus_new_card_area .input-fields,
#iih_zeus_new_card_area_extra_payment_times .input-fields { padding: 12px 16px 12px 32px; align-items: center; }

/* Last row in each continuous block: no border */
#zeus_registerd_card_area .iihcart-form-group:last-child,
#iih_zeus_new_card_area_extra_bland .iihcart-form-group:last-child,
#zeus_new_card_area .iihcart-form-group:last-child { border-bottom: none; }
#zeus_registerd_card_area .iihcart-form-group:last-child .iihcart-block-label,
#iih_zeus_new_card_area_extra_bland .iihcart-form-group:last-child .iihcart-block-label,
#zeus_new_card_area .iihcart-form-group:last-child .iihcart-block-label { border-bottom: none; margin-bottom: 0; }

/* Continuous borders between stacked containers */
#iih_zeus_registerd_card_area_extra_payment_times { border-top: 1px solid #ccc; }
#iih_zeus_registerd_card_area_extra_payment_times .iihcart-block-label { border-top: 1px solid #fff; margin-top: -1px; }
#zeus_new_card_area { border-top: 1px solid #ccc; }
#zeus_new_card_area .iihcart-form-group:first-child .iihcart-block-label { border-top: 1px solid #fff; margin-top: -1px; }
#iih_zeus_new_card_area_extra_payment_times { border-top: 1px solid #ccc; }
#iih_zeus_new_card_area_extra_payment_times .iihcart-block-label { border-top: 1px solid #fff; margin-top: -1px; }

/* Mypage card page: restore border on last field (card name) */
#mypage-card-register-form #zeus_new_card_area .iihcart-form-group:last-child { border-bottom: 1px solid #ccc; }
#mypage-card-register-form #zeus_new_card_area .iihcart-form-group:last-child .iihcart-block-label { border-bottom: 1px solid #fff; margin-bottom: -1px; }
}

/* Card Form Field Widths */
@media(min-width:1025px) {
#iihcart-card-brand-select { width: 400px; }
#zeus_token_card_number { width: 400px; max-width: 400px; }
#zeus_token_card_cvv,
#zeus_token_card_cvv_for_registerd_card { width: 100px; max-width: 100px; }
.iihcart-select-label,
.iihcart-select-label-first { width: 240px; }
}

/* Payment Form Bottom Buttons */
.iihcart-form-bottom-buttons { border: none; padding-top: 48px; padding-bottom: 40px; }

/* Cart Mobile */
@media(max-width:768px) {
	.cart-page-title { font-size: 20px; margin-bottom: 16px; }
	.cart-page-item { padding: 16px 0; }
	.cart-page-item > td:first-child { padding-left: 0; }
	.cart-page-item > td:last-child { padding-right: 0; }
	.cart-item-image img { width: 80px; height: 80px; min-width: 80px; }
	.cart-item-details { padding: 0 0 0 12px; }
	.cart-item-title { font-size: 16px; font-weight: normal; margin-bottom: 4px; }
	.cart-item-price, .cart-item-stock { font-size: 10px; margin: 0; display: inline; }
	.cart-item-price { margin-right: 8px; }
	.cart-item-actions .iihcart-remove-from-cart { font-size: 12px; }
	#iihcart-subtotal-price { font-weight: 700; }
	.cart-item-price .tax-included { font-size: 10px; }
	.cart-item-actions.desktop-actions { display: none; }
	.cart-item-actions.mobile-actions { display: flex; flex-direction: column; align-items: flex-start; margin-top: 8px; padding: 0; }
	.cart-item-select { margin-bottom: 8px; }
	.cart-item-bottom { margin-top: 0; }
	.iihcart-amount { display: inline-block; font-size: 16px; }
	.iihcart-final-amount-item { justify-content: flex-end; flex-wrap: wrap; }
	.iihcart-final-amount-item .label { margin-right: auto; }
	.iihcart-final-amount-item .tax-included { margin-left: 0; }
	/* Confirmation Mobile */
	#confirmation .iihcart-final-amount { grid-template-columns: auto 1fr; }
	#confirmation .iihcart-final-amount-row .label { text-align: left; padding-right: 16px; }
	#confirmation .iihcart-final-amount-row .amount-value { text-align: right; }
	.confirm-user-info,
	.confirm-shipping-address-info,
	.confirm-etc-info { padding: 12px 0; font-size: 16px; }
	.confirm-user-info .label,
	.confirm-etc-info .label { display: block; min-width: auto; margin-bottom: 0; font-size: 14px; }
	#iihcart-confirm-input-page-footer-message { margin: 24px 0; padding: 16px 0; }
	.iihcart-agree-to-the-privacy-policy-wrap { padding: 16px 0 8px; justify-content: flex-start; }
	.iihcart-agree-to-the-privacy-policy-wrap .checkbox-wrapper { justify-content: flex-start; }
	.iihcart-form-bottom-buttons-narrow { padding-bottom: 32px; }
	#confirmation .cart-item-price, #confirmation .cart-item-stock { display: block; }
	#confirmation .iihcart-action-button-container-alt { align-items: stretch; }
}

/* Card Edit Form */
.iihcart-zeus-payment-group { margin-bottom: 16px; }

/* Card Edit Page - Align with heading */
#iihcart-credit-card-payment-method-wrap { padding-left: 16px; }
#mypage-card-register-form { padding-left: var(--padded-content-padding); }
#mypage-card-register-form .pagination-buttons,
#mypage-card-register-form .iihcart-order-details-footer-container { margin-left: calc(-1 * var(--padded-content-padding)); }
#delivery_form #iihcart-credit-card-payment-method-wrap { padding-left: 0; }
.iihcart-zeus-payment-group.padding-top-0 { padding-top: 0; }
.iihcart-zeus-payment-group input[type="tel"],
.iihcart-zeus-payment-group input[type="text"] { padding: 8px 12px; border: 1px solid var(--color-gray-border); border-radius: 0; font-size: 16px; font-family: var(--font-family); }
.iihcart-zeus-payment-group select { padding: 8px 12px; border: 1px solid var(--color-gray-border); border-radius: 0; font-size: 16px; font-family: var(--font-family); }
.iihcart-select-label,
.iihcart-select-label-first { padding: 8px 12px; border: 1px solid var(--color-gray-border); border-radius: 0; font-size: 16px; }
.expiration-date-fields { display: flex; align-items: center; gap: 4px; font-size: 16px; }
.zeus-token-month-margin, .zeus-token-divider-margin, .zeus-token-year-margin { font-size: 16px; }

/* Purchase History Detail */
.iihcart-order-details-container { margin-top: 8px; padding-left: 16px; }
.iihcart-order-detail-border { border-top: none; }
.iihcart-order-details-header { display: flex; padding: 12px 16px; background: #f2f2f2; border-bottom: 1px solid #ccc; font-size: 14px; font-weight: normal; color: var(--color-text); }
.iihcart-detail-name-header { flex: 1; }
.iihcart-detail-price-header { flex: 0 0 100px; text-align: center; }
.iihcart-detail-quantity-header { flex: 0 0 80px; text-align: center; }
.iihcart-detail-total-header { flex: 0 0 140px; text-align: center; }
.iihcart-order-detail-item-for-wide { border-bottom: 1px solid #ccc; }
.iihcart-order-detail-item { display: flex; align-items: center; padding: 16px; font-size: 16px; }
.iihcart-order-item-name { flex: 1; }
.iihcart-order-item-name a { color: var(--color-link); text-decoration: underline; }
.iihcart-order-item-price { flex: 0 0 100px; text-align: right; }
.iihcart-order-item-quantity { flex: 0 0 80px; text-align: center; }
.iihcart-order-item-total { flex: 0 0 140px; text-align: right; }
.iihcart-order-detail-item-narrow { display: none; }

/* Final Amount */
.custom-final-amount { margin-top: 16px; padding: 8px 16px 0 0; }
.custom-final-amount-row { display: flex; justify-content: flex-end; align-items: baseline; padding: 4px 0; font-size: 16px; }
.custom-final-label { text-align: right; }
.custom-final-value { text-align: right; flex: 0 0 180px; overflow: visible; white-space: nowrap; }
.custom-final-total { }
.custom-final-total .custom-final-value::after { content: '（税込）'; font-size: 16px; color: var(--color-text); }
.custom-final-tax-included { display: none; }

/* Receipt Form */
.receipt-form-container { margin: 12px 0; padding-bottom: 16px; padding-left: 16px; border-top: none; border-bottom: 1px solid #ccc; }
.receipt-heading { border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; padding-top: 24px; padding-bottom: 16px; }
.iihcart-order-info-heading.receipt-heading { margin-top: 48px; }
.receipt-form-instruction { font-size: 14px; color: #e60012; margin-left: 8px; font-weight: normal; }
@media(max-width:1024px) {
	.receipt-form-instruction { display: block; margin-left: 0; margin-top: 4px; }
}
.iihcart-receipt-form .form-group { display: flex; align-items: center; gap: 8px; }
.iihcart-receipt-form .form-group label { font-size: 16px; flex-shrink: 0; }
.input-medium-fixed { padding: 8px 12px; border: 1px solid var(--color-gray-border); border-radius: 0; font-size: 16px; font-family: var(--font-family); width: 240px; max-width: 240px; }
input[type="text"].input-medium-fixed { width: 240px; max-width: 240px; }
.iihcart-btn-receipt-form { padding: 8px 20px !important; font-size: 16px !important; margin-left: 24px; }

/* Detail Footer */
.iihcart-order-details-footer-container { text-align: center; padding: 40px 0; }
.iihcart-order-details-footer-container .btn-iihcart { min-width: 280px; }
@media(max-width:1024px) {
	.iihcart-order-detail-item-for-wide { display: none; }
	.iihcart-order-details-header { display: none; }
	.iihcart-order-details-container { background: #fff; padding: 16px 0; }
	.iihcart-order-info-heading { padding-left: 0; }
	.receipt-form-container { padding-left: 0; border-bottom: none; }
	.receipt-heading { border-top: none; border-bottom: none; }
	.iihcart-order-detail-item-narrow { display: block; border-top: 1px solid #ddd; border-bottom: none; padding: 16px 0; }
	.iihcart-order-detail-item-narrow .iihcart-order-detail-item { display: block; padding: 0; }
	.iihcart-order-detail-narrow { display: flex; justify-content: flex-start; gap: 32px; padding: 4px 0; font-size: 16px; }
	.iihcart-order-label-narrow { font-weight: normal; font-size: 16px; color: var(--color-text); min-width: 120px; }
	.iihcart-order-value-narrow { font-size: 16px; }
	.iihcart-order-value-narrow a { color: var(--color-link); text-decoration: underline; }
	.custom-final-amount { background: #fff; margin: 0; padding: 16px 0; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }
	.custom-final-amount-row { justify-content: flex-start; gap: 32px; padding: 4px 0; font-size: 16px; }
	.custom-final-value { flex: none; overflow: hidden; white-space: normal; text-align: left; }
	.custom-final-label { min-width: 120px; text-align: left; }
	.custom-final-total .custom-final-value::after { font-size: 16px; }
	.iihcart-receipt-form .form-group { flex-wrap: wrap; }
	.iihcart-receipt-form .form-group input.input-medium-fixed { width: 100%; max-width: 100%; }
	.iihcart-receipt-form .form-group .iihcart-btn-receipt-form { width: 100%; margin-left: 0; margin-top: 16px; padding-top: 20px !important; padding-bottom: 20px !important; }
	.iihcart-order-details-footer-container .btn-iihcart { min-width: 200px; }
}

/* Error Messages */
.iihcart-error-message { background: #fff3cd; border: 1px solid #ffc107; border-radius: 4px; padding: 12px 16px; margin-bottom: 16px; font-size: 14px; }

/* Validation */
.iihcart-validation-error { color: var(--color-error); font-size: 13px; margin-top: 4px; }
div.iihcart-validation-error { width: 100%; flex-basis: 100%; }

/* ---- Mypage Mobile ---- */
@media(max-width:768px) {
	.mobile-hide { display: none; }
	.iihcart-user-info-container { padding: 20px; margin-bottom: 24px; margin-left: -20px; margin-right: -20px; }
	.iihcart-name-bold { font-size: 18px; }
	.iihcart-user-info { flex-direction: column; gap: 4px; }
	.iihcart-form-heading { margin-top: 32px; margin-left: -20px; margin-right: -20px; padding: 16px 20px; font-size: 14px; }
	.iihcart-form-detail-instruction { padding-left: 0; }
	.padded-content { padding-left: 0; padding-right: 0; }
	.divider { display: none; }
	.iihcart-order-history-header { display: none; }
	.iihcart-order-history-border { display: block; }
	.iihcart-order-history-item { display: block; padding: 20px 0; }
	.iihcart-order-history-item > div { font-size: 14px; }
	.iihcart-order-history-for-wide { display: none; }
	.iihcart-order-history-for-narrow { display: block; }
	.iihcart-order-date { width: auto; text-align: left; }
	.iihcart-order-number { width: auto; text-align: left; }
	.iihcart-order-total { text-align: left; padding: 0; }
	.iihcart-order-detail { justify-content: left; align-items: flex-start; padding: 4px 0; }
	.iihcart-order-label { min-width: 120px; }
	.iihcart-form-group .iihcart-block-label { min-width: auto; }
	.input-medium-fixed { width: 120px; }
	.iihcart-zeus-payment-group input[type="tel"],
	.iihcart-zeus-payment-group input[type="text"] { width: 100%; }
}

/* ==========================================================================
   Utility
   ========================================================================== */
.text-center { text-align: center; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mb-3 { margin-bottom: 24px; }
/* =========================================================================
   ショートコード: 商品カード [iihcart_show_cart]
   ========================================================================= */

.iihcart-shortcode-product { background: #fff; border: 1px solid var(--color-gray-border); border-radius: var(--border-radius-sm, 4px); padding: 20px; max-width: 360px; }
.iihcart-shortcode-name { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.iihcart-shortcode-price { font-size: 20px; margin-bottom: 16px; }
.iihcart-shortcode-price .tax-included { font-size: 12px; color: var(--color-text-light, #666); }
.iihcart-shortcode-price .iihcart-pro-billing-cycle { font-size: 14px; color: var(--color-text-light, #666); }
.iihcart-shortcode-quantity { margin-bottom: 16px; }
.iihcart-shortcode-quantity label { font-size: 14px; margin-right: 8px; }
.iihcart-shortcode-quantity select { padding: 4px 8px; }
.iihcart-shortcode-product .btn-iihcart { display: block; width: 100%; }
.iihcart-shortcode-product .iihcart-pro-already-subscribed { font-size: 14px; line-height: 1.8; }

@media print { .site-header,.header-nav,.site-footer,.back-to-top,.btn-fixed-bottom { display: none; } }
