/*
Theme Name: Hina Store
Theme URI: https://example.com/hina-store
Author: Hina Store
Author URI: https://example.com
Description: 桜色のかわいい系コーポレート／ショップテーマ。告知バー・ピンクのヘッダーバンド・カラフルなカテゴリータイル・4カラムの商品グリッド・ピンクのフッターなど、ハニーな雑貨ショップのビジュアルを WordPress で再現します。WooCommerce 対応。
Version: 1.19.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hina-store
Tags: e-commerce, two-columns, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ==========================================================
   1. Design tokens
   ========================================================== */
:root {
  /* cream × coral rose (chiikawamarket-inspired), Hina Store original */
  --cm-announce-bg: #e77277;
  --cm-announce-text: #ffffff;
  --cm-header-bg: #fbf1de;
  --cm-pink: #e77277;
  --cm-pink-soft: #f0a3a8;
  --cm-pink-pale: #fbdcd4;
  --cm-pink-mist: #fdf3ef;
  --cm-blue: #5b9bd5;
  --cm-blue-deep: #4682b8;
  --cm-blue-pale: #e3f0fb;
  --cm-red: #e77277;
  --cm-tile-pink: #ffd3e2;
  --cm-tile-orange: #ffe3c4;
  --cm-tile-lavender: #e4d4f4;
  --cm-tile-mint: #c9ebe4;
  --cm-tile-blue: #c3dcf8;
  --cm-text: #4a3f36;
  --cm-text-light: #9b8c7f;
  --cm-border: #e8dcc8;
  --cm-shadow: 0 4px 14px rgba(35, 35, 35, 0.08);
  --cm-shadow-soft: none;
  --cm-footer-top: #f9d7dc;
  --cm-footer-mid: #fce3e7;
  --cm-footer-bottom: #e77277;
  --cm-radius: 0px;
  --cm-radius-lg: 0px;
  --cm-font-body: "M PLUS Rounded 1c", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --cm-font-heading: "M PLUS Rounded 1c", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  --cm-font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --cm-container: 1260px;
  --cm-content: 800px;
}

/* ==========================================================
   2. Reset / base
   ========================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: #fff;
  color: var(--cm-text);
  font-family: var(--cm-font-body);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.8;
  word-wrap: break-word;
}

img { max-width: 100%; height: auto; vertical-align: middle; border-style: none; }

a { color: var(--cm-pink); text-decoration: none; transition: opacity .2s ease, color .2s ease; }
a:hover { opacity: .72; }

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

h1, h2, h3, h4, h5, h6 {
  font-family: var(--cm-font-heading);
  font-weight: 500;
  letter-spacing: .04em;
  color: var(--cm-text);
  line-height: 1.4;
  margin: 0 0 .8em;
}

p { margin: 0 0 1.6em; }

input, button, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; background: #fff; color: var(--cm-pink);
  padding: 8px 16px; z-index: 100000;
}
.skip-link:focus { left: 0; }

.cm-container {
  max-width: var(--cm-container);
  margin: 0 auto;
  padding: 0 64px;
}

.cm-content {
  max-width: var(--cm-content);
  margin: 0 auto;
}

/* ==========================================================
   3. Announcement bar（顶部通告栏：静态单次展示）
   ========================================================== */
.cm-announce {
  background: var(--cm-announce-bg);
  color: var(--cm-announce-text, #ffffff);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1001;
}

.cm-announce__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

.cm-announce__text {
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  line-height: 1.4;
}

/* ==========================================================
   4. Header band（暖白毛玻璃，滚动吸顶）
   ========================================================== */
.cm-header-band {
  /* 半透明白 + 模糊：内容从导航栏下方滚过时呈现毛玻璃效果 */
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  box-shadow:
    0 1px 0 rgba(240, 222, 216, 0.9),
    0 12px 32px -24px rgba(64, 48, 44, 0.35);
  height: 68px;
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* 登录状态下避开 WordPress 管理栏 */
body.admin-bar .cm-header-band { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .cm-header-band { top: 46px; }
}

.cm-header-band__inner {
  height: 68px;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  position: relative;
}

/* 粉色条纹带中央的品牌标识——桌面与移动统一为居中的文字Logo（无爱心） */
.cm-band-brand { display: none; }

.cm-header-band__icons {
  display: flex;
  align-items: center;
  gap: 24px;
  color: var(--cm-text);
  padding-right: 4px;
  margin-left: auto;
}

.cm-language-menu { position: relative; color: var(--cm-text); font-size: 11px; }
.cm-language-menu summary {
  min-width: 62px;
  padding: 5px 17px 5px 0;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.cm-language-menu summary::-webkit-details-marker { display: none; }
.cm-language-menu summary::after {
  content: "";
  position: absolute;
  top: 10px;
  right: 1px;
  width: 6px;
  height: 6px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}
.cm-language-menu[open] summary::after { top: 13px; transform: rotate(225deg); }
.cm-language-menu__items {
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  z-index: 20;
  min-width: 92px;
  padding: 5px 0;
  background: #fff;
  border: 1px solid var(--cm-border);
  box-shadow: var(--cm-shadow);
}
.cm-language-menu__item {
  display: block;
  padding: 5px 10px;
  color: var(--cm-text);
  white-space: nowrap;
}
.cm-language-menu__item:hover,
.cm-language-menu__item.is-active { color: var(--cm-pink); opacity: 1; }

.cm-icon-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cm-text);
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  cursor: pointer;
  transition: opacity .2s ease;
}

.cm-icon-link:hover { background: none; transform: none; opacity: .8; }

.cm-icon-link svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.cm-cart-count {
  position: absolute;
  top: -4px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--cm-pink);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

/* ==========================================================
   5. Logo（现代纯净双色排印，无描边）
   ========================================================== */
.cm-logo {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--cm-text);
  font-family: var(--cm-font-heading);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .02em;
  white-space: nowrap;
  text-shadow: none;
  transition: opacity .2s ease, transform .2s ease;
}

.cm-logo:hover {
  opacity: .88;
}

.cm-logo__name {
  color: var(--cm-text);
  font-weight: 800;
}

.cm-logo__sub {
  color: var(--cm-pink);
  font-weight: 800;
}

.cm-logo svg,
.cm-logo__heart {
  width: 17px;
  height: 17px;
  fill: var(--cm-pink);
  margin-top: -1px;
}

