/* single.php */
.ol-article__title {
	margin-bottom: 14px;
}
#bento-volume .bento-volume-list {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-around;
}
#bento-volume .bento-volume-item {
	text-align: center;
	color: #A2A2A2;
	width: 30%;
}
#bento-volume .bento-volume-item .contents {
	margin-top: 8px;
	font-size: 0.7rem;
	line-height: 1.5;
}
#bento-volume .bento-volume-item .heading {
	border: 1px solid #A2A2A2;
	padding: 8px 12px;
	border-radius: 16px;
	font-size: 20px;
	font-weight: bold;
	margin: 0;
	line-height: 1.5;
}
#bento-volume .bento-volume-item.active .heading {
	border: 1px solid #333333;
	background-color: #333333;
	color: #ffffff;
}
#bento-volume .bento-volume-item.active .contents {
	color: #333333;
}
.bento-price {
	font-size: 32px;
	font-weight: bold;
}
.bento-detail p.bento-price span {
	font-size: 18px;
	font-weight: normal;
}
.single-custom--bento {
	font-size: 20px;
	font-weight: bold;
	position: relative;
	padding: 16px;
	margin: 32px 0 16px;
}
.bento-points {
	margin-bottom: 64px;
}
.single-custom--bento::before {
	content: '';
	position: absolute;
	top: 20px;
	left: 0;
	width: 100%;
	height: 32px;
	border-left: 2px solid #333333;
}
.bento-points ul {
	padding-left: 32px;
}
.bento-points ul li {
	list-style-type: disc;
	margin-bottom: 16px;
}
.allergy {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
	padding: 16px;
	border: 1px solid #333333;
	margin-top: 48px;
}
.allergy p {
	margin: 0;
}
/* シングルページ　お弁当サブ画像 */
.bento-subimages {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 24px;
}

.bento-subimage img {
    width: 100%;
    height: auto;
    display: block;
}

/* シングルページ　本文の位置調整 */
/* .ol-article__content {
	margin-top: 0;
}
.ol-article__content p {
	margin-top: 16px;
} */

/* シングルページ　タグ位置調整 */
.ol-category__item-anchor {
	top: -1px;
}
.ol-article__tag-item {
	line-height: 1;
}
.ol-article__meta {
	margin-bottom: 4px;
}
.ol-article__tag {
	margin: 0;
}
.ol-article__tag-list {
	justify-content: flex-start;
}
.customize-category-list {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
.customize-category-list  > div {
	margin-right: 8px;
}

/* シングルページ　商品番号表示 */
.bento-item {
    font-size: 14px;
    color: #a9a9a9;
	text-align: right;
	line-height: 1;
	margin-bottom: 16px;
}

.bento-item-label {
    margin-right: 8px;
}

.bento-item-value {
    letter-spacing: 0.05em;
}
/* アイキャッチ画像の横幅合わせる */

/* .ol-article__content .wp-block-image .wp-block-image img {
	width: 100%;
	height: auto;
	object-fit: contain;
} */

/* ====================================
コンタクトフォーム
==================================== */

.page:not(.home) strong {
    display: block;
    margin-bottom: 16px;
}
.ol-article__content input.wpcf7-validates-as-number {
	background-color: #ffffff;
    border: 1px solid #ccc;
}
.ol-article__content .cf7-quantity_wrap {
	width: 100%;
	height: 64px;
	display: flex;
	justify-content: space-around;
}
.ol-article__content .cf7-quantity_wrap .cf7-quantity__number > p {
	display: flex;
	justify-content: space-evenly;
    width: 100%;
	margin: 0;
}
.ol-article__content .cf7-quantity_wrap p.cf7-quantity__label {
	padding-top: 0;
	margin: 0;
	line-height: 1;
}
.ol-article__content .cf7-quantity__number p .wpcf7-form-control-wrap {
	width: 126px;
}
.ol-article__content .cf7-quantity__number p .wpcf7-form-control-wrap input {
	width: 100px;
}
.ol-article__content .wpcf7 p::after {
	display: none;
}
.ol-article__content .wpcf7 p {
	margin: 0;
	padding: 0;
}
.ol-article__content .wpcf7 h3 {
	font-size: 24px;
	margin-top: 64px;
}
.ol-article__content .wpcf7 hr {
	margin-top: 64px;
}

/* ==========================================================================
   js-form
   ========================================================================== */

/* 全体ラッパー */
#is-system-wrapper {
    max-width: 800px;
    margin: 0 auto;
    color: #333;
    line-height: 1.6;
}