/* 融合后的单行头部：菜单靠左、品牌标识居中、搜索+图标靠右（移动端由抽屉菜单接管） */
.cm-band-nav { display: flex; align-items: center; }
.cm-band-nav__menu { display: flex; align-items: center; gap: 4px 26px; flex-wrap: wrap; }
.cm-band-nav__menu a { color: var(--cm-text); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.cm-band-nav__menu a:hover { color: var(--cm-pink); opacity: 1; }

/* 头部不再放内联搜索条，搜索统一走全屏遮罩层 */

@media (max-width: 900px) {
  .cm-band-nav { display: none; }
}

/* 文字Logo全端显示并居中（桌面与移动统一，爱心为精致小号款） */
.cm-header-band .cm-logo,
.cm-header-band .custom-logo-link {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
/* Hina 后的精致小爱心：略小一号并微微上提，与文字基线更协调 */
.cm-header-band .cm-logo svg {
  width: 16px;
  height: 16px;
  margin-top: -1px;
}

.cm-nav { flex: 1 1 auto; min-width: 0; }

.cm-nav ul { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 26px; }

.cm-nav a {
  color: var(--cm-text);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.cm-nav a:hover { color: var(--cm-pink); opacity: 1; }

.cm-search {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  border-bottom: 1px solid #cbb894;
  transition: border-color .2s ease;
}

.cm-search:focus-within { border-color: var(--cm-pink); }

.cm-search input[type="search"] {
  width: 220px;
  height: 34px;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: var(--cm-text);
  font-size: 13px;
  outline: none;
}

.cm-search input[type="search"]::placeholder { color: var(--cm-text-light); opacity: 1; }

.cm-search button {
  width: 34px;
  height: 34px;
  border: 0;
  background: none;
  color: var(--cm-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.cm-search button:hover { color: var(--cm-pink); opacity: 1; }

.cm-search button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

/* 桌面端：放大镜点击打开全屏遮罩搜索层；移动端保持隐藏（搜索在抽屉内） */
.cm-search-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: none;
  border: 0;
  color: var(--cm-text);
  cursor: pointer;
  transition: color .2s ease;
}
.cm-search-trigger:hover { color: var(--cm-pink); }
.cm-search-trigger svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

/* ==========================================================
   6. Search popup（検索ポップアップ）
   ========================================================== */
.cm-search-popup {
  display: none;
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  /* 与导航栏同款毛玻璃：展开后全屏覆盖，透出并模糊下层页面内容 */
  background: rgba(255, 253, 250, 0.72);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  backdrop-filter: saturate(160%) blur(18px);
  border-bottom: 1px solid var(--cm-border);
  box-shadow: 0 22px 40px rgba(148, 110, 138, .16);
  z-index: 950;
}

@keyframes cmSearchIn {
  from { opacity: 0; transform: translateY(-16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 搜索层展开时锁定背景滚动 */
body.cm-search-open { overflow: hidden; }

.cm-search-popup__close {
  position: absolute;
  top: 20px;
  right: 16px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 0;
  background: none;
  color: var(--cm-text-light);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.cm-search-popup__close:hover { color: var(--cm-pink); }

/* 全屏遮罩搜索层：点放大镜打开，× / Esc / 点空白处关闭 */
.cm-search-popup.is-open {
  display: block;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1400;
  overflow-y: auto;
  animation: cmSearchIn .3s ease;
}

.cm-search-popup__inner { padding-top: clamp(90px, 18vh, 220px); padding-bottom: 40px; display: flex; flex-direction: column; gap: 16px; }

/* 胶囊收紧为内容宽度并居中，输入框撑满胶囊——避免全宽胶囊里文字悬在中间、与放大镜脱节 */
.cm-search-popup .cm-search { width: min(620px, 100%); margin-inline: auto; height: 54px; border: 2px solid var(--cm-pink-soft); border-radius: 999px; padding: 0 8px 0 18px; background: #fff; }
.cm-search-popup .cm-search input[type="search"] { flex: 1 1 auto; width: auto; min-width: 0; height: 46px; font-size: 15px; }

.cm-search-popup__keywords { display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: center; font-size: 12px; }

.cm-search-popup__keywords a {
  border: 1px solid var(--cm-pink-pale);
  border-radius: 999px;
  padding: 5px 16px;
  color: var(--cm-pink);
  background: var(--cm-pink-mist);
  transition: all .2s ease;
}

.cm-search-popup__keywords a:hover {
  background: var(--cm-blue-pale);
  border-color: var(--cm-blue);
  color: var(--cm-blue-deep);
  opacity: 1;
}

/* ==========================================================
   7. Drawer（ハンバーガーメニュー）
   ========================================================== */
.cm-drawer-trigger {
  display: none;
  width: 40px; height: 40px;
  align-self: center;
  align-items: center; justify-content: center;
  border: 0; background: none; cursor: pointer;
  color: var(--cm-text);
}
.cm-drawer-trigger svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

.cm-drawer-overlay {
  position: fixed; inset: 0;
  background: rgba(35, 35, 35, .45);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
  z-index: 1100;
}

body.cm-drawer-open .cm-drawer-overlay { opacity: 1; visibility: visible; }

.cm-drawer {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: min(320px, 84vw);
  /* 与导航栏/搜索层同款毛玻璃，但更白一些：菜单文字为主，只留隐约通透感 */
  background: rgba(255, 253, 250, 0.95);
  -webkit-backdrop-filter: saturate(150%) blur(14px);
  backdrop-filter: saturate(150%) blur(14px);
  z-index: 1200;
  transform: translateX(-105%);
  transition: transform .28s ease;
  overflow-y: auto;
  padding: 20px 24px 40px;
}

body.cm-drawer-open .cm-drawer { transform: translateX(0); }

.cm-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 18px;
}

.cm-drawer__close { border: 0; background: none; font-size: 22px; line-height: 1; color: var(--cm-pink); cursor: pointer; padding: 4px; }

.cm-drawer__nav a {
  display: block;
  padding: 12px 2px;
  color: var(--cm-text);
  font-size: 14px;
  font-weight: 600;
  border-bottom: 1px dashed var(--cm-pink-pale);
}

.cm-drawer__meta { margin-top: 22px; font-size: 12px; color: var(--cm-text-light); line-height: 2; }

.cm-drawer__meta a { color: var(--cm-pink); }

/* 抽屉内：搜索 + カート／サポート 操作区（移动端从头部移入） */
.cm-drawer__search { margin-bottom: 14px; }
.cm-drawer__search .cm-search {
  height: 44px;
  background: #fff;
  border: 1px solid #e2d5f4;
  border-radius: 999px;
  padding: 0 4px 0 12px;
}
.cm-drawer__search .cm-search input[type="search"] { flex: 1; width: 100%; height: 40px; }
.cm-drawer__search .cm-search button { width: 40px; height: 40px; color: var(--cm-pink); }

.cm-drawer__actions { margin-top: 18px; }
.cm-drawer__actions a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 2px;
  border-bottom: 1px dashed var(--cm-pink-pale);
  color: var(--cm-text);
  font-size: 14px;
  font-weight: 600;
}
.cm-drawer__actions a:hover { color: var(--cm-pink); opacity: 1; }
.cm-drawer__actions svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cm-drawer__actions .cm-cart-count { position: static; margin-left: auto; }

/* ==========================================================
   8. Front page sections
   ========================================================== */
.cm-main { min-height: 40vh; }

/* --- Hero banner carousel（バナーカルーセル、草莓牛奶粉梦幻装饰星点背景） --- */
.cm-hero-carousel {
  padding: 26px 0;
  background-color: #faedf0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(35, 30) scale(1.1)' fill='%23ffffff' opacity='0.85'/%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(155, 125) scale(0.85)' fill='%23ffffff' opacity='0.75'/%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(115, 65) scale(0.6)' fill='%23e8aeb9' opacity='0.7'/%3E%3Cpath d='M8 0 L10.5 5.5 L16 6.2 L12 10.1 L13 16 L8 13.2 L3 16 L4 10.1 L0 6.2 L5.5 5.5 Z' transform='translate(140, 30) scale(0.75) rotate(12 8 8)' fill='%23ffffff' opacity='0.7'/%3E%3Cpath d='M8 0 L10.5 5.5 L16 6.2 L12 10.1 L13 16 L8 13.2 L3 16 L4 10.1 L0 6.2 L5.5 5.5 Z' transform='translate(55, 135) scale(0.65) rotate(-15 8 8)' fill='%23f3bcc6' opacity='0.75'/%3E%3Ccircle cx='85' cy='20' r='2' fill='%23ffffff' opacity='0.8'/%3E%3Ccircle cx='185' cy='80' r='1.5' fill='%23ffffff' opacity='0.75'/%3E%3Ccircle cx='18' cy='105' r='2.2' fill='%23ffffff' opacity='0.7'/%3E%3Ccircle cx='105' cy='165' r='1.8' fill='%23ffffff' opacity='0.8'/%3E%3Ccircle cx='180' cy='185' r='2' fill='%23e8aeb9' opacity='0.8'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

.cm-hero-carousel__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.cm-hero-carousel__track {
  display: flex;
  gap: 16px;
  transition: transform .6s cubic-bezier(.22, .61, .36, 1);
  will-change: transform;
}

.cm-hero-slide {
  flex: 0 0 min(320px, 28vw);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 2px solid #26211e;
}

/* 撒一层白色圆点纹理，让纯色底更细腻 */
.cm-hero-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .55) 2.2px, transparent 2.8px);
  background-size: 26px 26px;
  opacity: .55;
  pointer-events: none;
}
.cm-hero-slide--sun { background: linear-gradient(150deg, #fffdf0 0%, #fbecc0 100%); }
.cm-hero-slide--ship { background: linear-gradient(150deg, #fff0f4 0%, #f9cbd6 100%); }
.cm-hero-slide--sns { background: linear-gradient(150deg, #effaf4 0%, #c7e7d9 100%); }
.cm-hero-slide--guide { background: linear-gradient(150deg, #f4f2fd 0%, #dcd6f5 100%); }
.cm-hero-slide--pay { background: linear-gradient(150deg, #f0f7fe 0%, #cfe4f8 100%); }
.cm-hero-slide--faq { background: linear-gradient(150deg, #fff8ef 0%, #fbdcc2 100%); }
.cm-hero-slide--contact { background: linear-gradient(150deg, #fbf3fa 0%, #ecd4ea 100%); }
.cm-hero-slide--new { background: linear-gradient(150deg, #fff4f5 0%, #fbd3d9 100%); }

.cm-hero-slide__art {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

/* Customizer で画像を設定したスライド（白ドットの質感は写真に合わないので消す） */
.cm-hero-slide--img::before { display: none; }
.cm-hero-slide__img {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cm-hero-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, .55);
  box-shadow: 0 4px 12px rgba(64, 56, 48, .12);
  display: grid;
  place-items: center;
  transition: transform .2s ease, background .2s ease;
}
.cm-hero-carousel__arrow svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #6b5b4e;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cm-hero-carousel__arrow:hover { background: rgba(255, 255, 255, .85); transform: translateY(-50%) scale(1.05); }
.cm-hero-carousel__arrow--prev { left: 14px; }
.cm-hero-carousel__arrow--next { right: 14px; }

/* --- Section head（日文小标 + 英文大标，参考目标站） --- */
.cm-sec-head { margin: 0 0 48px; text-align: center; }
.cm-sec-head__jp { margin: 0 0 8px; font-size: 16px; font-weight: 500; color: var(--cm-text); letter-spacing: .04em; }
.cm-sec-head__en {
  margin: 0;
  font-family: var(--cm-font-heading);
  font-size: clamp(20px, 1.8vw, 26px);
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--cm-text);
  line-height: 1;
}

/* --- NEW ITEMS（日系草莓牛奶淡粉背景 + 梦幻装饰星点） --- */
.cm-home-new {
  margin: 0;
  padding: 72px 0 64px;
  background-color: #faedf0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(35, 30) scale(1.1)' fill='%23ffffff' opacity='0.85'/%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(155, 125) scale(0.85)' fill='%23ffffff' opacity='0.75'/%3E%3Cpath d='M8 0 Q8 8 0 8 Q8 8 8 16 Q8 8 16 8 Q8 8 8 0 Z' transform='translate(115, 65) scale(0.6)' fill='%23e8aeb9' opacity='0.7'/%3E%3Cpath d='M8 0 L10.5 5.5 L16 6.2 L12 10.1 L13 16 L8 13.2 L3 16 L4 10.1 L0 6.2 L5.5 5.5 Z' transform='translate(140, 30) scale(0.75) rotate(12 8 8)' fill='%23ffffff' opacity='0.7'/%3E%3Cpath d='M8 0 L10.5 5.5 L16 6.2 L12 10.1 L13 16 L8 13.2 L3 16 L4 10.1 L0 6.2 L5.5 5.5 Z' transform='translate(55, 135) scale(0.65) rotate(-15 8 8)' fill='%23f3bcc6' opacity='0.75'/%3E%3Ccircle cx='85' cy='20' r='2' fill='%23ffffff' opacity='0.8'/%3E%3Ccircle cx='185' cy='80' r='1.5' fill='%23ffffff' opacity='0.75'/%3E%3Ccircle cx='18' cy='105' r='2.2' fill='%23ffffff' opacity='0.7'/%3E%3Ccircle cx='105' cy='165' r='1.8' fill='%23ffffff' opacity='0.8'/%3E%3Ccircle cx='180' cy='185' r='2' fill='%23e8aeb9' opacity='0.8'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}
.cm-home-new .cm-section__more { margin-top: 36px; }

/* 首页商品滚动渐入：逐卡片观察（JS 加 cm-reveal-ready/cm-reveal-item，进入视口的卡片加 cm-reveal-in），动画用 backwards 填充，结束后不遮蔽卡片自身的 hover 位移 */
@media (prefers-reduced-motion: no-preference) {
  .cm-home-new.cm-reveal-ready .cm-reveal-item {
    opacity: 0;
  }
  .cm-home-new.cm-reveal-ready .cm-reveal-item.cm-reveal-in {
    opacity: 1;
    animation: cm-rise-in .55s ease backwards;
    animation-delay: var(--cm-reveal-delay, 0ms);
  }
}
@keyframes cm-rise-in {
  from {
    opacity: 0;
    transform: translateY(26px);
  }
}

.cm-home-categories { padding: 72px 0 8px; }
.cm-home-categories__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.cm-home-category { min-height: 136px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #604b43; border-radius: 14px; transition: transform .2s ease, box-shadow .2s ease; }.cm-home-category:hover { color: #604b43; opacity: 1; transform: translateY(-4px); box-shadow: 0 8px 18px rgba(89, 67, 56, .1); }.cm-home-category__icon { margin-bottom: 6px; font-size: 30px; line-height: 1; }.cm-home-category strong { font-size: 16px; font-weight: 700; }.cm-home-category small { margin-top: 5px; color: rgba(96,75,67,.62); font-size: 10px; letter-spacing: .14em; }.cm-home-category--pink { background: #ffe1e5; }.cm-home-category--yellow { background: #fff0cb; }.cm-home-category--lavender { background: #e9def7; }.cm-home-category--mint { background: #d8f0ea; }

/* --- Notices（お知らせ、白パネル） --- */
.cm-notices {
  margin: 72px 0 8px;
  padding: 38px 34px 30px;
  background: #fff;
  border-radius: 20px;
}

.cm-notices__title {
  font-family: var(--cm-font-heading);
  font-weight: 700;
  font-size: 26px;
  text-align: center;
  margin: 0 0 30px;
  letter-spacing: .04em;
}

.cm-notices__body {
  font-size: 16px;
  line-height: 1.9;
}

.cm-notices__body p { margin-bottom: 1.3em; }
.cm-notices__body p:last-child { margin-bottom: 0; }

/* --- Section heading with side rules --- */
.cm-section { padding: 72px 0; }

.cm-section__heading {
  display: flex;
  align-items: center;
  gap: 26px;
  margin: 0 0 36px;
  font-size: 29px;
  letter-spacing: .05em;
  text-align: center;
}

.cm-section__heading::before,
.cm-section__heading::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--cm-text);
}

.cm-section__heading.cm-section__heading--plain::before,
.cm-section__heading.cm-section__heading--plain::after { display: none; }

.cm-section__more { display: flex; justify-content: center; margin-top: 36px; }

.cm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 270px;
  height: 50px;
  padding: 0 34px;
  background: var(--cm-pink-soft);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .06em;
  border: 0;
  cursor: pointer;
}

.cm-btn:hover { color: #fff; opacity: .85; }

/* 首页「查看更多」：蓝色胶囊按钮（商品区与博客区共用，hover 加深不透明度保持 1） */
.cm-btn--more {
  min-width: 220px;
  height: 54px;
  background: #4da3ff;
  color: #fff;
  font-size: 18px;
  border-radius: 999px;
}
.cm-btn--more:hover {
  background: #2b8ef2;
  color: #fff;
  opacity: 1;
}

/* --- Blog cards --- */
.cm-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.cm-post-card__thumb {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--cm-pink-pale);
}

.cm-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }

.cm-post-card__title {
  margin: 14px 0 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cm-post-card__title a { color: var(--cm-text); }
.cm-post-card__date { text-align: left; font-size: 13px; color: var(--cm-text-light); letter-spacing: .08em; }

/* --- Product cards --- */
.cm-product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.cm-product-card {
  position: relative;
  background: #fff;
  border-radius: 10px;
  padding: 12px 12px 16px;
  display: flex;
  flex-direction: column;
}

.cm-product-card__thumb {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--cm-pink-pale);
  position: relative;
  border-radius: 6px;
  box-shadow: none;
}

.cm-product-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cm-product-card:hover .cm-product-card__thumb img { transform: scale(1.05); }

.cm-badge {
  position: absolute;
  top: 0;
  left: 0;
  background: #eb6d66;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 6px 16px 6px 14px;
  line-height: 1.5;
  border-radius: 10px 0 10px 0;
  z-index: 3;
}

.cm-product-card__title {
  margin: 14px 0 8px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cm-product-card__title a { color: var(--cm-text); }

.cm-product-card__price {
  margin-top: auto;
  padding-top: 8px;
  font-size: 16px;
  font-weight: 400;
  color: var(--cm-text);
  letter-spacing: .06em;
  text-align: right;
}

.cm-taxnote { font-size: 12px; color: var(--cm-text-light); font-weight: 400; margin-left: 4px; }

.cm-product-card__price del { color: var(--cm-text-light); font-weight: 400; margin-right: 6px; }
.cm-product-card__price ins { text-decoration: none; }

/* ==========================================================
   9. Archive / blog / single
   ========================================================== */
.cm-page-head { padding: 48px 0 12px; }

.cm-page-head__title { font-size: 30px; text-align: center; margin: 0; }

.cm-page-head__sub { text-align: center; color: var(--cm-text-light); font-size: 13px; margin-top: 6px; }

.cm-post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 22px;
  padding: 26px 0 64px;
}

.cm-entry-single { padding: 48px 0 72px; }

.cm-entry-single__title { font-size: 30px; margin-bottom: 8px; }

.cm-entry-single__meta { font-size: 12px; color: var(--cm-text-light); margin-bottom: 30px; }

.cm-entry-content { font-size: 15px; line-height: 2.1; }

.cm-entry-content h2 { font-size: 24px; margin-top: 2em; }
.cm-entry-content h3 { font-size: 20px; margin-top: 1.8em; }
.cm-entry-content img { border-radius: 2px; }
.cm-entry-content blockquote {
  margin: 2em 0; padding: 14px 22px;
  border-left: 3px solid var(--cm-pink-soft); background: #fff6f8; color: var(--cm-text-light);
}

.cm-pagination { display: flex; justify-content: center; gap: 8px; padding: 0 0 70px; }

.cm-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 8px;
  border: 1px solid var(--cm-pink-pale);
  border-radius: 999px;
  color: var(--cm-pink);
  font-size: 13px;
  transition: all .2s ease;
}

.cm-pagination .page-numbers:hover { background: var(--cm-pink-mist); opacity: 1; }

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

.cm-no-results { text-align: center; }

/* 空状态/404：内容在页头与页脚之间垂直居中 */
body.search-no-results,
body.error404 {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.search-no-results #page,
body.error404 #page {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  width: 100%;
}

body.search-no-results .cm-main,
body.error404 .cm-main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.search-no-results .cm-main > .cm-container,
body.error404 .cm-main > .cm-container {
  width: 100%;
}

/* Woo blocks (e.g. cart cross-sells) keep the same card look. */
.wc-block-grid__product-title,
.wp-block-woocommerce-handpicked-products .wc-block-components-product-name {
  color: var(--cm-text) !important;
  font-size: 14px;
  font-weight: 400;
}

.wc-block-grid__product-price,
.wp-block-woocommerce-handpicked-products .wc-block-components-product-price {
  color: var(--cm-text) !important;
  font-weight: 400;
  font-size: 14px;
}

/* Buy now button（今すぐ購入） */
.cm-buynow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  margin-top: 10px;
  background: var(--cm-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}

.cm-buynow:hover { color: #fff; opacity: .9; }

/* Cart drawer（カートドロワー） */
.cm-cartdrawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(360px, 88vw);
  background: #fff;
  z-index: 1200;
  box-shadow: -8px 0 30px rgba(35, 35, 35, .12);
  padding: 20px 24px 30px;
  overflow-y: auto;
}

.cm-cartdrawer__head {
  display: flex; align-items: center; justify-content: space-between;
  font-weight: 700; font-size: 15px;
  border-bottom: 1px dashed var(--cm-pink-pale);
  padding-bottom: 12px; margin-bottom: 16px;
}

.cm-cartdrawer__item {
  display: flex; gap: 14px; align-items: center;
  padding: 12px 0; border-bottom: 1px dashed var(--cm-pink-pale);
}

.cm-cartdrawer__item img { width: 72px; height: 72px; object-fit: cover; flex-shrink: 0; }

.cm-cartdrawer__info a {
  display: block;
  color: var(--cm-text);
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 4px;
}

.cm-cartdrawer__price { font-size: 12px; color: var(--cm-text-light); }

.cm-cartdrawer__total {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0; font-size: 14px;
}

.cm-cartdrawer__checkout { width: 100%; margin-bottom: 12px; }

.cm-cartdrawer__viewcart {
  display: block; text-align: center;
  font-size: 12px; color: var(--cm-pink);
  text-decoration: underline;
}

.cm-cartdrawer__empty { text-align: center; color: var(--cm-text-light); padding: 40px 0; }

/* Recently viewed popup（最近見たもの） */
.cm-recent {
  position: fixed;
  right: 56px;
  bottom: 120px;
  width: 300px;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(35, 35, 35, .15);
  z-index: 1150;
  padding: 14px 16px 16px;
}

.cm-recent__head {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; font-weight: 700;
  margin-bottom: 10px;
}

.cm-recent__item {
  display: flex; gap: 10px; align-items: center;
  padding: 8px 0;
  border-bottom: 1px dashed var(--cm-pink-pale);
  color: var(--cm-text);
  font-size: 12px;
  line-height: 1.5;
}

.cm-recent__item img { width: 44px; height: 44px; object-fit: cover; flex-shrink: 0; }

.cm-recent__empty { text-align: center; color: var(--cm-text-light); font-size: 12px; padding: 16px 0; }

/* ==========================================================
   9b. WooCommerce: product page（商品詳細）
   ========================================================== */
.cm-product-page { padding-bottom: 70px; }

/* 粉条纹底上浮白色大圆角卡（参考 chiikawamarket） */
.cm-product-cardwrap {
  background: #fff;
  border-radius: 16px;
  padding: 34px 38px 40px;
  margin-bottom: 46px;
}

.woocommerce-breadcrumb,
.cm-product-page .woocommerce-breadcrumb {
  font-size: 13px;
  color: var(--cm-text);
  margin: 0 0 22px;
  padding-top: 18px;
}

.woocommerce-breadcrumb a {
  color: var(--cm-pink);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cm-product {
  display: grid;
  grid-template-columns: minmax(0, 460px) 1fr;
  gap: 40px;
  align-items: start;
}

/* Neutralize Woo's float layout inside our grid. */
.cm-product div.images,
.cm-product div.summary,
.cm-product .woocommerce-product-gallery {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

/* Hide the zoom cursor hint circle; the lightbox remains available. */
.cm-product .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 12px; right: 12px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  text-indent: -9999px;
  box-shadow: 0 2px 10px rgba(35, 35, 35, .15);
}

.cm-product .woocommerce-product-gallery__trigger::before {
  content: "";
  position: absolute;
  top: 8px; left: 8px;
  width: 14px; height: 14px;
  border: 2px solid #666;
  border-radius: 50%;
}

.cm-product .woocommerce-product-gallery__trigger::after {
  content: "";
  position: absolute;
  bottom: 8px; right: 9px;
  width: 8px; height: 2px;
  background: #666;
  transform: rotate(45deg);
}

/* gallery */
.cm-product__gallery div.images { margin: 0; position: relative; }

.cm-product__gallery .woocommerce-product-gallery__wrapper { margin: 0; }

.cm-product__gallery .woocommerce-product-gallery__image img { width: 100%; display: block; }

.cm-product__gallery .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;
  margin: 0 !important; padding: 22px 0 0 !important;
}

.cm-product__gallery .flex-control-thumbs li { list-style: none; width: 100% !important; float: none !important; }

.cm-product__gallery .flex-control-thumbs img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--cm-border);
  cursor: pointer;
  background: #faf7f2;
}

.cm-product__gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--cm-blue); }

.cm-product__gallery .flex-direction-nav a {
  width: 40px; height: 40px; border-radius: 50%;
  background: #fff; color: #555;
  box-shadow: 0 2px 10px rgba(35, 35, 35, .18);
  display: flex; align-items: center; justify-content: center;
  font-size: 0; text-decoration: none;
}

.cm-product__gallery .flex-direction-nav a::before { font-size: 18px; color: #555; }

/* summary */
.cm-product__summary .product_title {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 14px;
}

.cm-product__summary .price {
  color: var(--cm-text) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  margin: 0 0 20px !important;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 8px;
}

.cm-product__summary .price .cm-taxnote { font-size: 12px; font-weight: 400; }

.cm-soldout-badge {
  display: inline-block;
  background: #111111;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  padding: 5px 10px;
  border-radius: 3px;
}

.cm-badge--soldout { background: #111111; font-weight: 500; }

.cm-product__summary .price del { font-size: 14px; color: var(--cm-text-light); font-weight: 400; }
.cm-product__summary .price ins { text-decoration: none; }

.cm-product__summary p.stock { color: #7fbf7f; font-size: 12px; margin-bottom: 16px; }

.cm-sku { font-size: 12px; color: var(--cm-text-light); margin: 0 0 16px; }

/* 参考レイアウト: タイトル直下のカテゴリーメタ + 売り切れ時の入荷通知ボタン */
.cm-product__meta { margin: 2px 0 0; font-size: 12px; color: var(--cm-text-light); }
.cm-product__meta a { color: inherit; }

.cm-restock {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 50px;
  margin: 12px 0 0;
  background: var(--cm-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}
.cm-restock:hover { color: #fff; opacity: .9; }

/* 收藏按钮 */
.cm-wish {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 47px;
  margin: 4px 0 0;
  background: #fff;
  border: 1px solid var(--cm-pink);
  border-radius: 2px;
  color: var(--cm-text);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background .2s ease;
}

.cm-wish:hover { background: var(--cm-pink-mist); }

.cm-wish svg { width: 17px; height: 17px; fill: currentColor; }

.cm-wish.is-active { background: var(--cm-pink-mist); font-weight: 700; }

/* 收藏按钮（商品卡右上角的圆形心形） */
.cm-wish--card {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #ef7d82;
  cursor: pointer;
}
.cm-wish--card svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.cm-wish--card:hover { background: #fdece9; opacity: 1; }
.cm-wish--card.is-active { background: transparent; }
.cm-wish--card.is-active svg { fill: #ee6f75; stroke: #ee6f75; }

/* SNS 分享 */
.cm-share { margin-top: 26px; padding-top: 18px; border-top: 1px dashed var(--cm-pink-pale); }

.cm-share__label { font-size: 12px; color: var(--cm-text-light); margin-bottom: 8px; }

.cm-share__icons { display: flex; gap: 10px; }

.cm-share__icons a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  background: var(--cm-pink);
  color: #fff;
  border-radius: 6px;
}

/* SNS 品牌色：X 黑 / Facebook 蓝 / LINE 绿 */
.cm-share__icons a[aria-label="X"] { background: #1a1a1a; }
.cm-share__icons a[aria-label="Facebook"] { background: #1877f2; }
.cm-share__icons a[aria-label="LINE"] { background: #06c755; }

.cm-share__icons a:hover { opacity: .8; }

.cm-share__icons svg { width: 16px; height: 16px; fill: currentColor; }

/* 悬浮分享按钮的弹出面板（X / Facebook / LINE / 复制链接） */
/* display:flex 会盖过 [hidden] 的 UA 默认 none，必须显式声明 */
.cm-share-pop[hidden] { display: none; }

.cm-share-pop {
  position: fixed;
  z-index: 801;
  display: flex;
  gap: 8px;
  padding: 9px 11px;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(35, 35, 35, .14);
}

.cm-share-pop a,
.cm-share-pop button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: opacity .2s ease, transform .2s ease;
}

.cm-share-pop a:hover,
.cm-share-pop button:hover { opacity: .8; transform: translateY(-1px); }

/* SNS 品牌色：X 黑 / Facebook 蓝 / LINE 绿 / 复制粉色 */
.cm-share-pop a[aria-label="X"] { background: #1a1a1a; }
.cm-share-pop a[aria-label="Facebook"] { background: #1877f2; }
.cm-share-pop a[aria-label="LINE"] { background: #06c755; }
.cm-share-pop button[data-share="copy"] { background: var(--cm-pink); }

.cm-share-pop svg { width: 16px; height: 16px; fill: currentColor; }

.cm-share-pop button.is-copied { background: #4cb782; }

/* 描述入右栏 */
.cm-product__summary .cm-product__desc { margin: 22px 0 18px; font-size: 13px; line-height: 1.9; }

/* variations → image thumbs（图片式规格选择，参考 chiikawamarket） */
.cm-variant-thumbs { display: flex; flex-wrap: wrap; gap: 12px 10px; padding: 4px 0 6px; }

.cm-variant-thumb {
  width: 88px;
  border: 1px solid #c7c7c7;
  background: #fff;
  padding: 0 0 4px;
  cursor: pointer;
  position: relative;
  transition: border-color .15s ease;
}

.cm-variant-thumb img {
  width: 100%;
  height: 66px;
  object-fit: cover;
  display: block;
  background: var(--cm-pink-mist);
}

.cm-variant-thumb span {
  display: block;
  font-size: 11px;
  line-height: 1.3;
  padding: 3px 4px 0;
  text-align: center;
  color: var(--cm-text);
}

.cm-variant-thumb:hover { border-color: var(--cm-text); }

.cm-variant-thumb.is-selected {
  border-color: var(--cm-text);
  box-shadow: inset 0 0 0 1px var(--cm-text);
}

.cm-variant-thumb.is-soldout img { opacity: .45; filter: grayscale(1); }

.cm-variant-thumb.is-soldout::before {
  content: attr(data-soldout);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
  white-space: nowrap;
  z-index: 1;
}

.cm-variant-thumb.is-selected span { font-weight: 700; color: var(--cm-text); }

.cm-variant-thumb.is-soldout span { color: var(--cm-text-light); }

/* variations → pills（原站 variant-radios 风格） */
.cm-product__summary table.variations { margin-bottom: 16px; }

/* 标签与缩略图上下堆叠（缩略图靠左，不再被标签列挤开） */
.cm-product__summary table.variations tr,
.cm-product__summary table.variations th,
.cm-product__summary table.variations td {
  display: block;
  width: 100%;
}

.cm-variant-pills { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0 10px; }

.cm-variant-pill {
  height: 40px;
  padding: 0 16px;
  border: 1px solid #c7c7c7;
  background: #fff;
  color: var(--cm-text);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color .15s ease;
}

.cm-variant-pill:hover { border-color: var(--cm-text); }

.cm-variant-pill.is-selected { border: 2px solid var(--cm-text); padding: 0 15px; }

.cm-product__summary table.variations th {
  /* 属性名标签（キャラクター等）由图片缩略图自解释，隐藏 */
  display: none;
}

.cm-product__summary table.variations td { padding: 0 0 14px; }

.cm-product__summary table.variations select,
.cm-product__summary .quantity .qty {
  height: 44px;
  border: 1px solid var(--cm-border);
  background: #fff;
  border-radius: 0;
  padding: 0 12px;
  font-size: 14px;
  color: var(--cm-text);
}

.cm-product__summary .reset_variations { font-size: 12px; }

/* quantity + cart button */
.cm-product__summary form.cart { margin: 24px 0 10px; }

.cm-qty { display: inline-flex; margin-bottom: 18px; }

.cm-qty .qty {
  height: 45px;
  border: 1px solid #c7c7c7;
  background: #fff;
  border-radius: 0;
  padding: 0 4px;
  font-size: 14px;
  color: var(--cm-text);
  text-align: center;
  width: 110px;
  -moz-appearance: textfield;
  appearance: textfield;
}

.cm-qty .qty::-webkit-outer-spin-button,
.cm-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cm-qty__btn {
  width: 46px; height: 46px;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-right: 0;
  color: var(--cm-text);
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
}

.cm-qty__btn--plus { border-right: 1px solid var(--cm-border); border-left: 0; }

.cm-qty__btn:hover { background: #fff6f8; }

/* legacy Woo quantity buttons (kept in sync when present) */
.cm-product__summary .quantity .minus,
.cm-product__summary .quantity .plus {
  width: 44px; height: 44px;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-radius: 0;
  color: var(--cm-text);
  font-size: 16px;
  cursor: pointer;
}

.cm-product__summary .quantity .qty {
  width: 56px; text-align: center;
  border-left: 0; border-right: 0;
}

.cm-product__summary .single_add_to_cart_button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 46px;
  background: var(--cm-pink-soft) !important;
  color: #fff !important;
  border: 0;
  border-radius: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer;
}

/* shipping note under the cart button */
.cm-shipnote {
  margin-top: 26px;
  font-size: 13px;
  border-top: 1px dashed var(--cm-pink-pale);
  padding-top: 18px;
}

.cm-shipnote__head {
  display: flex; align-items: center; gap: 10px; font-weight: 600; margin-bottom: 8px;
}

.cm-shipnote__head svg { width: 20px; height: 20px; fill: none; stroke: var(--cm-text); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

.cm-shipnote__note { margin: 0 0 6px; color: var(--cm-text); line-height: 1.9; }

/* description */
.cm-product__desc { margin-top: 48px; }

/* related products */
.cm-product-page .related,
.cm-product-page .upsells { margin-top: 20px; padding-top: 40px; border-top: 1px solid var(--cm-border); }

.cm-product-page .related > h2,
.cm-product-page .upsells > h2 {
  text-align: center;
  font-size: 17px;
  font-family: var(--cm-font-body);
  font-weight: 700;
  margin-bottom: 30px;
}

/* ==========================================================
   9c. WooCommerce: shop / category archive（コレクションページ）
   ========================================================== */
.cm-shop-page { padding-top: 16px; padding-bottom: 70px; }

.cm-breadcrumb {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--cm-text-light);
  font-size: 11px;
  letter-spacing: .04em;
  margin: 0 0 24px;
}
.cm-breadcrumb a { color: var(--cm-text-light); }

.cm-collection-hero {
  margin: 0 -40px 30px;
  padding: 38px 40px 34px;
  text-align: center;
  background: linear-gradient(120deg, #fff5f2 0%, #fff9ed 50%, #f7f1fb 100%);
}
.cm-collection-hero__eyebrow {
  margin: 0 0 10px;
  color: var(--cm-pink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
}
.cm-collection-hero .cm-shop-page__title { margin: 0; font-size: clamp(23px, 3vw, 34px); letter-spacing: .1em; }
.cm-collection-hero__copy { margin: 8px 0 0; color: var(--cm-text-light); font-size: 12px; }

body.cm-stripes .cm-main {
  background: #fdfafb;
}

body.cm-plain .cm-main { background: #fff; }

/* ちいかわマーケット風の星柄ウォールペーパー（商品アーカイブ・ホーム・商品詳細用） */
body.cm-plain.cm-shop .cm-main,
body.cm-stripes.single-product .cm-main,
body.cm-home .cm-main {
  background-color: #fdf7db;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300' viewBox='0 0 300 300'%3E%3Cg fill='%23f9e08e'%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(34 40) scale(1.5) rotate(-14)'/%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(196 26) scale(1.05) rotate(16)'/%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(120 158) scale(0.85) rotate(28)'/%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(234 196) scale(1.7) rotate(-7)'/%3E%3C/g%3E%3Cg fill='%23fcefb6'%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(58 236) scale(1.25) rotate(12)'/%3E%3Cpath d='M12 1l2.76 7.2 7.7.4-6 4.85 2.01 7.45L12 16.7l-6.47 4.2 2.01-7.45-6-4.85 7.7-.4z' transform='translate(206 122) scale(0.7) rotate(-24)'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 300px 300px;
}

/* タイトル + タグピル */
.cm-shophero { padding: 40px 0 4px; text-align: center; }
.cm-shophero__title {
  margin: 0;
  font-size: clamp(26px, 3.2vw, 36px);
  font-weight: 800;
  letter-spacing: .18em;
}
.cm-shoptags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 22px 0 0; }
.cm-shoptag {
  display: inline-block;
  padding: 7px 24px;
  background: #fff;
  border: 1px solid #ecdfc9;
  border-radius: 999px;
  color: var(--cm-text);
  font-size: 13px;
  font-weight: 700;
}
.cm-shoptag:hover { opacity: 1; color: var(--cm-pink); border-color: var(--cm-pink-soft); }
.cm-shoptag.is-current { background: var(--cm-pink); border-color: var(--cm-pink); color: #fff; }

/* 並び替えバー */
.cm-shopbar { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin: 30px 0 20px; }
.cm-shopbar__label { font-size: 13px; font-weight: 700; color: var(--cm-text); }
.cm-shopbar .woocommerce-ordering { margin: 0; }
.cm-shopbar .woocommerce-ordering select {
  min-width: 200px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid #e7dac2;
  border-radius: 8px;
  background: #fff;
  color: var(--cm-text);
  font-size: 13px;
  font-weight: 500;
}
.cm-shopbar .cm-resultcount {
  display: block;
  margin: 0;
  width: auto;
  text-align: left;
  color: var(--cm-text);
  font-size: 14px;
}

/* 左フィルターカード + 商品グリッドの2カラム */
.cm-shoplayout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}

.cm-shopfilter {
  position: sticky;
  top: 20px;
  background: #fdf0ec;
  border: 1px solid #f7ddd4;
  border-radius: 16px;
  padding: 20px 20px 8px;
}
.cm-shopfilter__head { margin: 0 0 6px; font-weight: 700; font-size: 14px; }
.cm-fsec { border-bottom: 1px solid #f3dcd3; }
.cm-fsec:last-child { border-bottom: 0; }
.cm-fsec summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 2px;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  font-size: 13.5px;
  color: var(--cm-text);
}
.cm-fsec summary::-webkit-details-marker { display: none; }
.cm-fsec__chev {
  width: 8px;
  height: 8px;
  border-right: 2px solid #c9a89a;
  border-bottom: 2px solid #c9a89a;
  transform: rotate(45deg);
  transition: transform .2s ease;
  margin-right: 4px;
}
.cm-fsec[open] .cm-fsec__chev { transform: rotate(225deg); }
.cm-fsec__list { padding: 2px 2px 14px; display: grid; gap: 12px; }
.cm-fcheck { display: flex; align-items: center; gap: 9px; color: var(--cm-text); font-size: 13px; }
.cm-fcheck:hover { opacity: 1; color: var(--cm-pink); }
.cm-fcheck.is-current { font-weight: 700; }
.cm-fcheck__box {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  border: 1.5px solid #d9bfb2;
  border-radius: 4px;
  background: #fff;
  position: relative;
}
.cm-fcheck.is-current .cm-fcheck__box { background: var(--cm-pink); border-color: var(--cm-pink); }
.cm-fcheck.is-current .cm-fcheck__box::after {
  content: "";
  position: absolute;
  left: 3.5px;
  top: 0.5px;
  width: 4px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
.cm-fcheck__count { color: var(--cm-text-light); font-size: 12.5px; }

.cm-shopgrid { min-width: 0; }

.cm-shop-page .woocommerce-notices-wrapper:empty { display: none; }

.cm-shop-page .woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-result-count { color: var(--cm-text-light); font-size: 12px; }

.woocommerce-ordering select {
  height: 38px;
  border: 1px solid var(--cm-border);
  background: #fff;
  font-size: 13px;
  padding: 0 10px;
}

.woocommerce-before-shop-loop,
.woocommerce .woocommerce-notices-wrapper .woocommerce-message {
  border-top-color: var(--cm-pink);
}

/* 信息类提示（如空购物车）：去掉 WooCommerce 图标字体的蓝色小脸，换成主题粉色 ♡ */
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-info {
  border-top-color: var(--cm-pink);
  background: #fff;
}

.woocommerce .woocommerce-info::before,
.woocommerce-page .woocommerce-info::before {
  content: "♡";
  font-family: inherit;
  color: var(--cm-pink);
}

/* ==========================================================
   9d. WooCommerce: cart（カート）
   ========================================================== */
.woocommerce table.shop_table {
  border: 1px solid var(--cm-border);
  border-collapse: collapse;
  width: 100%;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-top: 1px solid var(--cm-border);
  padding: 12px 14px;
  font-size: 13px;
}

.woocommerce table.shop_table thead th { background: #fff6f8; }

.woocommerce a.remove { color: var(--cm-pink) !important; }

.woocommerce-cart .cart-collaterals .cart_totals { width: 46%; }

.woocommerce-cart .checkout-button,
.woocommerce a.checkout-button {
  width: 100%;
  text-align: center;
}

/* ==========================================================
   9e. FAQ / contact pages
   ========================================================== */
.cm-faq-page, .cm-contact-page { max-width: 900px; padding-top: 46px; padding-bottom: 80px; }

.cm-faq__title {
  font-size: 24px;
  text-align: left;
  margin: 0 0 26px;
}

.cm-faq__content, .cm-contact__lead { font-size: 14px; line-height: 2.1; }

.cm-faq__content p { margin-bottom: 1.1em; }

.cm-faq__content strong, .cm-faq__content b {
  display: inline-block;
  margin-top: 14px;
}

.cm-faq__content ul { padding-left: 1.4em; margin-bottom: 1.2em; }

.cm-faq__content ul li { list-style: disc; }

/* FAQ 末尾的联系入口（头部客服图标已移除） */
.cm-faq__contact { margin-top: 38px; text-align: center; }

.cm-contact-form { max-width: 560px; }

.cm-contact-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }

.cm-contact-form input, .cm-contact-form textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--cm-border);
  font-size: 14px;
  background: #fff;
  outline: none;
}

.cm-contact-form input:focus, .cm-contact-form textarea:focus { border-color: var(--cm-pink-soft); }

.cm-btn--form { min-width: 180px; height: 48px; }

.cm-contact__sent { text-align: center; padding: 30px 0; }

/* ==========================================================
   10b. Comments / default forms
   ========================================================== */
.comment-list { padding: 0; }
.comment-list .comment-body { border-bottom: 1px dashed var(--cm-pink-pale); padding: 18px 0; }
.comment-list .avatar { border-radius: 50%; margin-right: 10px; }
.comment-form p { margin-bottom: 1.2em; }
.comment-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: var(--cm-text); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.search-form .search-field {
  width: 100%;
  max-width: 560px;
  padding: 10px 14px;
  border: 1px solid var(--cm-border);
  background: #fff;
  font-size: 14px;
  outline: none;
}
.comment-form input:focus,
.comment-form textarea:focus,
.search-form .search-field:focus { border-color: var(--cm-pink-soft); }
.comment-form .submit,
.search-form .search-submit {
  background: var(--cm-pink-soft);
  color: #fff;
  border: 0;
  padding: 12px 34px;
  font-size: 14px;
  cursor: pointer;
}
.comment-notes, .logged-in-as { font-size: 12px; color: var(--cm-text-light); }
.comment-reply-title { font-size: 20px; margin-top: 2.4em; }
.cm-page-links { margin: 2em 0; }

/* ==========================================================
   11. Footer
   ========================================================== */
.cm-footer { margin-top: 0; }

.cm-footer__sns { display: flex; gap: 10px; }

/* 原生品牌色徽章：X 黑 / Instagram 渐变 */
.cm-footer__sns a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  border-radius: 50%;
  color: #fff;
  transition: opacity .2s ease, transform .2s ease;
}

.cm-footer__sns a:hover { opacity: .85; transform: translateY(-1px); }

.cm-footer__sns a[aria-label="X (Twitter)"] { background: #1a1a1a; }
.cm-footer__sns a[aria-label="Instagram"] {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}

.cm-footer__sns svg { width: 16px; height: 16px; fill: currentColor; }

.cm-footer__bottom {
  background: #faeaed;
  color: #7a4a42;
  padding: 20px 0;
  font-size: 12px;
}

.cm-footer__bottom-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}

.cm-footer__right { display: inline-flex; align-items: center; gap: 22px; }

/* 页脚最底部的语言切换（桌面右上角下拉已移入此处，全端共用） */
.cm-footer__lang { display: flex; align-items: center; }
.cm-footer__lang .cm-lang { gap: 12px; }

.cm-footer__pay { display: inline-flex; align-items: center; gap: 10px; }

.cm-footer__pay svg { height: 22px; width: auto; display: block; border-radius: 5px; }

/* ==========================================================
   11. Floating side buttons
   ========================================================== */
.cm-float-nav {
  position: fixed;
  right: 0;
  bottom: 120px;
  z-index: 800;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-right: 0;
  border-radius: 6px 0 0 6px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(35, 35, 35, .08);
}

.cm-float-nav__btn {
  width: 46px; height: 46px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; border: 0; border-bottom: 1px solid var(--cm-border);
  color: var(--cm-text-light); cursor: pointer;
  transition: color .2s ease, background .2s ease;
}

.cm-float-nav__btn:last-child { border-bottom: 0; }
.cm-float-nav__btn:hover { color: var(--cm-pink); background: var(--cm-pink-mist); }

.cm-float-nav__btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ==========================================================
   12. Widgets / misc
   ========================================================== */
.cm-widget { margin-bottom: 40px; }
.cm-widget-title { font-size: 18px; margin-bottom: 16px; }
.cm-widget ul li { border-bottom: 1px dashed var(--cm-pink-pale); }
.cm-widget ul li a { display: block; padding: 9px 2px; color: var(--cm-text); font-size: 13px; }

/* ==========================================================
   13. WooCommerce compatibility
   ========================================================== */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0 0 30px; }

/* Woo's float clearfix becomes a phantom grid item — remove it. */
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  text-align: left;
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px 12px 16px;
  box-shadow: none;
  transition: transform .25s ease;
}

.woocommerce ul.products li.product:hover {
  box-shadow: none;
  transform: translateY(-2px);
}

.woocommerce ul.products li.product a img {
  margin: 0 0 12px;
  border-radius: 10px;
  background: #faf4f5;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

/* 收藏按钮与配图右上角保持对称内边距 */
.woocommerce ul.products li.product .cm-wish--card {
  top: 18px;
  right: 18px;
}

/* match the source cards: image, two-line title, plain price — no stars, no inline cart button */
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .price del { display: none; }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 15px !important;
  font-weight: 700;
  line-height: 1.5;
  padding: 0 2px;
  margin: 0 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--cm-text);
}

.woocommerce ul.products li.product .price {
  color: var(--cm-text) !important;
  font-size: 12px;
  font-weight: 400;
  margin: auto 0 0 !important;
  padding: 4px 2px 0;
  text-align: right;
  display: block;
}

.woocommerce ul.products li.product > .woocommerce-LoopProduct-link {
  position: static;
}

.woocommerce ul.products li.product .onsale,
.woocommerce ul.products li.product .cm-badge,
.woocommerce span.onsale {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 0;
  min-height: 0;
  padding: 6px 16px 6px 14px;
  margin: 0;
  background: #eb6d66;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.5;
  border-radius: 10px 0 10px 0;
  z-index: 3;
}

/* 售罄标识专用：高级黑背景、纯白文字、圆角与卡片外圆角严格统一 */
.cm-badge--soldout,
.cm-badge.cm-badge--soldout,
.woocommerce ul.products li.product .cm-badge--soldout {
  background: #111111 !important;
  color: #ffffff !important;
  border-radius: 10px 0 10px 0;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit {
  background: var(--cm-pink-soft) !important;
  color: #fff !important;
  border-radius: 0 !important;
  font-weight: 500 !important;
  padding: 12px 30px !important;
  line-height: 1.9 !important;
}

.woocommerce .star-rating span::before { color: var(--cm-pink); }

.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 8px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { border: 1px solid var(--cm-pink-pale) !important; color: var(--cm-pink) !important; border-radius: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--cm-pink) !important; color: #fff !important; }

.woocommerce div.product .product_title { font-size: 28px; }
.woocommerce div.product p.price { color: var(--cm-text); font-weight: 400; font-size: 20px; }

/* ==========================================================
   13b. WooCommerce: login / register（マイアカウント）
   ========================================================== */
.cm-login {
  max-width: 560px;
  margin: 0 auto;
}

.cm-login__panel {
  padding: 0 36px;
}

/* 未登录的账户页（登录/注册）不显示页面标题，上下留白收窄 */
.woocommerce-account:not(.logged-in) .cm-entry-single__title { display: none; }
.woocommerce-account:not(.logged-in) .cm-entry-single {
  padding-top: 12px;
  padding-bottom: 40px;
}

.cm-login__title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  font-size: 24px;
  color: var(--cm-text);
}

.cm-login__title::before {
  content: "✿";
  color: var(--cm-pink);
  font-size: 20px;
}

.cm-login .woocommerce-form-row { margin: 0 0 18px; }

.cm-login label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--cm-text);
}

.cm-login .input-text {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  background: #fff;
  border: 1px solid var(--cm-border);
  border-radius: 0;
  font-size: 15px;
  color: var(--cm-text);
  transition: border-color .2s ease;
}

.cm-login .input-text:focus {
  outline: none;
  border-color: var(--cm-pink);
}

.cm-login .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 400;
  margin-bottom: 0;
}

.cm-login .woocommerce-form-login__rememberme input { accent-color: var(--cm-pink); }

.cm-login .form-row .woocommerce-button,
.cm-login .form-row .woocommerce-Button {
  display: block;
  width: 100%;
  height: 50px;
  margin-top: 14px;
  font-size: 16px;
  letter-spacing: .08em;
  cursor: pointer;
}

.cm-login .woocommerce-LostPassword {
  margin: 18px 0 0;
  text-align: center;
  font-size: 13px;
}

.cm-login__note {
  margin: 0 0 18px;
  padding: 12px 14px;
  background: var(--cm-pink-mist);
  border: 1px solid var(--cm-pink-pale);
  font-size: 13px;
  color: var(--cm-text);
}

/* 登录页底部的注册入口 / 注册页底部的返回登录 */
.cm-login__entry {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin: 18px 0 0;
  padding-top: 16px;
  border-top: 1px dashed var(--cm-pink-pale);
  font-size: 13px;
  color: var(--cm-text-light);
}

.cm-login__entry .cm-login__switch-link { color: var(--cm-pink); font-weight: 700; }

.cm-login__entry-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 46px;
  background: #fff;
  border: 1px solid var(--cm-pink-soft);
  color: var(--cm-pink);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
}

.cm-login__entry-btn:hover {
  background: var(--cm-pink-soft);
  color: #fff;
  opacity: 1;
}

@media (max-width: 900px) {
  .cm-login__panel { padding: 0 22px; }
}

/* ==========================================================
   14. Responsive
   ========================================================== */
@media (max-width: 1100px) {
  .cm-container { padding-left: 52px; padding-right: 52px; }
  .cm-search input[type="search"] { width: 180px; }
  .cm-shoplayout { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
  /* 空间受限挤不下时，平滑降为宽敞的 3 列，卡片间距微调至 12px */
  .cm-product-grid,
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .cm-nav ul { gap: 4px 18px; }
  .cm-product { grid-template-columns: 1fr 1fr; gap: 28px; }
}

@media (max-width: 900px) {
  .cm-nav { display: none; }
  .cm-language-menu { display: none; }
  .cm-container { padding-left: 44px; padding-right: 44px; }
  /* 移动端：搜索/购物车/支援移入侧边抽屉，头部右侧仅保留（可选的）账户图标 */
  .cm-header-band__icons [data-role="cart-trigger"],
  .cm-header-band__icons .cm-icon-link--support,
  .cm-search-trigger { display: none; }
  .cm-drawer-trigger { display: inline-flex; }
  .cm-header-band__icons { margin-left: auto; }
  .cm-blog-grid, .cm-post-grid { grid-template-columns: repeat(3, 1fr); gap: 18px 12px; }
  .cm-product-grid, .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); gap: 11px; }
  .cm-shoplayout { grid-template-columns: 1fr; }
  .cm-shopfilter { position: static; }
  .cm-shopbar { flex-wrap: wrap; justify-content: flex-start; }
  .cm-shopbar .woocommerce-ordering select { min-width: 0; }
  .cm-section__heading { font-size: 24px; }
  .cm-notices__title { font-size: 22px; }
  .cm-product { grid-template-columns: 1fr; gap: 26px; }
  .cm-cattiles { grid-template-columns: repeat(2, 1fr); }
  .cm-variant-pill { height: 36px; padding: 0 12px; font-size: 13px; }
  .cm-variant-pill.is-selected { padding: 0 11px; }
  .woocommerce-cart .cart-collaterals .cart_totals { width: 100%; }
}

@media (max-width: 560px) {
  body { font-size: 15px; }
  .cm-announce { height: 32px; font-size: 12px; }
  .cm-container { padding-left: 24px; padding-right: 24px; }
  .cm-header-band__icons { gap: 8px; }
  .cm-icon-link { width: 33px; height: 33px; }
  .cm-icon-link svg { width: 18px; height: 18px; }
  .cm-logo { font-size: 18px; }
  .cm-blog-grid, .cm-post-grid { grid-template-columns: 1fr; }
  .cm-product-grid, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .cm-product-card__price { font-size: 14px; }
  .cm-section__heading { font-size: 20px; gap: 14px; }
  .cm-notices__title { font-size: 19px; }
  .cm-btn { min-width: 200px; height: 46px; }
  .cm-footer__bottom-inner { flex-direction: column; gap: 10px; }

  /* 商品详情页移动端：面板收窄内边距，规格缩略图 3 列铺满，画廊缩略图 4 列 */
  .cm-product-cardwrap { padding: 24px 20px 28px; }
  .cm-product__gallery .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0 !important; padding-top: 16px !important; }
  .cm-variant-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 10px; }
  .cm-variant-thumb { width: auto; }
  .cm-variant-thumb img { height: auto; aspect-ratio: 1 / 1; }
}

/* 超窄屏：图标已移入抽屉，居中的文字Logo略缩小留出呼吸感 */
@media (max-width: 360px) {
  .cm-header-band .cm-logo { font-size: 16px; }
}

/* Product detail finishing touches: quiet editorial hierarchy and reassurance cards. */
.cm-product__eyebrow {
  margin: 0 0 12px;
  color: var(--cm-pink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cm-product-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 24px 0 20px;
}

.cm-product-fact {
  display: flex;
  gap: 8px;
  min-height: 72px;
  padding: 11px 10px;
  border: 1px solid var(--cm-pink-pale);
  background: #fffafb;
}

.cm-product-fact__icon {
  color: var(--cm-pink);
  font-size: 19px;
  line-height: 1;
}

.cm-product-fact strong,
.cm-product-fact span:not(.cm-product-fact__icon) {
  display: block;
}

.cm-product-fact strong { font-size: 11px; line-height: 1.4; }
.cm-product-fact span:not(.cm-product-fact__icon) { margin-top: 4px; color: var(--cm-text-light); font-size: 10px; line-height: 1.5; }

.cm-product-accordion { border-top: 1px solid var(--cm-border); }
.cm-product-accordion details { border-bottom: 1px solid var(--cm-border); }
.cm-product-accordion summary { display: flex; justify-content: space-between; padding: 13px 2px; cursor: pointer; font-size: 12px; font-weight: 600; list-style: none; }
.cm-product-accordion summary::-webkit-details-marker { display: none; }
.cm-product-accordion summary span { color: var(--cm-pink); font-size: 17px; font-weight: 400; line-height: 1; }
.cm-product-accordion details[open] summary span { transform: rotate(45deg); }
.cm-product-accordion p { margin: 0; padding: 0 2px 14px; color: var(--cm-text-light); font-size: 12px; line-height: 1.8; }

@media (max-width: 900px) {
  .cm-product-facts { grid-template-columns: 1fr; }
  .cm-product-fact { min-height: auto; }
}

/* Language switcher（言語切替） */
.cm-lang { display: flex; gap: 14px; flex-wrap: wrap; }

.cm-lang__item {
  font-size: 12px;
  color: var(--cm-text-light);
  padding: 2px 0;
}

.cm-lang__item.is-active {
  color: var(--cm-pink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cm-footer__bottom .cm-lang__item { color: #7a4a42; opacity: .85; }
.cm-footer__bottom .cm-lang__item.is-active { color: #7a4a42; opacity: 1; }

/* Simplified-Chinese locale: swap JP-first stack for SC-first.
   M PLUS Rounded 1c stays first so Latin text keeps the rounded look;
   CJK glyphs fall through to Noto Sans SC. */
body.cm-lang-zh {
  --cm-font-body: "M PLUS Rounded 1c", "Noto Sans SC", "Noto Sans JP", "PingFang SC", "Microsoft YaHei", sans-serif;
  --cm-font-heading: "M PLUS Rounded 1c", "Noto Sans SC", "Noto Sans JP", "PingFang SC", "Microsoft YaHei", sans-serif;
  --cm-font-serif: "Noto Serif SC", "Noto Serif JP", "Songti SC", serif;
}

@media (max-width: 700px) {
  .cm-hero-slide { flex-basis: 42vw; }
  .cm-hero-carousel__track { gap: 16px; }
  .cm-hero-carousel__arrow { width: 36px; height: 36px; }
  .cm-hero-carousel__arrow--prev { left: 8px; }
  .cm-hero-carousel__arrow--next { right: 8px; }
  .cm-home-categories { padding-top: 40px; }
  .cm-sec-head { margin-bottom: 32px; }
  .cm-sec-head__jp { font-size: 14px; }
  .cm-sec-head__en { font-size: 20px; }
  .cm-home-categories__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .cm-home-category { min-height: 116px; }
  .cm-home-category strong { font-size: 14px; }
  .cm-home-category__icon { font-size: 26px; }
  .cm-notices { padding: 28px 20px 22px; }
  .cm-home-new { padding: 56px 0 46px; }
  .cm-section { padding: 48px 0; }
  .cm-notices { margin: 48px 0 8px; }
  .cm-product-card__title { font-size: 15px; }
  .cm-post-card__title { font-size: 15px; }
  .cm-btn--more { height: 50px; font-size: 16px; }
  /* 移动端悬浮按钮离屏边一点，四周圆角完整 */
  .cm-float-nav {
    right: 10px;
    bottom: 84px;
    border: 1px solid var(--cm-border);
    border-radius: 12px;
  }
}