/* 共通セクション設定 */
.is-section {
    margin-bottom: 20px;
}
.wpcf7 #is-system-wrapper input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea, .wpcf7 form.sent .wpcf7-response-output {
    margin-bottom: 36px;
}
.wpcf7 #is-system-wrapper .wpcf7-not-valid-tip {
    bottom: -24px;
}
.wpcf7 #is-system-wrapper .wpcf7-form-control .wpcf7-list-item {
    align-items: flex-start;
    line-height: 1.4;
}
#is-system-wrapper h3 {
    font-size: 1.25rem;
    margin-bottom: 48px;
    border-top: 1px solid #c30018;
    border-bottom: 1px solid #c30018;
    padding: 16px 8px;
}

.is-divider {
    margin: 30px 0;
    border: 0;
    border-top: 1px solid #fbf7f0;
}

/* お弁当注文セット */
.bento-order-set {
    margin-bottom: 20px;
    padding-bottom: 48px;
    border-bottom: 1px solid #666666;
}

.extra-set {
    margin-top: 16px;
    padding-top: 36px;
    border-left: 4px solid #c30018;
    padding-left: 16px;
	background-color: #ffffff;
}

.tea-selection-wrapper {
    margin-top: 10px;
    padding: 15px;
    /* background: #f5f5f5; */
    border-radius: 4px;
}

.tea-selection-wrapper label {
    margin-left: 15px;
    cursor: pointer;
}
/* ====================================
注文フォーム：個数入力
==================================== */
/* 1. pタグをFlexコンテナにして横並びにする */
.size-selection-area p {
    display: flex;
    flex-wrap: wrap; /* スマホなどで溢れたら折り返す設定 */
    align-items: center; /* 垂直方向の中央揃え */
    gap: 10px; /* 各要素間の隙間（お好みで調整） */
}

/* 2. 「ラベル ＋ 入力欄 ＋ 個」を一つのセットに見せる調整 */
.size-selection-area .wpcf7-form-control-wrap {
    display: flex;
    align-items: center;
    margin-right: 15px; /* 次のセット（普通盛など）との間隔 */
}

/* 3. 入力欄の後に「個」を自動で追加する（スケッチの再現） */
.size-selection-area .wpcf7-form-control-wrap::after {
    content: "\500b";
    margin-left: 5px;
    font-weight: bold;
}

/* 4. 入力ボックスのサイズを整える */
.size-selection-area input[type="number"] {
    width: 60px !important; /* 横幅を小さく固定 */
    padding: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-align: center;
}
.size-selection-area input.wpcf7-validates-as-number {
    border: 1px solid #ccc;
}
/* スマホ（画面幅480px以下）専用の設定 */
@media screen and (max-width: 480px) {
    .size-selection-area p {
        display: grid !important; /* FlexからGridに切り替え */
        grid-template-columns: 5em 1fr; /* 左側にラベル幅を固定、右側に入力欄 */
        align-items: center; /* 上下中央揃え */
        gap: 15px 0; /* 行間の隙間を15pxに設定 */
        padding: 10px 0;
    }

    .size-selection-area .wpcf7-form-control-wrap {
        margin-right: 0 !important; /* 横並び用の余白をリセット */
        display: flex !important;
        align-items: center;
    }

    /* 入力ボックスを少しだけ大きくしてタップしやすくする */
    .size-selection-area input[type="number"] {
        width: 80px !important;
        height: 40px;
        font-size: 16px; /* iPhoneでズームされないためのサイズ */
    }
}

/* ラベル自体をFlexコンテナにして、中身を縦中央に揃える */
.tea-selection-wrapper label,
.extra-item-wrapper label,
.wpcf7-form-control-wrap label {
    display: flex !important;
    align-items: center !important; /* 垂直中央揃え */
    width: fit-content !important; /* 横幅100%を解除して中身に合わせる */
    margin-bottom: 8px !important; /* 項目間の隙間 */
    cursor: pointer;
}

/* ラジオボタン自体のサイズと余白を固定 */
.tea-selection-wrapper input[type="radio"],
.extra-item-wrapper input[type="radio"] {
    margin: 0 8px 0 0 !important; /* 右側にだけ隙間を作る */
    width: 18px !important;       /* ボタンのサイズ */
    height: 18px !important;
    flex-shrink: 0;               /* 画面が狭くなっても潰れないように固定 */
}

/* ラベルテキストの微調整 */
.tea-selection-wrapper label, 
.extra-item-wrapper label {
    line-height: 1 !important;
    font-size: 1rem;
}
/* ====================================
注文フォーム：イッセイセレクション専用ハイライト
==================================== */

.is-selection-highlight {
    background: #ffffff;
    padding: 15px;
    border-radius: 5px;
    margin: 10px 0 36px;
}
/* 休業日案内のスタイル */
.deriver-date {
    display: flex;
    align-items: center;
}
.is-small-notice {
    display: block;
    font-size: 0.8rem;
    color: #c30018; /* 注意を引くために赤系、または #666 など控えめな色でもOK */
    margin-top: 5px;
    font-weight: normal;
    line-height: 1.4;
}
/* 領収書エリア */
#payment-area label {
    display: flex;
    align-items: center;
}
#payment-area label input[type="radio"] {
    margin-bottom: 0;
    margin-right: 8px;
}
.receipt-wrapper {
    background: #ffffff;
    padding: 20px;
    border-left: 5px solid #c30018;
    margin-top: 10px;
}

/* 備考欄（textarea）のスタイル */
#is-system-wrapper textarea {
    width: 100%;
    height: 120px;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box; /* 枠線がはみ出さないように */
    font-size: 0.95rem;
    resize: vertical; /* 縦方向のみリサイズ可能に */
}
.attention {
    color: gray;
    font-size: 0.7rem;
}
/* ボタンエリア */
#step-control-buttons {
    margin-top: 40px;
    text-align: center;
}

#is-system-wrapper button, 
#is-system-wrapper .wpcf7-submit {
    transition: opacity 0.2s;
    cursor: pointer;
    border: none;
    font-weight: bold;
    border-radius: 5px;
}

#is-system-wrapper button:hover,
#is-system-wrapper .wpcf7-submit:hover {
    opacity: 0.8;
}

/* 個別ボタン色設定 */
#go-to-confirm {
    padding: 15px 40px;
    background: #c30018; /* 赤 */
    color: #fff;
    font-size: 1.1rem;
}

#back-to-edit {
    padding: 10px 25px;
    background: #9e9e9e; /* グレー */
    color: #fff;
}

.wpcf7-submit {
    padding: 10px 30px;
    background: #c30018 !important; /* オレンジ */
    color: #fff !important;
}

/* ====================================
注文フォーム：確認画面
==================================== */
#confirmation-screen {
    /* background: #fffde7; */
    padding: 30px;
    /* border: 2px solid #c30018; */
    margin-top: 20px;
    border-radius: 10px;
}

#confirmation-screen h3 {
    color: #c30018;
    border-bottom-color: #ffffff;
}

#final-summary-display {
    white-space: pre-wrap;
    background: #fff;
    padding: 25px;
    border: 1px solid #ddd;
    margin-bottom: 25px;
    font-size: 0.95rem;
}
/* ====================================
注文フォーム：ローディングオーバーレイ
==================================== */

#is-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9); /* 白の半透明 */
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.is-loading-content p {
    margin-top: 20px;
    font-weight: bold;
    color: #333;
}

.is-loading-content span {
    font-size: 0.8rem;
    color: #c30018;
}
/* ====================================
注文フォーム：くるくる回るアニメーション
==================================== */

.is-spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #eee;
    border-top: 5px solid #c30018;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* JSで制御するためのクラス */
.is-hidden { display: none !important; }

/* --- 中断ボタンのデザイン --- */
#force-cancel-btn {
    display: inline-block;
    margin-top: 25px;
    padding: 12px 24px;
    background-color: #666666; /* 落ち着いたグレー */
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease; /* アニメーションを滑らかに */
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* ホバー時（マウスを乗せた時） */
#force-cancel-btn:hover {
    background-color: #444444; /* 少し濃くする */
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    transform: translateY(-1px); /* わずかに浮き上がる演出 */
}

/* アクティブ時（クリックした瞬間） */
#force-cancel-btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

/* ローディング画面内のテキスト調整（ついでに微調整） */
.is-loading-content p {
    line-height: 1.6;
    margin: 10px 0;
}
/* 完了画面 */
#completion-screen {
    background: #e8f5e9;
    padding: 50px 20px;
    border: 2px solid #4caf50;
    margin-top: 20px;
    border-radius: 10px;
    text-align: center;
}

#completion-screen h3 {
    color: #2e7d32;
    border: none;
}

.btn-home {
    padding: 12px 30px;
    background: #4caf50;
    color: #fff;
}

/* ユーティリティ */
.is-hidden {
    display: none;
}

.is-button-group {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-top: 10px;
}
.is-button-group > p {
    display: flex;
    flex-direction: column-reverse;
}

/* レスポンシブ対応 */
@media (max-width: 600px) {
    .is-button-group {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
}

/* 1. 【基本設定】リロード時の青い枠などを防ぐため、まずは強制的に全部消す */
.wpcf7-response-output {
    display: none !important;
}

/* 2. 【エラー時のみ表示】入力不備(.invalid)や送信失敗(.failed)の時だけ表示させる */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
    display: block !important;
}

/* 3. 【送信成功時は隠す】送信完了(.sent)の時は、完了画面を表示するので枠は不要 */
.wpcf7 form.sent .wpcf7-response-output {
    display: none !important;
}

/* ====================================
よくある質問
==================================== */
summary {
  display: grid;  /* 初期値の display: list-item 以外を指定したので、デフォルトの三角形アイコンは非表示になる */
  grid-template-columns:  1fr 24px;
  gap: 6px;
  align-items: center;
  cursor: pointer;
  padding: 16px 24px;
  font-weight: bold;
  background-color: #ffffff;
  /* Safariで表示されるデフォルトの三角形アイコンを消します */
  &::-webkit-details-marker {
    display: none;
  }
}
/* --------アイコン-------- */
.icon {
  display: block;
  position: relative;
  width: 16px;
  transform-origin: center 43%;
  transition: transform 0.4s;
  /* アイコンのバーのスタイル */
  &::before, &::after {
    content: "";
    position: absolute;
    display: block;
    width: 10px;
    height: 2px;
    background-color: #c30018;
  }
  &::before {
    left: 0;
    transform: rotate(45deg);
  }
  &::after {
    right: 0;
    transform: rotate(-45deg);
  }
}
/* アコーディオンが開いた時のスタイル */
details[open] .icon {
  transform: rotate(180deg);
}
/* summaryタグの疑似要素でアイコンを作るパターン
（注意）疑似要素のトランジションはSafari 17.4以前でうまくいかない */
.pseudoElement {
  summary::after {
    content: "";
    display: block;
    width: 25px;
    height: 16px;
    margin-left: 6px;
    background-image: url("icon.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform-origin: center 43%;
    transition: transform 0.4s;
  }
  details[open] summary::after {
    transform: rotate(180deg);
  }
}

/* --------アコーディオンの中身のスタイル-------- */
details .content {
  background-color: rgba(195,0,24,0.09);
  padding: 24px 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.single p, .page:not(.home) details .content p {
	margin-top: 8px;
	margin-bottom: 8px;
}

.page:not(.home) table {
	background-color: #ffffff;
}
.page:not(.home) tbody {
	border-color: #f0f0f0;
}
.page:not(.home) thead {
	background-color: #f0f0f0;
	border-bottom: none;
}
.wp-block-table td, .wp-block-table th {
	border: 1px solid #f0f0f0;
}