@charset "UTF-8";
/* =====================================================================
   純閃堂ネットショップ テーマ「A案・改｜プロの清潔感（☆と動く数字）」
   - EC-CUBE 4.3 の style.css のあとに読み込み、見た目を上書きします
   - 土台はライトブルー。シリーズの色（オレンジ・赤・紫など）は商品ラベルの中だけで使います
   - 差し色はミント（16.）。見出しの小さな英語と下線・☆・実績の数字・結論の数字だけに使い、ボタンとリンクは青のままにします
   - ちょっとした直しは、管理画面 → コンテンツ管理 → CSS管理（customize.css）に書くと、こちらより優先されます
   ===================================================================== */

/* ---------- 0. 色・文字・角丸（ここを変えると全体が変わります） ---------- */
:root {
  --jsd-navy: #0e2a45;     /* 濃い紺：見出し・帯 */
  --jsd-ink: #12324f;      /* 本文の文字 */
  --jsd-sub: #3a5a74;      /* 説明文 */
  --jsd-muted: #3f6b8a;    /* 小さい補足 */
  --jsd-blue: #1677B8;     /* ボタン・アクセント（ロゴのライトブルー系） */
  --jsd-blue-d: #0f5f93;   /* リンク */
  --jsd-blue-dd: #0b4a73;  /* リンク（マウスを乗せたとき） */
  --jsd-sky: #4FB3E8;      /* キラキラ・下線 */
  --jsd-sky-p: #9fd4f2;
  --jsd-tint: #f2fafe;     /* うすい水色の背景 */
  --jsd-line: #e3f1fa;     /* 線 */
  --jsd-line2: #d6ecf8;
  --jsd-line3: #cfeaf8;
  /* 差し色（ミント）：文字／線・☆／紺の上の文字／うすい背景（使うところは 16.） */
  --jsd-accent: #0B7F73;
  --jsd-accent-l: #22B5A2;
  --jsd-accent-dk: #5FE0CC;
  --jsd-accent-bg: #F0FAF8;
  --jsd-radius: 22px;
  --jsd-shadow: 0 18px 40px rgba(14, 42, 69, .12);
  --jsd-font: 'Noto Sans JP', system-ui, -apple-system, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', Meiryo, sans-serif;
  --jsd-head: 'Zen Kaku Gothic New', 'Noto Sans JP', 'Hiragino Sans', Meiryo, sans-serif;
  --jsd-num: 'Barlow', 'Noto Sans JP', sans-serif;
  /* シリーズ（商品ラベル）の色：文字色／うすい背景 */
  --c-orange: #C2530E; --c-orange-bg: #fff1e8;
  --c-red: #C62828; --c-red-bg: #fdeaea;
  --c-purple: #6A3FB0; --c-purple-bg: #f1ebfb;
  --c-brown: #8a5a2b; --c-brown-bg: #f6eee6;
  --c-pink: #c2185b; --c-pink-bg: #fde8f1;
  --c-green: #2e7d32; --c-green-bg: #e8f5e9;
  --c-charcoal: #263238; --c-charcoal-bg: #eceff1;
  --c-stone: #5d6b75; --c-stone-bg: #eef2f4;
  --c-sky: #0f5f93; --c-sky-bg: #e6f5fd;
  /* EC-CUBE（Bootstrap）の基本の文字 */
  --bs-body-font-family: var(--jsd-font);
  --bs-body-color: var(--jsd-ink);
  --bs-link-color: var(--jsd-blue-d);
  --bs-link-hover-color: var(--jsd-blue-dd);
}

/* ---------- 1. 全体 ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--jsd-font);
  color: var(--jsd-ink);
  background: #fff;
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--jsd-blue-d); }
a:hover { color: var(--jsd-blue-dd); }
:focus-visible { outline: 3px solid var(--jsd-sky); outline-offset: 2px; }
img { max-width: 100%; height: auto; }
.ec-role, .ec-layoutRole, .ec-off1Grid, .ec-cartRole, .ec-orderRole, .ec-mypageRole, .ec-contactRole, .ec-registerRole, .ec-searchnavRole, .ec-productRole { color: var(--jsd-ink); }
.jsd-skip { position: absolute; left: -9999px; top: 0; z-index: 10000; background: #fff; color: var(--jsd-navy); padding: 8px 14px; border-radius: 0 0 10px 0; font-weight: 700; }
.jsd-skip:focus { left: 0; }
.jsd-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.jsd-container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 32px; box-sizing: border-box; }
@media (max-width: 767px) { .jsd-container { padding-inline: 16px; } }
.jsd-center { text-align: center; }

/* トップは幅いっぱいに（各ブロックの中で 1200px にそろえます） */
#page_homepage .ec-layoutRole__contents { max-width: none; }
#page_homepage .ec-layoutRole__mainBottom { margin: 0; }

/* 見出しの部品 */
.jsd-eyebrow { margin: 0; font-size: 12px; letter-spacing: .3em; color: var(--jsd-blue); font-weight: 700; }
.jsd-eyebrow--light { color: var(--jsd-sky-p); }
.jsd-h2 { margin: 8px 0 0; font-family: var(--jsd-head); font-weight: 700; font-size: 28px; line-height: 1.45; color: var(--jsd-navy); letter-spacing: .02em; }
.jsd-h2--light { color: #fff; }
.jsd-underline { display: block; width: 44px; height: 3px; border-radius: 2px; background: var(--jsd-sky); margin-top: 12px; }
.jsd-underline--center { margin-inline: auto; }
@media (max-width: 767px) { .jsd-h2 { font-size: 22px; } }

/* ボタン */
.jsd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 30px; border-radius: 999px; font-weight: 700; font-size: 15px; text-decoration: none; border: 2px solid transparent; transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; cursor: pointer; box-sizing: border-box; }
.jsd-btn--primary { background: var(--jsd-blue); color: #fff; box-shadow: 0 10px 24px rgba(22, 119, 184, .22); }
.jsd-btn--primary:hover { background: var(--jsd-blue-d); color: #fff; text-decoration: none; transform: translateY(-1px); }
.jsd-btn--outline { background: #fff; border-color: var(--jsd-blue); color: var(--jsd-blue); }
.jsd-btn--outline:hover { background: var(--jsd-tint); color: var(--jsd-blue-d); text-decoration: none; }
.jsd-btn--ghost { min-height: 44px; padding: 0 20px; border: 1px solid #4f7395; color: #fff; background: transparent; font-size: 14px; }
.jsd-btn--ghost:hover { background: rgba(255, 255, 255, .08); color: #fff; text-decoration: none; }
.jsd-textlink { font-size: 14px; font-weight: 700; color: var(--jsd-blue-d); text-decoration: none; }
.jsd-textlink:hover { text-decoration: underline; }

/* シリーズのラベル（チップ） */
.jsd-chip { display: inline-block; align-self: flex-start; font-size: 12px; font-weight: 700; line-height: 1.6; border-radius: 999px; padding: 3px 12px; color: var(--c-sky); background: var(--c-sky-bg); }
.jsd-chip--orange { color: var(--c-orange); background: var(--c-orange-bg); }
.jsd-chip--red { color: var(--c-red); background: var(--c-red-bg); }
.jsd-chip--purple { color: var(--c-purple); background: var(--c-purple-bg); }
.jsd-chip--brown { color: var(--c-brown); background: var(--c-brown-bg); }
.jsd-chip--pink { color: var(--c-pink); background: var(--c-pink-bg); }
.jsd-chip--green { color: var(--c-green); background: var(--c-green-bg); }
.jsd-chip--charcoal { color: var(--c-charcoal); background: var(--c-charcoal-bg); }
.jsd-chip--stone { color: var(--c-stone); background: var(--c-stone-bg); }

/* 動き（ふわっと・泡・キラキラ）。「動きを減らす」設定の方には動かしません */
@keyframes jsdFuwari { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes jsdUkabu { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
@keyframes jsdKirari { 0%, 100% { opacity: .25; transform: scale(.55) rotate(0deg); } 50% { opacity: 1; transform: scale(1) rotate(20deg); } }
.jsd-fuwari { animation: jsdFuwari .9s ease-out both; animation-delay: var(--jsd-delay, 0s); }
.jsd-reveal { transition: opacity .8s ease-out, transform .8s ease-out; transition-delay: var(--jsd-delay, 0s); }
.jsd-reveal.is-pre { opacity: 0; transform: translateY(18px); }
.jsd-sparkle { animation: jsdKirari 2.6s ease-in-out infinite; transform-origin: center; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .jsd-fuwari, .jsd-sparkle, .jsd-bubble, .jsd-chara { animation: none !important; }
  .jsd-reveal, .jsd-reveal.is-pre { opacity: 1 !important; transform: none !important; transition: none !important; }
  .jsd-pcard, .jsd-tile, .jsd-btn, .jsd-contact__card { transition: none !important; }
}

/* ---------- 2. ヘッダー（ロゴ・検索・会員メニュー・カート・カテゴリ） ---------- */
.ec-layoutRole__header {
  display: grid;
  grid-template-columns: max(32px, calc((100% - 1200px) / 2 + 32px)) auto minmax(0, 1fr) auto auto max(32px, calc((100% - 1200px) / 2 + 32px));
  grid-template-areas:
    ".      logo   search nav    cart   .     "
    "cat    cat    cat    cat    cat    cat   ";
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--jsd-line);
  position: relative;
  z-index: 30;
}
.ec-layoutRole__header .ec-headerNaviRole.jsd-head,
.ec-layoutRole__header .ec-headerNaviRole .jsd-head__left,
.ec-layoutRole__header .ec-headerNaviRole .jsd-head__right { display: contents !important; }
.jsd-logo.ec-headerRole { grid-area: logo; max-width: none; width: auto; margin: 0; padding: 14px 0; display: block; color: inherit; }
.jsd-logo__link { display: inline-block; line-height: 0; }
.jsd-logo img { width: 210px; height: auto; }
.ec-layoutRole__header .ec-headerNaviRole .jsd-head__search { grid-area: search; display: block; width: auto; margin: 0 28px; min-width: 0; }
.ec-layoutRole__header .ec-headerNaviRole .jsd-head__nav { grid-area: nav; display: block; }
.ec-layoutRole__header .jsd-head__menu.ec-headerRole__navSP { grid-area: menu; display: none; position: static; width: auto; text-align: left; }
.jsd-head__cart.ec-headerRole__cart { grid-area: cart; margin-left: 10px; }

/* 検索 */
.jsd-search.ec-headerSearch { padding: 0; background: transparent; margin: 0; }
.jsd-search__form { display: flex; align-items: center; gap: 6px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); border-radius: 999px; padding: 4px 4px 4px 18px; max-width: 560px; transition: border-color .2s, box-shadow .2s; }
.jsd-search__form:focus-within { border-color: var(--jsd-blue); box-shadow: 0 0 0 3px rgba(79, 179, 232, .25); background: #fff; }
.jsd-search__input, .jsd-search .search-name { flex: 1; min-width: 0; width: 100%; border: 0 !important; background: transparent !important; font: inherit; font-size: 14px; color: var(--jsd-ink); min-height: 38px; padding: 0 !important; outline: none; box-shadow: none !important; }
.jsd-search__input::placeholder { color: #7a93a6; }
.jsd-search__btn.ec-headerSearch__keywordBtn { position: static; transform: none; flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--jsd-blue); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin: 0; }
.jsd-search__btn:hover { background: var(--jsd-blue-d); }

/* 会員メニュー */
.jsd-mnav.ec-headerNav { display: flex; align-items: center; gap: 4px 16px; flex-wrap: wrap; justify-content: flex-end; margin: 0; padding: 0; text-align: left; }
.jsd-mnav__item { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; color: var(--jsd-ink); font-size: 13px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.jsd-mnav__item:hover { color: var(--jsd-blue); text-decoration: none; }
.jsd-mnav__item svg { color: var(--jsd-blue); }

/* カート */
.jsd-cart.ec-cartNaviWrap { position: relative; }
.jsd-cart__btn.ec-cartNavi { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px 0 14px; border-radius: 999px; border: 1px solid var(--jsd-line2); background: #fff; color: var(--jsd-ink); font: 500 13px/1 var(--jsd-font); cursor: pointer; white-space: nowrap; }
.jsd-cart__btn.ec-cartNavi:hover { border-color: var(--jsd-blue); color: var(--jsd-blue); }
.jsd-cart__btn svg { color: var(--jsd-blue); }
.jsd-cart .ec-cartNavi__badge.jsd-cart__badge { position: static; display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--jsd-blue); color: #fff; font: 700 12px/1 var(--jsd-num); }
.jsd-cart .ec-cartNaviIsset, .jsd-cart .ec-cartNaviNull { width: 340px; max-width: calc(100vw - 24px); right: 0; top: calc(100% + 10px); background: #fff; border: 1px solid var(--jsd-line2); border-radius: 18px; box-shadow: var(--jsd-shadow); padding: 16px; text-align: left; z-index: 40; }
.jsd-cart .ec-cartNaviIsset::before, .jsd-cart .ec-cartNaviNull::before { display: none; }
.jsd-cart .ec-cartNaviIsset.is-active, .jsd-cart .ec-cartNaviNull.is-active { display: block; }
.jsd-cart .ec-cartNaviIsset__cart { display: flex; gap: 12px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--jsd-line); }
.jsd-cart .ec-cartNaviIsset__cartImage { flex: none; width: 64px; float: none; margin: 0; }
.jsd-cart .ec-cartNaviIsset__cartImage img { border-radius: 10px; border: 1px solid var(--jsd-line); }
.jsd-cart .ec-cartNaviIsset__cartContent { float: none; width: auto; font-size: 13px; text-align: left; }
.jsd-cart .ec-cartNaviIsset__cartContentTitle { font-weight: 700; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 4px; }
.jsd-cart .ec-cartNaviIsset__cartContentPrice { font-weight: 700; color: var(--jsd-navy); }
.jsd-cart .ec-cartNaviIsset__cartContentTax { display: inline; font-size: 11px; color: var(--jsd-muted); font-weight: 400; }
.jsd-cart__total { text-align: right; font-size: 14px; margin: 4px 0 12px; }
.jsd-cart__total strong { font: 700 20px var(--jsd-num); color: var(--jsd-navy); margin-left: 6px; }
.jsd-cart .ec-cartNaviIsset__action { display: grid; gap: 8px; }
.jsd-cart .ec-cartNaviIsset__action .ec-blockBtn--action, .jsd-cart .ec-cartNaviIsset__action .ec-blockBtn { width: 100%; height: auto; min-height: 44px; line-height: 44px; }
.jsd-cart .ec-cartNaviNull__message { border: 0; padding: 8px 4px; text-align: center; color: var(--jsd-sub); background: none; font-size: 14px; font-weight: 500; }
.jsd-cart .ec-cartNaviNull__message p { margin: 0; }

/* カテゴリのメニュー */
.jsd-catnav.ec-categoryNaviRole { grid-area: cat; display: block; max-width: none; width: auto; padding: 0; margin: 0; }
.jsd-catnav__list { list-style: none; margin: 0 auto; max-width: 1200px; box-sizing: border-box; padding: 0 32px 14px; display: flex; flex-wrap: wrap; gap: 6px 20px; }
.jsd-catnav__item { position: relative; }
.jsd-catnav__item > a { display: inline-block; padding: 6px 0; font-size: 14px; font-weight: 500; color: var(--jsd-ink); text-decoration: none; border-bottom: 2px solid transparent; }
.jsd-catnav__item > a:hover, .jsd-catnav__item > a[aria-current="page"] { color: var(--jsd-blue); border-bottom-color: var(--jsd-sky); text-decoration: none; }
.jsd-catnav__sub { display: none; position: absolute; left: -12px; top: 100%; min-width: 220px; list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--jsd-line2); border-radius: 14px; box-shadow: var(--jsd-shadow); z-index: 45; }
.jsd-catnav__item:hover .jsd-catnav__sub, .jsd-catnav__item:focus-within .jsd-catnav__sub { display: block; }
.jsd-catnav__sub a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--jsd-ink); font-size: 14px; text-decoration: none; }
.jsd-catnav__sub a:hover { background: var(--jsd-tint); color: var(--jsd-blue); }

/* スマホのヘッダー */
.jsd-menuBtn.ec-headerNavSP { position: static; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: var(--jsd-tint); color: var(--jsd-navy); cursor: pointer; z-index: auto; font-size: 9px; }
.jsd-menuBtn__bars { display: inline-flex; flex-direction: column; gap: 4px; }
.jsd-menuBtn__bars span { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--jsd-navy); }
.jsd-menuBtn__label { font-weight: 700; letter-spacing: .02em; line-height: 1; }
@media (max-width: 767px) {
  .ec-layoutRole__header {
    grid-template-columns: 12px 48px minmax(0, 1fr) auto 12px;
    grid-template-areas:
      ".      menu   logo   cart   .     "
      ".      search search search .     "
      "cat    cat    cat    cat    cat   ";
  }
  .ec-layoutRole__header .jsd-head__menu.ec-headerRole__navSP { display: block; }
  .ec-layoutRole__header .ec-headerNaviRole .jsd-head__nav { display: none; }
  .jsd-logo.ec-headerRole { justify-self: center; padding: 10px 0; }
  .jsd-logo img { width: 168px; }
  .ec-layoutRole__header .ec-headerNaviRole .jsd-head__search { margin: 0 0 10px; }
  .jsd-search__form { max-width: none; }
  .jsd-cart__label { display: none; }
  .jsd-cart__btn.ec-cartNavi { padding: 0 10px; gap: 4px; }
  .jsd-catnav__list { flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding: 0 12px 12px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .jsd-catnav__list::-webkit-scrollbar { display: none; }
  .jsd-catnav__item > a { white-space: nowrap; padding: 6px 14px; border: 1px solid var(--jsd-line2); border-radius: 999px; background: var(--jsd-tint); font-size: 13px; }
  .jsd-catnav__item > a:hover, .jsd-catnav__item > a[aria-current="page"] { border-color: var(--jsd-blue); background: #fff; }
  .jsd-catnav__sub { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .jsd-logo img { width: 180px; }
  .ec-layoutRole__header .ec-headerNaviRole .jsd-head__search { margin: 0 16px; }
  .jsd-mnav__item span { display: none; }
  .jsd-mnav.ec-headerNav { gap: 4px 10px; }
}

/* スマホのメニュー（左から出る） */
.ec-drawerRole { background: #fff; width: 290px; transform: translateX(-310px); box-shadow: 10px 0 30px rgba(14, 42, 69, .18); }
.ec-drawerRoleClose { left: 300px; background: #fff; color: var(--jsd-navy); box-shadow: var(--jsd-shadow); }
.ec-drawerRole .ec-headerSearch { padding: 16px 14px; background: var(--jsd-tint); color: var(--jsd-ink); }
.ec-drawerRole .jsd-search__form { background: #fff; }
.ec-headerCategoryArea .ec-headerCategoryArea__heading { background: #fff; border-color: var(--jsd-line2); color: var(--jsd-navy); font-family: var(--jsd-head); }
.ec-headerCategoryArea .ec-itemNav__nav li a { background: #fff; color: var(--jsd-ink); border-color: var(--jsd-line); font-weight: 500; }
.ec-headerCategoryArea .ec-itemNav__nav li ul li a { background: var(--jsd-tint); color: var(--jsd-ink); }
.ec-drawerRole .ec-headerLinkArea, .ec-headerLinkArea { background: var(--jsd-navy); }
.ec-headerLinkArea .ec-headerLink__list { border-top: 0; }
.ec-headerLinkArea .ec-headerLink__item { border-bottom-color: rgba(255, 255, 255, .12); color: #fff; font-weight: 500; }
.ec-headerLinkArea .ec-headerLink__icon { color: var(--jsd-sky-p); }

/* ---------- 3. トップ：一番上（清潔感の案内・今月の一押し） ---------- */
.jsd-hero { position: relative; overflow: hidden; background: var(--jsd-tint); }
.jsd-hero__inner { position: relative; z-index: 1; padding-top: 88px; padding-bottom: 96px; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.jsd-hero__copy { flex: 1 1 480px; min-width: 0; }
.jsd-hero__copy .jsd-eyebrow { font-size: 13px; letter-spacing: .24em; margin-bottom: 16px; }
.jsd-hero__title { margin: 0; font-family: var(--jsd-head); font-weight: 900; font-size: 44px; line-height: 1.4; color: var(--jsd-navy); letter-spacing: .02em; }
.jsd-hero__lead { margin: 22px 0 0; font-size: 16px; line-height: 1.95; color: var(--jsd-sub); }
.jsd-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.jsd-bubble { position: absolute; border-radius: 50%; border: 2px solid var(--jsd-line3); background: rgba(255, 255, 255, .55); animation: jsdUkabu 7s ease-in-out infinite; pointer-events: none; }
.jsd-bubble svg { position: absolute; }
.jsd-bubble--1 { left: 5%; top: 16%; width: 96px; height: 96px; }
.jsd-bubble--1 svg { right: -6px; top: -6px; }
.jsd-bubble--2 { left: 41%; top: 74%; width: 48px; height: 48px; animation-delay: 1.2s; }
.jsd-bubble--2 svg { left: -4px; top: -4px; animation-delay: .8s; }
.jsd-bubble--3 { right: 4%; top: 62%; width: 120px; height: 120px; border-color: #d9eff9; background: rgba(255, 255, 255, .5); animation-delay: 2.1s; }
.jsd-bubble--3 svg { right: 6px; top: -10px; animation-delay: 1.4s; }
.jsd-sparkle--a { position: absolute; left: 30%; top: 14%; animation-delay: .4s; }
.jsd-sparkle--b { position: absolute; left: 52%; top: 22%; animation-delay: 2s; }

/* 背景の動画（うすく流す）。濃さは .jsd-hero__bg の opacity（.18＝18%）で変わります */
.jsd-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; opacity: .18; }
.jsd-hero__poster, .jsd-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.jsd-hero__video { opacity: 0; transition: opacity 1.2s ease; }
.jsd-hero__video.is-on { opacity: 1; }
/* PCは文字のある左側をさらにうすく（文字を読みやすく） */
@media (min-width: 768px) {
  .jsd-hero__bg { -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .5) 25%, #000 60%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .5) 25%, #000 60%); }
}
/* 背景の動き（動画・泡）を止めるボタン */
.jsd-hero__pause { position: absolute; right: 32px; bottom: 24px; z-index: 2; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: 50%; border: 1px solid var(--jsd-line2); background: rgba(255, 255, 255, .85); color: var(--jsd-navy); cursor: pointer; transition: background-color .2s, color .2s; }
.jsd-hero__pause[hidden] { display: none; }
.jsd-hero__pause:hover { background: #fff; color: var(--jsd-blue); }
.jsd-hero__pause:focus-visible { outline: 3px solid var(--jsd-sky); outline-offset: 2px; }
.jsd-hero__playIcon, .jsd-hero.is-paused .jsd-hero__pauseIcon { display: none; }
.jsd-hero.is-paused .jsd-hero__playIcon { display: block; }
.jsd-hero.is-paused .jsd-bubble, .jsd-hero.is-paused .jsd-sparkle { animation-play-state: paused; }

.jsd-pickup { flex: 1 1 380px; max-width: 440px; display: flex; flex-direction: column; border-radius: 28px; background: #fff; border: 1px solid var(--jsd-line2); box-shadow: 0 24px 60px rgba(22, 119, 184, .12); overflow: hidden; text-decoration: none; color: var(--jsd-ink); transition: transform .25s ease, box-shadow .25s ease; }
.jsd-pickup:hover { transform: translateY(-4px); box-shadow: 0 28px 64px rgba(14, 42, 69, .16); text-decoration: none; color: var(--jsd-ink); }
.jsd-pickup__img { position: relative; aspect-ratio: 1 / 1; background: #fff; border-bottom: 1px solid var(--jsd-line); display: flex; align-items: center; justify-content: center; }
.jsd-pickup__img img { width: 100%; height: 100%; object-fit: contain; }
.jsd-pickup__badge { position: absolute; left: 16px; top: 16px; z-index: 1; font-size: 12px; font-weight: 700; letter-spacing: .12em; color: #fff; background: var(--jsd-navy); border-radius: 999px; padding: 5px 14px; }
.jsd-pickup__body { padding: 20px 24px 24px; display: flex; flex-direction: column; gap: 8px; }
.jsd-pickup__name { font-weight: 700; font-size: 17px; line-height: 1.5; }
.jsd-pickup__sub { font-size: 13px; line-height: 1.7; color: var(--jsd-sub); }
.jsd-pickup__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; }
.jsd-pickup__price { font: 700 22px var(--jsd-num); color: var(--jsd-navy); }
.jsd-pickup__price small, .jsd-pcard__price small { font: 500 12px var(--jsd-font); color: var(--jsd-muted); }
.jsd-pickup__more { font-size: 14px; font-weight: 700; color: var(--jsd-blue); }

@media (max-width: 767px) {
  .jsd-hero__inner { padding-top: 44px; padding-bottom: 56px; gap: 32px; }
  .jsd-hero__title { font-size: 28px; }
  .jsd-hero__lead { font-size: 15px; }
  .jsd-hero__lead br { display: none; }
  .jsd-hero__actions .jsd-btn { flex: 1 1 180px; }
  .jsd-pickup { max-width: none; }
  .jsd-bubble--1 { width: 64px; height: 64px; left: 70%; top: 6%; }
  .jsd-bubble--3 { width: 80px; height: 80px; }
  .jsd-bubble--2, .jsd-sparkle--a, .jsd-sparkle--b { display: none; }
  .jsd-hero__pause { right: 16px; bottom: 14px; width: 32px; height: 32px; }
}

/* イメージキャラクター（カビまるくん：お悩みから選ぶ／清結くん：よくある質問／稀麗ちゃん：お問い合わせ）
   ・大きさは width の数字で変わります。見出しの横のキャラは、足もとが見出しの下線の高さにそろいます */
@keyframes jsdPuni { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.05, .94); } }
@keyframes jsdYureru { 0%, 100% { transform: rotate(-1.5deg); } 50% { transform: rotate(1.5deg); } }
.jsd-withChara { position: relative; width: fit-content; margin-inline: auto; }
.jsd-chara { display: block; height: auto; max-width: none; pointer-events: none; user-select: none; transform-origin: 50% 100%; }
.jsd-withChara .jsd-chara { position: absolute; bottom: -16px; }
.jsd-chara--kabimaru { right: 100%; width: 64px; margin-right: 16px; animation: jsdPuni 3.2s ease-in-out infinite; }
.jsd-chara--seiyu { left: 100%; width: 74px; margin-left: 18px; animation: jsdYureru 4.2s ease-in-out infinite; }
.jsd-chara--kirei { width: 96px; animation: jsdYureru 4.8s ease-in-out infinite; animation-delay: .6s; }
@media (min-width: 1024px) { .jsd-chara--kirei { width: 120px; } }
@media (max-width: 767px) {
  .jsd-withChara .jsd-chara { bottom: -15px; }
  .jsd-chara--kabimaru { width: 48px; margin-right: 10px; }
  .jsd-chara--seiyu { width: 54px; margin-left: 10px; }
  .jsd-chara--kirei { width: 72px; }
}

/* 3つの特長 */
.jsd-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; padding-top: 56px; padding-bottom: 16px; }
.jsd-feature { background: #fff; border: 1px solid var(--jsd-line); border-radius: 24px; padding: 26px; display: flex; gap: 16px; align-items: flex-start; }
.jsd-feature__icon { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--jsd-blue); display: flex; align-items: center; justify-content: center; }
.jsd-feature__title { margin: 0; font-family: var(--jsd-head); font-weight: 700; font-size: 18px; color: var(--jsd-navy); }
.jsd-feature__text { margin: 8px 0 0; font-size: 14px; line-height: 1.8; color: var(--jsd-sub); }
@media (max-width: 767px) { .jsd-features { padding-top: 32px; gap: 12px; } .jsd-feature { padding: 18px; } }

/* ---------- 4. 商品カード（トップ・商品一覧で共通） ---------- */
.jsd-grid--cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1023px) { .jsd-grid--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .jsd-grid--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.jsd-grid--cards > * { min-width: 0; }
.jsd-pcard { height: 100%; display: flex; flex-direction: column; border-radius: var(--jsd-radius); background: #fff; border: 1px solid var(--jsd-line); overflow: hidden; text-decoration: none; color: var(--jsd-ink); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; box-sizing: border-box; }
.jsd-pcard:hover { transform: translateY(-4px); box-shadow: var(--jsd-shadow); border-color: var(--jsd-line2); text-decoration: none; color: var(--jsd-ink); }
.jsd-pcard__img { aspect-ratio: 1 / 1; background: #fff; border-bottom: 1px solid var(--jsd-line); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.jsd-pcard__img img { width: 100%; height: 100%; object-fit: contain; }
.jsd-pcard__body { flex: 1; padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.jsd-pcard__name { font-weight: 700; font-size: 15px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.jsd-pcard__sub { font-size: 12.5px; line-height: 1.7; color: var(--jsd-sub); border-top: 1px dashed var(--jsd-line2); padding-top: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.jsd-pcard__foot { margin-top: auto; padding-top: 6px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.jsd-pcard__price { font: 700 19px var(--jsd-num); color: var(--jsd-navy); }
.jsd-pcard__info { font-size: 13px; font-weight: 700; color: var(--jsd-muted); background: var(--jsd-tint); border-radius: 999px; padding: 2px 10px; }
.jsd-pcard__more { font-size: 13px; font-weight: 700; color: var(--jsd-blue); }
/* 商品一覧のカード：カートに入れる＋詳しく見る */
.jsd-pcard--buy:hover { transform: none; }
.jsd-pcard__link { flex: 1; display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.jsd-pcard__link:hover, .jsd-pcard__link:focus { color: inherit; text-decoration: none; }
.jsd-pcard__link:hover .jsd-pcard__name { color: var(--jsd-blue); }
.jsd-pcard__buy { padding: 0 18px 18px; display: grid; gap: 8px; }
.jsd-pcard__buyRow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.jsd-pcard__form { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.jsd-pcard__select { width: 100%; margin: 0; }
.jsd-pcard__select select { width: 100%; height: 40px; border: 1px solid var(--jsd-line2); border-radius: 12px; padding: 0 10px; background: #fff; }
.jsd-pcard__qty { margin: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--jsd-muted); }
.jsd-pcard__qty input.quantity { width: 56px; height: 42px; margin: 0; padding: 0 4px; border: 1px solid var(--jsd-line2); border-radius: 12px; background: #fff; box-sizing: border-box; text-align: center; font: 700 16px var(--jsd-num); color: var(--jsd-ink); }
.jsd-pcard__qty input.quantity:focus { outline: none; border-color: var(--jsd-sky); box-shadow: 0 0 0 3px rgba(79, 179, 232, .25); }
.jsd-pcard__cartBtn { flex: 1 1 128px; min-height: 44px; margin: 0; padding: 8px 14px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 999px; background: var(--jsd-blue); color: #fff; font: 700 14px/1.3 var(--jsd-font); cursor: pointer; transition: background .2s ease, transform .2s ease; }
.jsd-pcard__cartBtn:hover, .jsd-pcard__cartBtn:focus-visible { background: var(--jsd-blue-d); }
.jsd-pcard__cartBtn:active { transform: scale(.98); }
.jsd-pcard__cartBtn:disabled, .jsd-pcard__cartBtn[disabled] { background: #dbe7f0; color: #4d6b82; cursor: default; transform: none; }
.jsd-pcard__detailBtn { min-height: 40px; display: flex; align-items: center; justify-content: center; border: 2px solid var(--jsd-line3); border-radius: 999px; background: #fff; color: var(--jsd-blue); font-size: 13px; font-weight: 700; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.jsd-pcard__detailBtn:hover, .jsd-pcard__detailBtn:focus { border-color: var(--jsd-blue); background: var(--jsd-tint); color: var(--jsd-blue-d); text-decoration: none; }
@media (max-width: 767px) {
  .jsd-pcard { border-radius: 16px; }
  .jsd-pcard__body { padding: 12px 12px 14px; gap: 6px; }
  .jsd-pcard__name { font-size: 13.5px; }
  .jsd-pcard__sub { display: none; }
  .jsd-pcard__more { display: none; }
  .jsd-pcard__buy { padding: 0 12px 14px; gap: 6px; }
  .jsd-pcard__buyRow { gap: 6px; }
  .jsd-pcard__cartBtn { flex-basis: 100%; min-height: 42px; padding: 8px 10px; font-size: 13px; }
  .jsd-pcard__cartBtn svg { width: 16px; height: 16px; }
  .jsd-pcard__qty input.quantity { width: 52px; height: 38px; }
  .jsd-pcard__detailBtn { min-height: 38px; font-size: 12.5px; }
  .jsd-pcard__price { font-size: 17px; }
  .jsd-chip { font-size: 11px; padding: 2px 9px; }
}

/* シリーズ紹介 */
.jsd-series { padding-top: 64px; padding-bottom: 8px; }
.jsd-series__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 28px; }
@media (max-width: 767px) { .jsd-series { padding-top: 44px; } .jsd-series__head { margin-bottom: 18px; } }

/* ---------- 5. 実績の数字 ---------- */
.jsd-proofband { position: relative; overflow: hidden; margin-top: 72px; background: var(--jsd-navy); color: #fff; }
.jsd-proofband .jsd-container { position: relative; padding-top: 72px; padding-bottom: 72px; }
.jsd-proofband__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 36px; }
.jsd-sparkle--c { position: absolute; left: 6%; top: 22%; }
.jsd-sparkle--d { position: absolute; right: 9%; top: 16%; animation-delay: 1.1s; }
.jsd-proof { list-style: none; margin: 0; padding: 0; }
.jsd-proof--big { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.jsd-proof--big .jsd-proof__item { border: 1px solid #2c4c6c; border-radius: 20px; padding: 24px 24px 20px; display: flex; flex-direction: column; }
.jsd-proof__label { font-size: 13px; color: var(--jsd-sky-p); }
.jsd-proof__value { display: flex; align-items: baseline; gap: 6px; margin-top: 4px; }
.jsd-proof__num { font-family: var(--jsd-num); font-weight: 700; font-size: 56px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.jsd-proof__unit { font-weight: 700; }
.jsd-proof__bar { display: block; margin-top: 12px; height: 3px; background: #1d3d5d; border-radius: 2px; overflow: hidden; }
.jsd-proof__bar span { display: block; height: 3px; width: 100%; background: var(--jsd-sky); }
.jsd-proof__note { margin-top: 12px; font-size: 12px; line-height: 1.7; color: var(--jsd-sky-p); }
@media (max-width: 767px) {
  .jsd-proofband { margin-top: 48px; }
  .jsd-proofband .jsd-container { padding-top: 48px; padding-bottom: 48px; }
  .jsd-proof--big { grid-template-columns: 1fr; gap: 12px; }
  .jsd-proof__num { font-size: 44px; }
}

/* ---------- 6. お悩みから選ぶ ---------- */
.jsd-cats { padding-top: 72px; padding-bottom: 16px; }
.jsd-tiles { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.jsd-tile { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 64px; height: 100%; padding: 10px 22px; border-radius: 18px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); text-decoration: none; color: var(--jsd-navy); font-weight: 700; box-sizing: border-box; transition: transform .25s ease, box-shadow .25s ease, background-color .2s; }
.jsd-tile:hover { transform: translateY(-3px); box-shadow: var(--jsd-shadow); background: #fff; color: var(--jsd-navy); text-decoration: none; }
.jsd-tile__arrow { color: var(--jsd-blue); }
.jsd-tile__text { display: flex; flex-direction: column; line-height: 1.45; }
.jsd-tile__text small { font-size: 12px; font-weight: 500; color: var(--jsd-muted); margin-top: 2px; }
.jsd-tile--ext { background: #fff; }
.jsd-guide { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: 28px 32px; border-radius: 24px; border: 1px solid var(--jsd-line2); background: linear-gradient(135deg, #fff 0%, var(--jsd-tint) 100%); }
.jsd-guide__text { flex: 1 1 520px; }
.jsd-guide__title { margin: 6px 0 8px; font-family: var(--jsd-head); font-size: 20px; color: var(--jsd-navy); }
.jsd-guide__text p { margin: 6px 0 0; font-size: 14px; line-height: 1.85; color: var(--jsd-sub); }
@media (max-width: 767px) { .jsd-cats { padding-top: 48px; } .jsd-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .jsd-tile { padding: 10px 14px; min-height: 56px; font-size: 14px; border-radius: 14px; } .jsd-guide { padding: 22px 18px; } .jsd-guide .jsd-btn { width: 100%; } }

/* ---------- 7. トップの下（新着情報・送料・お届け・よくある質問・お問い合わせ） ---------- */
.jsd-bottom { padding-top: 48px; padding-bottom: 24px; }
.jsd-newsrow { display: flex; flex-wrap: wrap; gap: 24px; }
.jsd-news { flex: 999 1 560px; min-width: 0; background: #fff; border: 1px solid var(--jsd-line); border-radius: 24px; padding: 28px 30px; }
.jsd-news__title { margin: 0 0 12px; font-family: var(--jsd-head); font-size: 20px; color: var(--jsd-navy); }
.jsd-news__item { border-top: 1px solid var(--jsd-line); }
.jsd-news__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding: 14px 0; font-size: 14px; color: var(--jsd-ink); }
.jsd-news__head[role="button"] { cursor: pointer; }
.jsd-news__head[role="button"]:hover .jsd-news__text { color: var(--jsd-blue); }
.jsd-news__date { color: var(--jsd-muted); font-family: var(--jsd-num); font-weight: 600; font-size: 14px; }
.jsd-news__text { flex: 1 1 260px; }
.jsd-news__toggle { color: var(--jsd-blue); font-weight: 700; transition: transform .2s; }
.jsd-news__item.is_active .jsd-news__toggle { transform: rotate(45deg); }
.jsd-news__desc { display: none; padding: 0 0 16px; font-size: 14px; line-height: 1.85; color: var(--jsd-sub); }
.jsd-news__more { margin-top: 8px; background: none; border: 1px solid var(--jsd-line2); border-radius: 999px; padding: 8px 18px; color: var(--jsd-blue); font-weight: 700; cursor: pointer; }
.jsd-news__empty { color: var(--jsd-sub); font-size: 14px; }
.jsd-shipbox { flex: 1 1 300px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); border-radius: 24px; padding: 28px 30px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.jsd-shipbox__label { font-size: 13px; color: var(--jsd-muted); }
.jsd-shipbox__main { font-family: var(--jsd-head); font-weight: 900; font-size: 22px; color: var(--jsd-navy); line-height: 1.4; }
.jsd-shipbox__note { font-size: 12px; color: var(--jsd-sub); margin-top: 4px; }
.jsd-guide2 { margin-top: 24px; border: 1px solid var(--jsd-line); border-radius: 24px; padding: 28px 30px; background: #fff; }
.jsd-guide2__title { margin: 0 0 14px; font-family: var(--jsd-head); font-size: 20px; color: var(--jsd-navy); }
.jsd-guide2__list { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px 24px; }
.jsd-guide2__list > div { padding: 14px 0 0; border-top: 2px solid var(--jsd-line); }
.jsd-guide2__list dt { font-weight: 700; color: var(--jsd-blue); font-size: 13px; letter-spacing: .08em; margin-bottom: 4px; }
.jsd-guide2__list dd { margin: 0; font-size: 14px; line-height: 1.8; color: var(--jsd-sub); }
.jsd-guide2__links { margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
@media (max-width: 767px) { .jsd-bottom { padding-top: 32px; } .jsd-news, .jsd-shipbox, .jsd-guide2 { padding: 20px 18px; border-radius: 18px; } .jsd-shipbox__main { font-size: 20px; } }

/* よくある質問 */
.jsd-faq { margin-top: 64px; }
.jsd-faq--mini { margin: 0 0 56px; }
.jsd-faq__lead { margin: 14px 0 0; font-size: 14px; color: var(--jsd-sub); }
.jsd-faq__tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 24px 0 8px; }
.jsd-faq__tab { min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--jsd-line2); background: #fff; color: var(--jsd-ink); font: 700 14px var(--jsd-font); cursor: pointer; }
.jsd-faq__tab:hover { border-color: var(--jsd-blue); color: var(--jsd-blue); }
.jsd-faq__tab[aria-selected="true"] { background: var(--jsd-blue); border-color: var(--jsd-blue); color: #fff; }
.jsd-faq__panel { max-width: 920px; margin: 0 auto; }
.jsd-faq__group { margin: 28px 0 10px; font-family: var(--jsd-head); font-size: 18px; color: var(--jsd-navy); }
.jsd-faq.is-tabbed .jsd-faq__group { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.jsd-faq.is-tabbed .jsd-faq__panel { margin-top: 16px; }
.jsd-qa { border: 1px solid var(--jsd-line); border-radius: 16px; background: #fff; margin-bottom: 10px; overflow: hidden; }
.jsd-qa[open] { border-color: var(--jsd-line2); box-shadow: 0 8px 22px rgba(14, 42, 69, .06); }
.jsd-qa__q { display: flex; align-items: flex-start; gap: 12px; padding: 16px 48px 16px 18px; cursor: pointer; list-style: none; font-weight: 700; font-size: 15px; line-height: 1.6; color: var(--jsd-navy); position: relative; }
.jsd-qa__q::-webkit-details-marker { display: none; }
.jsd-qa__q::after { content: "＋"; position: absolute; right: 18px; top: 16px; color: var(--jsd-blue); transition: transform .2s; }
.jsd-qa[open] .jsd-qa__q::after { transform: rotate(45deg); }
.jsd-qa__q:hover { background: var(--jsd-tint); }
.jsd-qa__mark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--jsd-blue); color: #fff; font: 700 14px/1 var(--jsd-font); }
.jsd-qa__mark--a { background: var(--jsd-tint); color: var(--jsd-blue); border: 1px solid var(--jsd-line2); }
.jsd-qa__a { display: flex; gap: 12px; padding: 4px 18px 18px; font-size: 14px; line-height: 1.9; color: var(--jsd-sub); }
.jsd-qa__a > div { min-width: 0; overflow-wrap: anywhere; }

/* お問い合わせの案内 */
.jsd-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-top: 56px; }
.jsd-contact__card { display: flex; align-items: center; gap: 18px; padding: 28px 30px; border-radius: 24px; background: #fff; border: 2px solid var(--jsd-blue); color: var(--jsd-blue); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.jsd-contact__card:hover { transform: translateY(-3px); box-shadow: var(--jsd-shadow); text-decoration: none; color: var(--jsd-blue); }
.jsd-contact__card--primary { background: var(--jsd-blue); color: #fff; }
.jsd-contact__card--primary:hover { color: #fff; }
.jsd-contact__card > span { display: flex; flex-direction: column; gap: 4px; }
.jsd-contact__title { font-weight: 700; font-size: 18px; }
.jsd-contact__sub { font-size: 13px; }
.jsd-contact__card:not(.jsd-contact__card--primary) .jsd-contact__sub { color: var(--jsd-ink); }
/* 稀麗ちゃん＋ふきだし（スマホ・タブレットはカードの上の右、PCはカードの右はし） */
.jsd-contact__chara { grid-column: 1 / -1; order: -1; justify-self: end; position: relative; margin: 0 6px -8px 0; }
.jsd-contact__say { position: absolute; right: calc(100% + 4px); top: 22%; white-space: nowrap; padding: 8px 16px; border-radius: 999px; background: #fff; border: 2px solid var(--jsd-line3); color: var(--jsd-navy); font-size: 14px; font-weight: 700; line-height: 1.4; box-shadow: 0 8px 20px rgba(14, 42, 69, .08); }
.jsd-contact__say::after { content: ""; position: absolute; right: -7px; top: 50%; width: 11px; height: 11px; margin-top: -6px; background: #fff; border-top: 2px solid var(--jsd-line3); border-right: 2px solid var(--jsd-line3); transform: rotate(45deg); }
@media (min-width: 1024px) {
  .jsd-contact { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: end; margin-top: 88px; }
  .jsd-contact__chara { grid-column: auto; order: 0; justify-self: center; margin: 0 4px 0 0; }
  .jsd-contact__say { top: 6%; }
}
@media (max-width: 767px) { .jsd-faq { margin-top: 44px; } .jsd-contact { grid-template-columns: 1fr; margin-top: 36px; } .jsd-contact__card { padding: 20px; } .jsd-contact__say { font-size: 13px; padding: 7px 14px; } .jsd-qa__q { font-size: 14px; padding: 14px 44px 14px 14px; } .jsd-qa__a { padding: 4px 14px 16px; } }

/* ---------- 8. フッター ---------- */
.jsd-footer.ec-footerRole { margin-top: 96px; padding-top: 0; border-top: 0; background: var(--jsd-navy); color: #fff; }
.jsd-footer a { color: #fff; }
.jsd-footer__proof { border-bottom: 1px solid #1d3d5d; background: #0b2339; }
.jsd-footer__proofInner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 32px; padding-top: 22px; padding-bottom: 22px; }
.jsd-footer__proofTitle { margin: 0; font-family: var(--jsd-head); font-weight: 700; font-size: 15px; color: var(--jsd-sky-p); }
.jsd-proof--compact { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.jsd-proof--compact .jsd-proof__item { display: flex; align-items: baseline; gap: 8px; }
.jsd-proof--compact .jsd-proof__label { font-size: 12px; }
.jsd-proof--compact .jsd-proof__value { margin: 0; }
.jsd-proof--compact .jsd-proof__num { font-size: 30px; }
.jsd-proof--compact .jsd-proof__unit { font-size: 13px; }
.jsd-footer__proofLink { font-size: 13px; font-weight: 700; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.jsd-footer__main { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 32px 48px; padding-top: 48px; padding-bottom: 40px; }
.jsd-footer__shop { font-family: var(--jsd-head); font-weight: 900; font-size: 18px; letter-spacing: .04em; color: #fff; text-decoration: none; }
.jsd-footer__company { margin: 14px 0 0; font-size: 13px; line-height: 1.9; color: #cfe3f2; }
.jsd-footer__patent { margin: 12px 0 0; font-size: 12px; color: var(--jsd-sky-p); }
.jsd-footer__head { margin: 0 0 12px; font-size: 12px; letter-spacing: .2em; color: var(--jsd-sky-p); font-weight: 700; }
.jsd-footer__col ul { list-style: none; margin: 0; padding: 0; }
.jsd-footer__col li { margin-bottom: 10px; font-size: 14px; line-height: 1.6; }
.jsd-footer__col li span { display: block; font-size: 12px; color: #a9c3d8; }
.jsd-footer__col a { text-decoration: none; }
.jsd-footer__col a:hover { text-decoration: underline; color: #fff; }
.jsd-footer__col a[target="_blank"]::after { content: " ↗"; font-size: 11px; color: var(--jsd-sky-p); }
.jsd-footer__sitemap { columns: 2; column-gap: 24px; }
.jsd-footer__sitemap li { break-inside: avoid; }
.jsd-footer__copy { border-top: 1px solid #1d3d5d; padding: 16px 0 20px; font-size: 12px; color: #a9c3d8; }
@media (max-width: 1023px) { .jsd-footer__main { grid-template-columns: 1fr 1fr; } .jsd-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 767px) {
  .jsd-footer.ec-footerRole { margin-top: 64px; }
  .jsd-footer__main { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
  .jsd-proof--compact { gap: 6px 18px; }
  .jsd-proof--compact .jsd-proof__num { font-size: 26px; }
}

/* ページのいちばん上へ */
.ec-blockTopBtn.pagetop { right: 20px; bottom: 20px; width: auto; height: 44px; line-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--jsd-navy); color: #fff; opacity: .92; font-size: 13px; font-weight: 700; box-shadow: var(--jsd-shadow); z-index: 20; }
.ec-blockTopBtn.pagetop:hover { opacity: 1; }

/* ---------- 9. 商品一覧 ---------- */
.ec-searchnavRole { padding-top: 24px; }
.jsd-listTitle { margin: 18px 0 8px; font-family: var(--jsd-head); font-weight: 700; font-size: 28px; color: var(--jsd-navy); line-height: 1.4; }
.jsd-listTitle::after { content: ""; display: block; width: 44px; height: 3px; border-radius: 2px; background: var(--jsd-sky); margin-top: 12px; }
.ec-topicpath { font-size: 13px; padding: 0; border: 0; color: var(--jsd-muted); }
.ec-topicpath .ec-topicpath__item a, .ec-topicpath .ec-topicpath__item--active a { color: var(--jsd-blue-d); }
.ec-topicpath .ec-topicpath__item--active { font-weight: 700; }
.ec-searchnavRole .ec-searchnavRole__infos { border-top: 0; padding-top: 8px; margin-bottom: 20px; color: var(--jsd-sub); font-size: 14px; }
.ec-searchnavRole__counter .ec-font-bold, .ec-searchnavRole__counter span { color: var(--jsd-navy); font-weight: 700; }
.ec-shelfGrid.jsd-grid { display: grid; margin: 0; padding: 0; }
.ec-shelfGrid.jsd-grid .ec-shelfGrid__item { width: auto; margin: 0; padding: 0; display: block; }
.ec-pagerRole { margin-top: 32px; }
.ec-pager__item a, .ec-pager__item--active a { border-radius: 999px; min-width: 40px; }
.ec-pager .ec-pager__item--active a { background: var(--jsd-blue); color: #fff; }
.ec-pager .ec-pager__item a:hover { background: var(--jsd-tint); color: var(--jsd-blue); }
@media (max-width: 767px) { .jsd-listTitle { font-size: 22px; } }

/* ---------- 10. 商品ページ ---------- */
.ec-productRole { padding-top: 24px; }
.ec-productRole .ec-productRole__profile { margin-left: 0; }
.ec-productRole .jsd-chip { margin-bottom: 10px; }
.jsd-productTitle.ec-headingTitle { margin: 0 0 12px; font-family: var(--jsd-head); font-weight: 700; font-size: 24px; line-height: 1.5; color: var(--jsd-navy); }
.jsd-productTitle__sub { display: block; margin-top: 8px; font-family: var(--jsd-font); font-weight: 500; font-size: 14px; line-height: 1.75; color: var(--jsd-sub); }
.ec-productRole .ec-productRole__title { border-bottom: 0; }
.ec-productRole .ec-productRole__tags { margin-top: 6px; border-bottom: 0; padding-bottom: 6px; }
.ec-productRole .ec-productRole__tag { border: 1px solid var(--jsd-line2); border-radius: 999px; color: var(--jsd-sub); background: #fff; font-size: 12px; padding: 2px 10px; }
.ec-productRole .ec-productRole__price { border-bottom: 0; padding: 4px 0 8px; }
.ec-productRole .ec-price .ec-price__price { font-family: var(--jsd-num); font-weight: 700; font-size: 34px; color: var(--jsd-navy); padding-right: 6px; }
.ec-productRole .ec-price .ec-price__tax { font-size: 13px; color: var(--jsd-muted); }
.ec-productRole .ec-productRole__priceRegular { color: var(--jsd-muted); }
.jsd-pinfo { margin: 6px 0 18px; padding: 14px 16px; border-radius: 16px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); display: grid; gap: 8px; }
.jsd-pinfo__row { display: grid; grid-template-columns: 7.5em 1fr; gap: 10px; align-items: baseline; font-size: 14px; border: 0; padding: 0; }
.jsd-pinfo__row dt { font-weight: 700; color: var(--jsd-navy); font-size: 13px; }
.jsd-pinfo__row dd { margin: 0; color: var(--jsd-ink); }
.jsd-pinfo__note { display: block; font-size: 12px; color: var(--jsd-muted); }
.jsd-manual { margin: 0; display: inline; }
.jsd-manual__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--jsd-blue); background: #fff; color: var(--jsd-blue); font: 700 13px var(--jsd-font); cursor: pointer; }
.jsd-manual__btn:hover { background: var(--jsd-blue); color: #fff; }
.ec-productRole .ec-productRole__category { border-bottom: 0; padding: 0 0 12px; font-size: 13px; color: var(--jsd-sub); }
.ec-productRole .ec-productRole__category a { color: var(--jsd-blue-d); }
.ec-productRole .ec-productRole__actions { padding: 6px 0 10px; }
.ec-productRole .ec-numberInput input { border-radius: 10px; }
.ec-productRole .ec-productRole__btn { width: 100%; margin-bottom: 10px; }
.jsd-infoNote { margin: 4px 0 16px; padding: 14px 16px; border-radius: 14px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); color: var(--jsd-sub); font-size: 14px; line-height: 1.8; }
.jsd-infoNote--ended b { display: block; margin-bottom: 2px; color: var(--jsd-navy); font-size: 15px; }
.ec-sliderItemRole .item_visual, .ec-sliderItemRole .slide-item img { border-radius: 18px; }
.ec-sliderItemRole .item_visual { border: 1px solid var(--jsd-line); overflow: hidden; background: #fff; }
.ec-sliderItemRole .item_nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.ec-sliderItemRole .item_nav .slideThumb { width: auto; margin: 0; border-radius: 10px; overflow: hidden; border: 1px solid var(--jsd-line); opacity: .85; cursor: pointer; }
.ec-sliderItemRole .item_nav .slideThumb:hover { opacity: 1; border-color: var(--jsd-blue); }
/* 商品説明（幅いっぱい・読みやすい幅） */
.jsd-pdesc.ec-productRole__description { max-width: 920px; margin: 48px auto 0; padding: 0; font-size: 15px; line-height: 1.9; color: var(--jsd-ink); overflow-wrap: anywhere; }
.jsd-pdesc img { max-width: 100%; height: auto; }
.jsd-pdesc iframe { max-width: 100%; }
.jsd-pdesc iframe[src*="youtube"], .jsd-pdesc iframe[src*="youtu.be"] { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 14px; }
.jsd-pdesc table { max-width: 100%; }
@media (max-width: 767px) {
  .jsd-productTitle.ec-headingTitle { font-size: 18px; }
  .ec-productRole .ec-price .ec-price__price { font-size: 28px; }
  .jsd-pinfo__row { grid-template-columns: 6.5em 1fr; }
  .ec-sliderItemRole .item_nav { display: none; }
  .jsd-pdesc.ec-productRole__description { margin-top: 32px; font-size: 14.5px; }
}

/* ---------- 11. EC-CUBEの共通部品（ボタン・見出し・入力欄・カート・会員ページなど） ---------- */
.ec-blockBtn--action, .ec-inlineBtn--action { background: var(--jsd-blue); border-color: var(--jsd-blue); color: #fff; border-radius: 999px; font-weight: 700; }
.ec-blockBtn--action:hover, .ec-blockBtn--action:focus, .ec-inlineBtn--action:hover, .ec-inlineBtn--action:focus { background: var(--jsd-blue-d); border-color: var(--jsd-blue-d); color: #fff; }
.ec-blockBtn--action:disabled, .ec-blockBtn--action[disabled] { background: #9fb4c4; border-color: #9fb4c4; color: #fff; }
.ec-blockBtn--cancel, .ec-inlineBtn--cancel { background: #fff; border: 2px solid var(--jsd-blue); color: var(--jsd-blue); border-radius: 999px; font-weight: 700; }
.ec-blockBtn--cancel:hover, .ec-blockBtn--cancel:focus, .ec-inlineBtn--cancel:hover { background: var(--jsd-tint); border-color: var(--jsd-blue-d); color: var(--jsd-blue-d); }
.ec-blockBtn, .ec-inlineBtn { border-radius: 999px; }
.ec-blockBtn--action, .ec-blockBtn--cancel, .ec-blockBtn { min-height: 52px; height: auto; line-height: 50px; }
.ec-pageHeader h1, .ec-pageHeader .h1 { margin: 24px 0 36px; padding: 0 0 14px; border: 0; font-family: var(--jsd-head); font-weight: 700; font-size: 28px; color: var(--jsd-navy); position: relative; }
.ec-pageHeader h1::after, .ec-pageHeader .h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; border-radius: 2px; background: var(--jsd-sky); }
@media (max-width: 767px) { .ec-pageHeader h1, .ec-pageHeader .h1 { font-size: 22px; margin: 16px 0 24px; } }
.ec-rectHeading h1, .ec-rectHeading h2, .ec-rectHeading h3 { background: var(--jsd-tint); color: var(--jsd-navy); border-left: 4px solid var(--jsd-blue); border-radius: 6px; font-family: var(--jsd-head); }
.ec-heading-bold, .ec-headingTitle { color: var(--jsd-navy); }
.ec-input input, .ec-halfInput input, .ec-numberInput input, .ec-zipInput input, .ec-telInput input, .ec-select select, .ec-birth select, .ec-input textarea, .ec-input select, .form-control {
  border: 1px solid var(--jsd-line2); border-radius: 10px; min-height: 44px; background-color: #fff; color: var(--jsd-ink);
}
.ec-input input:focus, .ec-halfInput input:focus, .ec-numberInput input:focus, .ec-zipInput input:focus, .ec-telInput input:focus, .ec-select select:focus, .ec-input textarea:focus, .form-control:focus { border-color: var(--jsd-blue); box-shadow: 0 0 0 3px rgba(79, 179, 232, .25); outline: none; }
.ec-borderedDefs dl, .ec-borderedList li { border-color: var(--jsd-line); }
.ec-borderedDefs dt .ec-label { color: var(--jsd-navy); }
.ec-required { background: var(--jsd-blue); color: #fff; border-radius: 4px; }
.ec-progress .ec-progress__item .ec-progress__number { background: #c9d9e5; }
.ec-progress .is-complete .ec-progress__number { background: var(--jsd-blue); }
.ec-progress .is-complete .ec-progress__label { color: var(--jsd-blue); }
.ec-totalBox { background: var(--jsd-tint); border-radius: 18px; border: 1px solid var(--jsd-line2); }
.ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__price, .ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__taxLabel { color: var(--jsd-navy); }
.ec-cartRow .ec-cartRow__delColumn .ec-icon img, .ec-cartRow .ec-cartRow__amountUpButton, .ec-cartRow .ec-cartRow__amountDownButton { border-radius: 50%; }
.ec-navlistRole .ec-navlistRole__navlist { border-color: var(--jsd-line2); border-radius: 12px; overflow: hidden; }
.ec-navlistRole .ec-navlistRole__item a { color: var(--jsd-blue-d); }
.ec-navlistRole .active a { color: var(--jsd-blue); font-weight: 700; }
.ec-modal .ec-modal-wrap { border-radius: 20px; }
.ec-orderRole .ec-orderConfirm ~ .ec-orderConfirm .ec-input { white-space: pre-line; } /* 注文の最終確認画面：特商法の欄の改行を出す */

.ec-alert-warning { background: #fff4e5; color: #8a4b00; border: 1px solid #ffd8a8; border-radius: 12px; }
.ec-alert-warning .ec-alert-warning__icon img { filter: none; }

/* ---------- 12. 当サイトについて・特商法・規約など（文書のページ） ---------- */
.jsd-doc .ec-borderedDefs dl { padding: 18px 0; }
.jsd-doc .ec-borderedDefs dd { line-height: 1.9; }
.jsd-doc__dates { margin: 24px 0 0; font-size: 13px; color: var(--jsd-muted); text-align: right; }
.jsd-doc a { color: var(--jsd-blue-d); }

/* ---------- 13. 品質と実績・注意喚起のページ（ページ管理で作るページ） ---------- */
.jsd-page { padding-top: 8px; padding-bottom: 24px; }
.jsd-page p { line-height: 1.9; margin: 0 0 1em; }
.jsd-page ul { line-height: 1.9; }
.jsd-page__lead { font-size: 15px; line-height: 1.95; color: var(--jsd-sub); max-width: 860px; }
.jsd-summary { margin: 24px 0 8px; padding: 24px 26px; border-radius: 20px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); }
.jsd-summary__title { margin: 0 0 10px; font-family: var(--jsd-head); font-size: 18px; color: var(--jsd-navy); }
.jsd-summary ul { margin: 0; padding-left: 1.2em; line-height: 1.9; font-size: 15px; }
.jsd-summary li { margin-bottom: 4px; }
.jsd-page__band { margin: 28px 0; padding: 26px; border-radius: 22px; background: var(--jsd-navy); color: #fff; }
.jsd-page__band .jsd-proof--compact { justify-content: space-around; }
.jsd-page h2.jsd-h2 { margin-top: 48px; }
.jsd-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: 18px; font-size: 14.5px; line-height: 1.8; border: 1px solid var(--jsd-line2); border-radius: 16px; overflow: hidden; }
.jsd-table caption { text-align: left; font-weight: 700; color: var(--jsd-navy); padding: 0 0 8px; caption-side: top; }
.jsd-table th, .jsd-table td { padding: 14px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--jsd-line); }
.jsd-table tr:last-child th, .jsd-table tr:last-child td { border-bottom: 0; }
.jsd-table thead th { background: var(--jsd-navy); color: #fff; font-size: 13px; letter-spacing: .08em; }
.jsd-table tbody th { width: 34%; background: var(--jsd-tint); color: var(--jsd-navy); font-weight: 700; }
.jsd-table__note { margin: 10px 0 0; font-size: 13px; color: var(--jsd-muted); }
.jsd-people { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.jsd-people li { padding: 16px 18px; border-radius: 16px; border: 1px solid var(--jsd-line2); background: #fff; font-weight: 700; color: var(--jsd-navy); line-height: 1.6; }
.jsd-people li small { display: block; font-weight: 500; color: var(--jsd-muted); font-size: 12px; }
.jsd-page .jsd-faq { margin-top: 48px; }
.jsd-alertbox { margin: 20px 0; padding: 16px 18px; border: 2px solid #c62828; border-radius: 14px; background: #fff7f7; }
.jsd-alertbox__title { margin: 0 0 6px; color: #c62828; font-weight: 700; }
.jsd-alertbox p { margin: 0; line-height: 1.8; }
.jsd-shoplist { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.jsd-shoplist li { padding: 12px 14px; border-radius: 12px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); overflow-wrap: anywhere; }
.jsd-shoplist li strong { display: block; color: var(--jsd-navy); }
@media (max-width: 767px) {
  .jsd-table th, .jsd-table td { padding: 10px 12px; font-size: 13.5px; line-height: 1.7; }
  .jsd-table tbody th { width: 38%; }
  .jsd-summary { padding: 18px; }
}

/* 印刷のとき */
@media print {
  .jsd-head__search, .jsd-catnav, .jsd-bubble, .jsd-sparkle, .ec-blockTopBtn { display: none !important; }
  .jsd-footer.ec-footerRole, .jsd-proofband { background: #fff !important; color: #000 !important; }
}

/* ---------- 14. 商品説明の部品（説明欄のHTMLはクラスだけ。色・形・余白はここで決める） ----------
   使い方の例：<div class="jsd-d"> … <section class="jsd-d-sec"><h2 class="jsd-d-h" data-en="FEATURES">商品の特長</h2> … </section></div>
   部品：jsd-d-hero（結論）／jsd-d-points（数字）／jsd-d-checks（チェックの箇条書き）／jsd-d-features（特長カード）
         jsd-d-cards（カード 2〜4列）／jsd-d-steps（使い方の手順）／jsd-d-tips・jsd-d-tip（ポイント）／jsd-d-info（説明の枠）
         jsd-d-warn（注意の枠）／jsd-d-note（ひとこと）／jsd-d-next（次のおすすめ）／jsd-d-table（仕様の表）
         jsd-d-cautions（注意事項）／jsd-d-sizes（他のサイズ）／jsd-d-shops（ほかの販売店）／jsd-d-small（小さい注記）
         jsd-d-gallery（画像を2列）／jsd-d-figure（1枚の画像）／jsd-d-news（お知らせ） */
.jsd-d { color: var(--jsd-ink); font-size: 15px; line-height: 1.9; }
.jsd-d p { margin: 0; }
.jsd-d p + p { margin-top: .8em; }
.jsd-d a { color: var(--jsd-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.jsd-d a:hover { color: var(--jsd-blue-d); }
.jsd-d ul, .jsd-d ol { margin: 0; padding: 0; list-style: none; }
.jsd-d small, .jsd-d-small { font-size: 12.5px; line-height: 1.8; color: var(--jsd-muted); }
p.jsd-d-small { margin-top: 12px; }
.jsd-d-sec { margin-top: 64px; }
.jsd-d-sec > p + :not(p) { margin-top: 16px; }
.jsd-d-h { margin: 0 0 22px; display: flex; flex-direction: column; gap: 8px; font-family: var(--jsd-head); font-weight: 900; font-size: 24px; line-height: 1.45; color: var(--jsd-navy); letter-spacing: .02em; }
.jsd-d-h[data-en]::before { content: attr(data-en); font: 700 12px/1 var(--jsd-num); letter-spacing: .2em; color: var(--jsd-sky); }
.jsd-d-h::after { content: ""; width: 44px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--jsd-blue), var(--jsd-sky)); }
.jsd-d-h3 { margin: 28px 0 10px; font-family: var(--jsd-head); font-weight: 700; font-size: 17px; color: var(--jsd-navy); }

/* 結論（いちばん上） */
.jsd-d-hero { position: relative; overflow: hidden; padding: 34px 34px 26px; border-radius: var(--jsd-radius); background: linear-gradient(135deg, #eaf6fd 0%, #f7fcff 55%, #fff 100%); border: 1px solid var(--jsd-line2); }
.jsd-d-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(79, 179, 232, .18), rgba(79, 179, 232, 0) 70%); pointer-events: none; }
.jsd-d-hero__lead { position: relative; font-family: var(--jsd-head); font-weight: 900; font-size: 24px; line-height: 1.6; color: var(--jsd-navy); }
.jsd-d-points { position: relative; margin-top: 24px !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.jsd-d-points li { padding: 16px 16px 14px; border-radius: 16px; background: #fff; border: 1px solid var(--jsd-line2); box-shadow: 0 6px 18px rgba(14, 42, 69, .05); }
.jsd-d-points b { display: block; font: 700 34px/1.1 var(--jsd-num); color: var(--jsd-blue); letter-spacing: .01em; }
.jsd-d-points b small { margin-left: 2px; font: 700 14px var(--jsd-font); color: var(--jsd-blue); }
.jsd-d-points span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--jsd-sub); }
.jsd-d-update { position: relative; margin-top: 18px !important; font-size: 12.5px; color: var(--jsd-muted); }
.jsd-d-update + .jsd-d-update { margin-top: 8px !important; }
.jsd-d-update::before { content: "更新"; display: inline-block; margin-right: 8px; padding: 0 8px; border-radius: 999px; background: var(--jsd-navy); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.8; }

/* チェックの箇条書き */
.jsd-d-checks { display: grid; gap: 10px; }
.jsd-d-checks li { position: relative; padding: 14px 16px 14px 50px; border-radius: 14px; background: var(--jsd-tint); font-weight: 700; line-height: 1.7; }
.jsd-d-checks li::before { content: ""; position: absolute; left: 16px; top: 16px; width: 22px; height: 22px; border-radius: 50%; background: var(--jsd-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat; }

/* 特長カード（番号つき） */
.jsd-d-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; counter-reset: jsdfeat; }
.jsd-d-feature { position: relative; padding: 22px 22px 20px; border-radius: 18px; background: #fff; border: 1px solid var(--jsd-line2); counter-increment: jsdfeat; }
.jsd-d-feature::before { content: counter(jsdfeat, decimal-leading-zero); display: block; font: 700 13px/1 var(--jsd-num); letter-spacing: .12em; color: var(--jsd-sky); }
.jsd-d-feature h3 { margin: 8px 0 8px; font-family: var(--jsd-head); font-weight: 700; font-size: 17px; line-height: 1.5; color: var(--jsd-navy); }
.jsd-d-feature p { font-size: 14px; line-height: 1.85; color: var(--jsd-sub); }
.jsd-d-feature:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* カード（場所・種類など） */
.jsd-d-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jsd-d-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jsd-d-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jsd-d-card { padding: 18px 18px 16px; border-radius: 16px; background: #fff; border: 1px solid var(--jsd-line2); border-top: 4px solid var(--jsd-sky); }
.jsd-d-card h3 { margin: 0 0 6px; font-family: var(--jsd-head); font-weight: 700; font-size: 16px; color: var(--jsd-navy); }
.jsd-d-card p { font-size: 13.5px; line-height: 1.8; color: var(--jsd-sub); }
.jsd-d-card__link { display: inline-block; margin-top: 10px; font-size: 13.5px; }

/* 使い方の手順 */
.jsd-d-before { padding: 16px 18px; border-radius: 14px; background: var(--jsd-tint); font-size: 14px; }
.jsd-d-before ul { margin-top: 6px; display: grid; gap: 4px; }
.jsd-d-before li { position: relative; padding-left: 16px; }
.jsd-d-before li::before { content: ""; position: absolute; left: 3px; top: .8em; width: 6px; height: 6px; border-radius: 50%; background: var(--jsd-sky); }
.jsd-d-steps { margin-top: 18px !important; display: grid; gap: 0; counter-reset: jsdstep; }
.jsd-d-steps > li { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding-bottom: 22px; counter-increment: jsdstep; }
.jsd-d-steps > li::before { content: counter(jsdstep); width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, var(--jsd-blue), var(--jsd-sky)); color: #fff; font: 700 22px/48px var(--jsd-num); text-align: center; box-shadow: 0 6px 14px rgba(22, 119, 184, .25); }
.jsd-d-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 23px; top: 52px; bottom: 4px; width: 2px; background: var(--jsd-line3); }
.jsd-d-steps__title { margin-top: 8px !important; font-family: var(--jsd-head); font-weight: 700; font-size: 17px; color: var(--jsd-navy); line-height: 1.5; }
.jsd-d-steps > li p:not(.jsd-d-steps__title) { margin-top: 4px; font-size: 14.5px; color: var(--jsd-ink); }

/* ポイント・説明の枠・注意 */
.jsd-d-tips { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jsd-d-tip, .jsd-d-info { padding: 18px 20px; border-radius: 16px; background: #fff; border: 1px solid var(--jsd-line2); font-size: 14px; }
.jsd-d-tip { background: linear-gradient(180deg, #fffbea, #fff 70%); border-color: #f4e3a6; }
.jsd-d-tips > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.jsd-d-tip__title, .jsd-d-info__title, .jsd-d-warn__title { margin-bottom: 6px !important; font-family: var(--jsd-head); font-weight: 700; font-size: 15.5px; color: var(--jsd-navy); display: flex; align-items: center; gap: 8px; }
.jsd-d-tip__title::before { content: "★"; color: #f2b705; font-size: 16px; }
.jsd-d-info { margin-top: 12px; }
.jsd-d-info__title::before { content: "i"; width: 20px; height: 20px; border-radius: 50%; background: var(--jsd-navy); color: #fff; font: 700 12px/20px var(--jsd-num); text-align: center; flex: none; }
.jsd-d-warn { margin-top: 14px; padding: 16px 20px; border-radius: 16px; background: #fff7f1; border: 1px solid #f6d3bd; font-size: 14px; }
.jsd-d-warn__title { color: #a1450f; }
.jsd-d-warn__title::before { content: "!"; width: 20px; height: 20px; border-radius: 50%; background: #e8763a; color: #fff; font: 700 13px/20px var(--jsd-num); text-align: center; flex: none; }
.jsd-d-note { margin-top: 14px !important; position: relative; padding-left: 26px; font-size: 14px; color: var(--jsd-sub); }
.jsd-d-note::before { content: "→"; position: absolute; left: 0; top: 0; color: var(--jsd-blue); font-weight: 700; }

/* 次のおすすめ（防カビ侍など） */
a.jsd-d-next { display: block; position: relative; overflow: hidden; padding: 26px 28px; border-radius: var(--jsd-radius); background: linear-gradient(135deg, var(--jsd-navy), var(--jsd-blue)); color: #fff; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
a.jsd-d-next:hover { color: #fff; transform: translateY(-3px); box-shadow: var(--jsd-shadow); }
.jsd-d-next__en { display: block; font: 700 12px/1 var(--jsd-num); letter-spacing: .2em; color: var(--jsd-sky-p); }
.jsd-d-next__title { display: block; margin-top: 10px; font-family: var(--jsd-head); font-weight: 900; font-size: 21px; line-height: 1.5; }
.jsd-d-next__text { display: block; margin-top: 8px; font-size: 14px; line-height: 1.85; font-weight: 500; color: #e4f2fb; }
.jsd-d-next__more { display: inline-block; margin-top: 14px; padding: 8px 18px; border-radius: 999px; background: #fff; color: var(--jsd-blue); font-size: 14px; font-weight: 700; }

/* 仕様の表 */
.jsd-d-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--jsd-line2); border-radius: 16px; overflow: hidden; font-size: 14px; }
.jsd-d-before + .jsd-d-table { margin-top: 14px; }
.jsd-d-table th, .jsd-d-table td { padding: 12px 16px; border-bottom: 1px solid var(--jsd-line); text-align: left; vertical-align: top; line-height: 1.7; }
.jsd-d-table tr:last-child th, .jsd-d-table tr:last-child td { border-bottom: 0; }
.jsd-d-table th { width: 30%; background: var(--jsd-tint); color: var(--jsd-navy); font-weight: 700; white-space: nowrap; }

/* 注意事項 */
.jsd-d-cautions li { position: relative; padding: 7px 0 7px 18px; border-bottom: 1px dashed var(--jsd-line3); font-size: 14px; line-height: 1.75; }
.jsd-d-cautions li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 7px; height: 7px; border-radius: 50%; background: var(--jsd-sky); }
.jsd-d-cautions + .jsd-d-h3 { margin-top: 26px; }

/* 画像でくわしく（説明の画像を2列に） */
.jsd-d-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jsd-d-gallery img { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--jsd-line2); background: #fff; }
/* 1枚の画像（メディア掲載など・2026-11-06） */
.jsd-d-figure { margin: 0; max-width: 560px; }
.jsd-d-figure img { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--jsd-line2); background: #fff; }
.jsd-d-figure figcaption { margin-top: 8px; font-size: 12.5px; color: var(--jsd-muted); }

/* 他のサイズ・ほかの販売店 */
.jsd-d-sizes, .jsd-d-shops { display: flex; flex-wrap: wrap; gap: 10px; }
.jsd-d-sizes a, .jsd-d-sizes span, .jsd-d-shops a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 18px; border-radius: 999px; border: 2px solid var(--jsd-line3); background: #fff; color: var(--jsd-blue); font-size: 14px; font-weight: 700; text-decoration: none; }
.jsd-d-sizes a:hover, .jsd-d-shops a:hover { border-color: var(--jsd-blue); background: var(--jsd-tint); color: var(--jsd-blue-d); }
.jsd-d-sizes .is-current { border-color: var(--jsd-blue); background: var(--jsd-blue); color: #fff; }
.jsd-d-sizes small { font-size: 11.5px; font-weight: 500; color: inherit; opacity: .85; }
.jsd-d-shops a::after { content: "↗"; font-size: 12px; }
.jsd-d-warnline { margin-top: 12px !important; font-size: 13px; font-weight: 700; color: #b4441a; }

/* 強さ順（テーマのシリーズの案内） */
.jsd-d-rank li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 14px; }
.jsd-d-rank li:nth-child(odd) { background: var(--jsd-tint); }
.jsd-d-rank a { text-decoration: none; }
.jsd-d-rank .is-current { outline: 2px solid var(--jsd-blue); background: #fff; }
.jsd-d-rank__here { margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: var(--jsd-blue); color: #fff; font-size: 11px; font-weight: 700; vertical-align: 2px; }
.jsd-d-rank__intro { margin: 0 0 10px !important; font-size: 13px; line-height: 1.7; color: var(--jsd-muted); }
.jsd-d-rank__desc { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 500; line-height: 1.6; color: var(--jsd-muted); }
.jsd-d-rank__stars { color: #f2b705; font-size: 17px; letter-spacing: 2px; white-space: nowrap; }
.jsd-d-rank__stars span { color: #dbe7f0; }
.jsd-d-guides { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jsd-d-guides a { display: block; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--jsd-line2); background: #fff; text-decoration: none; color: var(--jsd-navy); font-weight: 700; line-height: 1.6; }
.jsd-d-guides a:hover { border-color: var(--jsd-blue); background: var(--jsd-tint); color: var(--jsd-blue-d); }
.jsd-d-guides a span { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 500; color: var(--jsd-muted); }
.jsd-pd-more { max-width: 920px; margin: 0 auto; }
.jsd-d-maker { margin-top: 18px !important; font-size: 12.5px; color: var(--jsd-muted); }

@media (max-width: 767px) {
  .jsd-d { font-size: 14.5px; }
  .jsd-d-sec { margin-top: 48px; }
  .jsd-d-h { font-size: 21px; }
  .jsd-d-hero { padding: 24px 18px 20px; border-radius: 18px; }
  .jsd-d-hero__lead { font-size: 19px; }
  .jsd-d-points { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .jsd-d-points li { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 14px; }
  .jsd-d-points b { font-size: 28px; }
  .jsd-d-points span { margin-top: 0; }
  .jsd-d-points span br { display: none; }
  .jsd-d-features, .jsd-d-tips, .jsd-d-guides, .jsd-d-cards--3, .jsd-d-gallery { grid-template-columns: minmax(0, 1fr); }
  .jsd-d-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jsd-d-steps > li { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
  .jsd-d-steps > li::before { width: 40px; height: 40px; font-size: 19px; line-height: 40px; }
  .jsd-d-steps > li:not(:last-child)::after { left: 19px; top: 44px; }
  .jsd-d-table th { width: 34%; white-space: normal; }
  .jsd-d-table th, .jsd-d-table td { padding: 10px 12px; }
  a.jsd-d-next { padding: 22px 20px; border-radius: 18px; }
  .jsd-d-next__title { font-size: 18px; }
}

/* ---------- 15. お知らせの枠・スマホの表・会社概要・プライバシーポリシー（2026-11-04の確認で直したところ） ---------- */

/* ① 商品説明：お知らせの枠（結論の枠の下に独立・「色柄物は必ず試してから」と同じ色） */
.jsd-d-news { margin-top: 14px; padding: 16px 20px; border-radius: 16px; background: #fff7f1; border: 1px solid #f6d3bd; }
.jsd-d-news p { margin: 0; font-size: 13.5px; line-height: 1.8; }
.jsd-d-news p + p { margin-top: 6px; }
.jsd-d-news .jsd-d-news__title { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; font-family: var(--jsd-head); font-weight: 700; font-size: 15.5px; color: #a1450f; }
.jsd-d-news__title::before { content: "!"; flex: none; width: 20px; height: 20px; border-radius: 50%; background: #e8763a; color: #fff; font: 700 13px/20px var(--jsd-num); text-align: center; }
.jsd-d-news b { margin-right: 8px; color: #a1450f; }

/* ② スマホでも表は左右に（品質と実績） */
@media (max-width: 767px) {
  .jsd-table { display: table; width: 100%; }
  .jsd-table thead { display: table-header-group; }
  .jsd-table tbody { display: table-row-group; }
  .jsd-table tr { display: table-row; }
  .jsd-table th, .jsd-table td { display: table-cell; width: auto; padding: 10px 12px; font-size: 13.5px; line-height: 1.7; }
  .jsd-table tbody th { width: 38%; padding-bottom: 10px; border-bottom: 1px solid var(--jsd-line); }
  .jsd-table td { padding-top: 10px; }
  .jsd-table tr:last-child th { border-bottom: 0; }
}

/* ③ スマホでも左右に（特商法・当サイトについて） */
@media (max-width: 767px) {
  #page_help_tradelaw .ec-borderedDefs dl, #page_help_about .ec-borderedDefs dl { flex-wrap: nowrap; align-items: flex-start; gap: 12px; padding: 14px 0; }
  #page_help_tradelaw .ec-borderedDefs dt, #page_help_about .ec-borderedDefs dt { flex: none; width: 30%; padding-top: 0; }
  #page_help_tradelaw .ec-borderedDefs dd, #page_help_about .ec-borderedDefs dd { flex: 1; width: auto; min-width: 0; font-size: 14px; line-height: 1.8; }
}

/* ④ 会社概要（ページ管理の「会社概要」） */
.jsd-company { max-width: 920px; margin: 0 auto; color: var(--jsd-ink); }
.jsd-company__table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--jsd-line2); border-radius: 16px; overflow: hidden; font-size: 14.5px; line-height: 1.85; }
.jsd-company__table th, .jsd-company__table td { padding: 14px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--jsd-line); }
.jsd-company__table tr:last-child th, .jsd-company__table tr:last-child td { border-bottom: 0; }
.jsd-company__table th { width: 26%; background: var(--jsd-tint); color: var(--jsd-navy); font-weight: 700; white-space: nowrap; }
.jsd-company__table a { color: var(--jsd-blue-d); }
.jsd-company__service { margin-top: 40px; padding: 30px 32px; border-radius: var(--jsd-radius); background: linear-gradient(135deg, #eaf6fd 0%, #f7fcff 55%, #fff 100%); border: 1px solid var(--jsd-line2); }
.jsd-company__service img { display: block; width: 100%; max-width: 360px; height: auto; margin: 0 0 6px; }
.jsd-company__service h2 { margin: 12px 0 12px; font-family: var(--jsd-head); font-weight: 900; font-size: 22px; line-height: 1.5; color: var(--jsd-navy); }
.jsd-company__service p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.9; }
.jsd-company__map { margin-top: 32px; border-radius: 16px; overflow: hidden; border: 1px solid var(--jsd-line2); line-height: 0; }
.jsd-company__map iframe { display: block; width: 100%; height: 380px; border: 0; }
@media (max-width: 767px) {
  .jsd-company__table { font-size: 13.5px; }
  .jsd-company__table th, .jsd-company__table td { padding: 10px 12px; }
  .jsd-company__table th { width: 30%; white-space: normal; }
  .jsd-company__service { padding: 22px 18px; border-radius: 18px; }
  .jsd-company__service h2 { font-size: 19px; }
  .jsd-company__map iframe { height: 300px; }
}

/* ⑤ プライバシーポリシー・利用規約（文書のページ） */
.jsd-policy, #page_help_agreement .ec-off1Grid__cell { max-width: 880px; margin: 0 auto; font-size: 15px; line-height: 1.95; color: var(--jsd-ink); }
.jsd-policy > p:first-child { padding: 18px 22px; border-radius: 16px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); }
.jsd-policy h2 { margin: 40px 0 12px; padding: 2px 0 2px 14px; border-left: 5px solid var(--jsd-blue); font-family: var(--jsd-head); font-weight: 700; font-size: 19px; line-height: 1.5; color: var(--jsd-navy); }
.jsd-policy p, #page_help_agreement .ec-off1Grid__cell p { margin: 0 0 12px; }
.jsd-policy a, #page_help_agreement .ec-off1Grid__cell a { color: var(--jsd-blue-d); }
@media (max-width: 767px) {
  .jsd-policy, #page_help_agreement .ec-off1Grid__cell { font-size: 14.5px; }
  .jsd-policy h2 { margin-top: 32px; font-size: 17px; }
}

/* お問い合わせ：メールアドレス（確認）の欄 */
.jsd-mailConfirm { margin-top: 8px; }
.jsd-photoNote { margin: 0 0 8px; font-size: 13px; color: var(--jsd-sub); }
.jsd-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.jsd-photo { margin: 0; padding: 10px; border: 1px dashed var(--jsd-line2); border-radius: 12px; background: #fff; min-width: 0; }
.jsd-photo__preview { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; background: var(--jsd-tint); margin: 0 0 8px; }
.jsd-photo__name { margin: 0 0 6px; font-size: 12px; color: var(--jsd-sub); word-break: break-all; }
.jsd-photo__input { display: block; width: 100%; font-size: 12px; color: var(--jsd-sub); }
.jsd-photo__input::file-selector-button { margin-right: 8px; padding: 6px 14px; border: 1px solid var(--jsd-blue); border-radius: 999px; background: #fff; color: var(--jsd-blue); font: 700 13px var(--jsd-font); cursor: pointer; }
.jsd-photo__remove { margin-top: 6px; padding: 4px 12px; border: 1px solid var(--jsd-line2); border-radius: 999px; background: #fff; color: var(--jsd-ink); font-size: 12px; cursor: pointer; }
.jsd-photo__remove:hover { border-color: var(--jsd-blue); color: var(--jsd-blue); }
.jsd-photo__preview[hidden], .jsd-photo__name[hidden], .jsd-photo__remove[hidden] { display: none; }
@media (max-width: 767px) { .jsd-photos { grid-template-columns: 1fr; } }

/* カテゴリのメニュー：パソコンは真ん中にそろえる・いちばん右に「お問い合わせ」 */
@media (min-width: 768px) {
  .jsd-catnav__list { justify-content: center; column-gap: 20px; }
}
.jsd-catnav__item--contact > a { display: inline-flex; align-items: center; gap: 6px; padding: 5px 16px; border: 2px solid var(--jsd-blue); border-radius: 999px; background: #fff; color: var(--jsd-blue); font-weight: 700; white-space: nowrap; }
.jsd-catnav__item--contact > a:hover, .jsd-catnav__item--contact > a[aria-current="page"] { background: var(--jsd-blue); border-color: var(--jsd-blue); color: #fff; }

/* ---------- 16. 差し色（ミント）：「見出し・証拠・ポイント」だけに入れる（2026-11-06 社長がB案に決定） ----------
   - 入れるところ：ヘッダーの上の細い線・見出しの小さな英語と下線・☆・今月の一押し・実績の帯・トップの特長のアイコン・説明欄の結論の数字と特長の番号・場所のカードの線
   - 今の青のままにするところ：ボタン・リンク・理由の枠（WHY）・使い方の番号・おすすめカード（紺）・注意事項の点
---------- */
body::before { content: ""; display: block; height: 3px; background: linear-gradient(90deg, var(--jsd-navy), var(--jsd-blue) 45%, var(--jsd-accent-l) 45% 55%, var(--jsd-blue) 55%, var(--jsd-navy)); }
.jsd-eyebrow { color: var(--jsd-accent); }
.jsd-eyebrow--light, .jsd-footer__head, .jsd-proof__label, .jsd-proof__note { color: var(--jsd-accent-dk); }
.jsd-underline, .jsd-listTitle::after, .ec-pageHeader h1::after, .ec-pageHeader .h1::after { background: var(--jsd-accent-l); }
.jsd-sparkle path { fill: var(--jsd-accent-l); }
.jsd-pickup { box-shadow: 0 0 0 2px var(--jsd-accent-l), 0 24px 60px rgba(22, 119, 184, .14); }
.jsd-pickup__badge { background: var(--jsd-accent-l); color: #04302b; }
.jsd-proof__bar span { background: var(--jsd-accent-dk); }
.jsd-proof__num { color: #fff; }
.jsd-proof__unit { color: var(--jsd-accent-dk); }
.jsd-feature__icon { border-color: var(--jsd-accent-l); background: var(--jsd-accent-bg); }
.jsd-feature__icon svg, .jsd-feature__icon i { color: var(--jsd-accent); fill: currentColor; }
.jsd-d-h[data-en]::before { color: var(--jsd-accent); }
.jsd-d-h::after { background: linear-gradient(90deg, var(--jsd-accent-l) 0 62%, var(--jsd-sky) 62% 100%); }
.jsd-d-points li { border-top: 3px solid var(--jsd-accent-l); }
.jsd-d-points b small { color: var(--jsd-accent); }
.jsd-d-feature::before { color: var(--jsd-accent); }
.jsd-d-card { border-top-color: var(--jsd-accent-l); }

/* ---------- 17. 商品の動画（YouTube）：説明文に <!--動画:YouTubeのURL--> と書いた商品だけ、カートの下に出す ----------
   旧本店の「動画挿入」プラグインのかわり。最初は動画の画像だけ。押すと、その場で動画が始まる（junsendo.js） */
.jsd-video { margin: 22px 0 0; }
.jsd-video__btn, .jsd-video__frame { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; background: #0e2a45; box-shadow: 0 12px 30px rgba(14, 42, 69, .16); }
.jsd-video__btn { position: relative; overflow: hidden; color: #fff; text-decoration: none; }
.jsd-video__btn img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: transform .35s ease, opacity .35s ease; }
.jsd-video__btn:hover img, .jsd-video__btn:focus-visible img { transform: scale(1.03); opacity: 1; }
.jsd-video__btn:focus-visible { outline: 3px solid var(--jsd-sky); outline-offset: 3px; }
.jsd-video__play { position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; background: rgba(14, 42, 69, .72); box-shadow: 0 0 0 6px rgba(255, 255, 255, .28); transition: background .2s ease, transform .2s ease; }
.jsd-video__play::before { content: ""; position: absolute; left: 29px; top: 23px; border-style: solid; border-width: 13px 0 13px 21px; border-color: transparent transparent transparent #fff; }
.jsd-video__btn:hover .jsd-video__play, .jsd-video__btn:focus-visible .jsd-video__play { background: var(--jsd-blue); transform: scale(1.06); }
.jsd-video__label { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--jsd-navy); font-size: 13px; font-weight: 700; line-height: 1.4; }
.jsd-video__label small { font-size: 11px; font-weight: 700; color: var(--jsd-muted); }
.jsd-video__frame { height: auto; border: 0; background: #000; }
@media (prefers-reduced-motion: reduce) { .jsd-video__btn img, .jsd-video__play { transition: none; } .jsd-video__btn:hover img { transform: none; } }

/* ---------- 18. 使い方動画のページ（稀麗のカビ相談室）：<div class="jsd-d jsd-d--soudan"> ----------
   色は、稀麗ちゃんのラジオブース（スタジオ背景）の薄いピンク（社長決定 2026-11-06）。
   使った商品の色（オレンジ・赤・紫など）は、使い方の帯・手順・商品の枠・ボタンだけに残す（jsd-v-c-色）。
   図（jsd-v-fig）は、動画の説明のための絵なので、中だけ style のまま */
.jsd-d--soudan {
  --v-wall: #FCE4E4; --v-wall2: #FCD8D8; --v-wood: #F0A8A8; --v-bg: #FFF7F7; --v-line: #F6D6D6;
  --v-rose: #B84A60; --v-rose-d: #8A3A48; --v-lamp: #E0394B; --v-host: #1c264e; --v-kabi: #8d6e63;
  font-size: 15px;
}
.jsd-v-c-orange { --c: #e87722; --c-t: #b35a14; --c-l: #fff7f0; --c-b: #f3c9a8; }
.jsd-v-c-pink   { --c: #d9537f; --c-t: #a83354; --c-l: #fff5f8; --c-b: #f6c3d4; }
.jsd-v-c-red    { --c: #c0392b; --c-t: #a93226; --c-l: #fff5f4; --c-b: #f2c4be; }
.jsd-v-c-purple { --c: #6b399e; --c-t: #5b2f88; --c-l: #f8f4fc; --c-b: #d9c8ee; }
.jsd-v-c-navy   { --c: #1c264e; --c-t: #1c264e; --c-l: #fbf7ea; --c-b: #e8c46c; }
.jsd-v-c-green  { --c: #3a9a5b; --c-t: #2e7d32; --c-l: #f1f8f3; --c-b: #bfe0c9; }
.jsd-v-c-blue   { --c: #1f6fb5; --c-t: #1f6fb5; --c-l: #f2f7fc; --c-b: #c3daf0; }
.jsd-v-c-brown  { --c: #8d6e63; --c-t: #6d4c41; --c-l: #f8f3f1; --c-b: #dccbc4; }
.jsd-v-c-kirei  { --c: #B84A60; --c-t: #8A3A48; --c-l: #FFF7F7; --c-b: #F0A8A8; }
.jsd-v-c-host   { --c: #1c264e; --c-t: #1c264e; --c-l: #f3f6fb; --c-b: #cdd6e6; }
.jsd-v-c-gray   { --c: #6d6d6d; --c-t: #555; --c-l: #f5f5f5; --c-b: #d6d6d6; }
.jsd-v-c-dark   { --c: #2b2b33; --c-t: #2b2b33; --c-l: #f3f3f5; --c-b: #cfcfd6; }
.jsd-d--soudan .jsd-d-sec { margin-top: 44px; }
.jsd-d--soudan .jsd-d-h { font-size: 22px; margin-bottom: 16px; }
.jsd-d--soudan .jsd-d-h[data-en]::before { color: var(--v-rose); }
.jsd-d--soudan .jsd-d-h::after { background: linear-gradient(90deg, var(--v-rose) 0 55%, var(--v-wood) 55% 100%); }
.jsd-d--soudan a.jsd-v-btn, .jsd-d--soudan a.jsd-v-btn:hover { text-decoration: none; }
/* 番組の看板（ON AIR）：ブースの壁と腰板の色 */
.jsd-v-onair { position: relative; overflow: hidden; padding: 22px 24px 30px; border-radius: 22px; background: linear-gradient(180deg, var(--v-wall) 0%, var(--v-wall2) 100%); box-shadow: inset 0 0 0 1px rgba(184, 74, 96, .12); color: var(--jsd-ink); }
.jsd-v-onair::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background: repeating-linear-gradient(90deg, var(--v-wood) 0 6px, #EDA0A3 6px 8px); }
.jsd-v-onair__lamp { display: inline-block; vertical-align: middle; margin-right: 12px; padding: 4px 12px; border-radius: 8px; background: var(--v-lamp); color: #fff; font: 700 12px/1.3 var(--jsd-num); letter-spacing: .14em; box-shadow: 0 0 0 3px rgba(224, 57, 75, .18), 0 0 16px rgba(224, 57, 75, .45); }
.jsd-v-onair__title { display: inline-block; vertical-align: middle; font-family: var(--jsd-head); font-weight: 900; font-size: 20px; line-height: 1.5; color: var(--v-rose-d); }
.jsd-v-onair__sub { margin-top: 10px; font-size: 15px; font-weight: 700; line-height: 1.8; }
.jsd-v-onair__chip { display: inline-block; margin-left: 8px; padding: 1px 10px; border-radius: 999px; background: #fff; color: var(--v-rose); font-size: 12px; font-weight: 700; white-space: nowrap; }
/* はじめの案内 */
.jsd-d--soudan .jsd-v-intro { margin-top: 16px; padding: 20px 22px; border-radius: 18px; background: #fff; border: 2px solid var(--v-wall2); font-size: 15px; line-height: 1.95; }
.jsd-v-intro__title { margin-bottom: 8px; font-family: var(--jsd-head); font-weight: 900; font-size: 19px; line-height: 1.55; color: var(--v-rose-d); }
.jsd-v-intro__note { margin-top: 12px; font-size: 12.5px; line-height: 1.8; color: var(--jsd-muted); }
/* 区切りの中身 */
.jsd-v-body { padding: 20px 18px; border-radius: 18px; background: var(--v-bg); border: 1px solid var(--v-line); font-size: 15px; line-height: 1.9; }
.jsd-v-talk { margin-top: 16px; padding: 18px 16px 6px; border-radius: 18px; background: var(--v-bg); border: 1px solid var(--v-line); }
/* 掛け合い（左＝清結くん・司会者、右＝稀麗、まん中＝カビまるくん） */
.jsd-v-line { margin: 0 16% 14px 0; }
.jsd-v-line--kirei { margin: 0 0 14px 16%; text-align: right; }
.jsd-v-line--kabimaru { margin: 0 8% 14px; text-align: center; }
.jsd-v-who { display: inline-block; margin-bottom: 5px; padding: 1px 12px; border-radius: 999px; background: var(--v-host); color: #fff; font-size: 12px; font-weight: 700; line-height: 1.7; }
.jsd-v-line--host .jsd-v-who { background: var(--v-host); }
.jsd-v-line--kirei .jsd-v-who { background: var(--v-rose); }
.jsd-v-line--kabimaru .jsd-v-who { background: var(--v-kabi); }
.jsd-v-say { position: relative; padding: 11px 16px; border-radius: 18px; border-top-left-radius: 6px; background: #fff; border: 2px solid #cdd6e6; font-weight: 700; font-size: 15px; line-height: 1.75; text-align: left; box-shadow: 0 4px 12px rgba(14, 42, 69, .05); }
.jsd-v-line--kirei .jsd-v-say { border-color: var(--v-wood); border-radius: 18px; border-top-right-radius: 6px; }
.jsd-v-line--kabimaru .jsd-v-say { border-color: #dccbc4; border-radius: 18px; }
/* 使い方の帯と手順（商品の色） */
.jsd-v-howto { margin-top: 22px; padding: 18px 16px; border-radius: 18px; background: var(--c); text-align: center; }
.jsd-v-howto__en { color: #fff; font: 700 12px/1.4 var(--jsd-num); letter-spacing: .22em; }
.jsd-v-c-navy .jsd-v-howto__en { color: #e8c46c; }
.jsd-v-howto__box { display: inline-block; margin-top: 8px; padding: 8px 26px; border-radius: 14px; background: #fff; }
.jsd-v-howto__title { font-family: var(--jsd-head); font-weight: 900; font-size: 22px; line-height: 1.4; color: var(--jsd-navy); }
.jsd-v-howto__item { font-size: 12.5px; color: var(--jsd-sub); }
.jsd-v-stepbox { margin-top: 14px; padding: 18px 12px; border-radius: 18px; background: var(--c-l); border: 1px solid var(--c-b); }
.jsd-v-stepbox__title { margin-bottom: 12px; text-align: center; font-weight: 900; font-size: 16px; color: var(--c-t); }
.jsd-v-steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.jsd-v-step { flex: 1 1 120px; max-width: 230px; padding: 14px 8px; border-radius: 14px; background: #fff; border: 2px solid var(--c-b); text-align: center; }
.jsd-v-stepbox .jsd-v-step__num { display: inline-block; width: 32px; height: 32px; border-radius: 50%; background: var(--c); color: #fff; font: 700 16px/32px var(--jsd-num); }
.jsd-v-step__title { margin-top: 8px; font-weight: 700; font-size: 14px; line-height: 1.55; }
.jsd-v-step__note { margin-top: 4px; font-size: 12px; line-height: 1.6; color: var(--jsd-muted); }
/* ※の枠 */
.jsd-d--soudan .jsd-v-notes { margin-top: 22px; padding: 16px 18px; border-radius: 16px; background: #f6f7f9; font-size: 13px; line-height: 1.85; color: var(--jsd-sub); }
/* この動画で使った商品（商品の色） */
.jsd-v-item { padding: 22px 18px; border-radius: 20px; background: #fff; border: 2px solid var(--c-b); border-top: 6px solid var(--c); text-align: center; font-size: 14px; }
.jsd-d--soudan img.jsd-v-item__img { width: 60%; max-width: 240px; height: auto; border-radius: 14px; }
.jsd-v-item__name { margin-top: 10px; font-family: var(--jsd-head); font-weight: 900; font-size: 17px; line-height: 1.55; color: var(--jsd-navy); }
.jsd-v-item .jsd-d-table { margin-top: 14px; }
.jsd-v-item .jsd-d-table th { color: var(--c-t); background: var(--c-l); }
.jsd-d--soudan a.jsd-v-btn { display: inline-block; margin: 14px 4px 0; padding: 11px 26px; border-radius: 999px; background: var(--c); color: #fff; font-size: 15px; font-weight: 700; line-height: 1.5; box-shadow: 0 6px 16px rgba(14, 42, 69, .12); transition: filter .2s ease, transform .2s ease; }
.jsd-d--soudan a.jsd-v-btn:hover { filter: brightness(1.08); transform: translateY(-1px); color: #fff; }
.jsd-d--soudan a.jsd-v-btn--line { margin-top: 10px; padding: 8px 18px; background: #fff; color: var(--c-t); border: 2px solid var(--c); font-size: 14px; box-shadow: none; }
.jsd-d--soudan a.jsd-v-btn--line:hover { background: var(--c-l); color: var(--c-t); }
.jsd-d--soudan a.jsd-v-btn--s { margin-top: 8px; padding: 9px 20px; font-size: 14px; }
/* キャラクター紹介 */
.jsd-v-chars { display: flex; flex-wrap: wrap; gap: 10px; }
.jsd-v-char { flex: 1 1 170px; padding: 12px 14px; border-radius: 16px; background: #fff; border: 2px solid var(--c-b); }
.jsd-v-char__name { display: inline-block; padding: 1px 12px; border-radius: 999px; background: var(--c); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.7; }
.jsd-v-text { margin-top: 6px; font-size: 13px; line-height: 1.7; }
.jsd-v-credit { margin-top: 22px; font-size: 12.5px; line-height: 1.8; color: var(--jsd-muted); }
/* 小さな部品 */
.jsd-v-chip { display: inline-block; margin: 3px; padding: 3px 14px; border-radius: 999px; background: var(--c); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.6; }
.jsd-v-chip--s { padding: 2px 12px; font-size: 13px; }
.jsd-v-lead { font-weight: 700; font-size: 16px; line-height: 1.7; color: var(--jsd-navy); }
.jsd-v-small { font-size: 12.5px; line-height: 1.75; color: var(--jsd-muted); }
.jsd-v-b { font-weight: 700; }
.jsd-v-em { color: var(--c-t); font-weight: 700; }
.jsd-v-big { margin: 0 4px; font-weight: 700; font-size: 18px; }
.jsd-v-center { text-align: center; }
.jsd-v-right { margin-top: 8px; text-align: right; }
.jsd-v-left { text-align: left; }
.jsd-v-gap { margin: 8px 0; }
.jsd-v-fig { max-width: 100%; }
@media (max-width: 767px) {
  .jsd-v-onair { padding: 18px 16px 26px; border-radius: 18px; }
  .jsd-v-onair__title { font-size: 17px; }
  .jsd-v-onair__chip { margin: 6px 0 0; }
  .jsd-v-body, .jsd-v-talk { padding: 16px 12px; }
  .jsd-v-line { margin-right: 8%; }
  .jsd-v-line--kirei { margin-left: 8%; margin-right: 0; }
  .jsd-v-line--kabimaru { margin-left: 4%; margin-right: 4%; }
  .jsd-v-say { font-size: 14.5px; padding: 10px 13px; }
  .jsd-v-step { flex-basis: 100%; max-width: none; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; column-gap: 8px; text-align: left; padding: 12px; }
  .jsd-v-step__num { grid-row: span 2; }
  .jsd-v-step__title { margin-top: 0; }
}

/* ---------- 19. 11/7の追加（使い方動画の出演キャラ・白い文字のボタン・画像のもっと見る・生年月日と性別・ご注文の注意書き） ---------- */
/* ① 使い方動画（カテゴリ15）の一覧の上：番組「稀麗のカビ相談室」の出演キャラクター（TOPのキャラはここに集約）
      色は 18. の稀麗ちゃんのラジオブースと同じ。キャラの大きさは .jsd-cast__img の height で変わります */
.jsd-cast { --v-wall: #FCE4E4; --v-wall2: #FCD8D8; --v-wood: #F0A8A8; --v-rose: #B84A60; --v-rose-d: #8A3A48; --v-lamp: #E0394B;
  position: relative; overflow: hidden; margin: 6px 0 28px; padding: 22px 24px 0; border-radius: 22px;
  background: linear-gradient(180deg, var(--v-wall) 0%, var(--v-wall2) 100%); box-shadow: inset 0 0 0 1px rgba(184, 74, 96, .12); }
.jsd-cast::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; background: repeating-linear-gradient(90deg, var(--v-wood) 0 6px, #EDA0A3 6px 8px); }
.jsd-cast__lamp { display: inline-block; vertical-align: middle; margin-right: 12px; padding: 4px 12px; border-radius: 8px; background: var(--v-lamp); color: #fff; font: 700 12px/1.3 var(--jsd-num); letter-spacing: .14em; box-shadow: 0 0 0 3px rgba(224, 57, 75, .18), 0 0 16px rgba(224, 57, 75, .45); }
.jsd-cast__title { display: inline-block; vertical-align: middle; font-family: var(--jsd-head); font-weight: 900; font-size: 22px; line-height: 1.5; color: var(--v-rose-d); }
.jsd-cast__lead { margin: 10px 0 0; font-size: 15px; font-weight: 700; line-height: 1.8; color: var(--jsd-ink); }
.jsd-cast__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; justify-content: center; align-items: flex-end; gap: 8px 28px; }
.jsd-cast__item { position: relative; z-index: 1; flex: 0 1 260px; display: flex; flex-direction: column; align-items: center; padding-bottom: 28px; text-align: center; }
.jsd-cast__img { display: block; width: auto; max-width: 100%; height: 160px; object-fit: contain; transform-origin: 50% 100%; pointer-events: none; user-select: none; }
.jsd-cast__item--host .jsd-cast__img { height: 170px; animation: jsdYureru 4.2s ease-in-out infinite; }
.jsd-cast__item--kirei .jsd-cast__img { height: 200px; animation: jsdYureru 4.8s ease-in-out infinite; animation-delay: .6s; }
.jsd-cast__item--kabimaru .jsd-cast__img { height: 112px; animation: jsdPuni 3.2s ease-in-out infinite; }
.jsd-cast__name { margin-top: 8px; padding: 1px 12px; border-radius: 999px; background: #1c264e; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.7; white-space: nowrap; }
.jsd-cast__item--kirei .jsd-cast__name { background: var(--v-rose); }
.jsd-cast__item--kabimaru .jsd-cast__name { background: #8d6e63; }
.jsd-cast__text { margin-top: 4px; font-size: 12.5px; line-height: 1.6; color: var(--jsd-sub); }
@media (max-width: 767px) {
  .jsd-cast { padding: 18px 14px 0; border-radius: 18px; }
  .jsd-cast__title { font-size: 18px; }
  .jsd-cast__lead { font-size: 14px; }
  .jsd-cast__list { gap: 4px; }
  .jsd-cast__item { flex: 1 1 0; min-width: 0; padding-bottom: 24px; }
  .jsd-cast__item--host .jsd-cast__img { height: 112px; }
  .jsd-cast__item--kirei .jsd-cast__img { height: 132px; }
  .jsd-cast__item--kabimaru .jsd-cast__img { height: 76px; }
  .jsd-cast__name { padding: 1px 8px; font-size: 11.5px; }
  .jsd-cast__text { font-size: 11px; }
}
/* 使い方動画のページの「キャラクター紹介」にも、キャラの絵を出す（説明欄はそのまま・テーマで絵を足す） */
.jsd-v-chars .jsd-v-char.jsd-v-c-kirei, .jsd-v-chars .jsd-v-char.jsd-v-c-brown, .jsd-v-chars .jsd-v-char.jsd-v-c-host { position: relative; min-height: 96px; padding-left: 78px; }
.jsd-v-chars .jsd-v-char.jsd-v-c-kirei::before, .jsd-v-chars .jsd-v-char.jsd-v-c-brown::before, .jsd-v-chars .jsd-v-char.jsd-v-c-host::before { content: ""; position: absolute; left: 10px; bottom: 8px; width: 60px; height: 80px; background: center bottom / contain no-repeat; }
.jsd-v-chars .jsd-v-char.jsd-v-c-kirei::before { background-image: url("../img/chara/kirei_intro.webp"); }
.jsd-v-chars .jsd-v-char.jsd-v-c-brown::before { background-image: url("../img/chara/kabimaru_niko.webp"); height: 60px; }
.jsd-v-chars .jsd-v-char.jsd-v-c-host::before { background-image: url("../img/chara/seiyu_question.webp"); }
@media (prefers-reduced-motion: reduce) { .jsd-cast__img { animation: none !important; } }

/* ② 白い文字で読めなかったボタン（EC-CUBEの元の色が白のまま）：ご注文手続きの「カートに戻る」・ご注文確認の「ご注文手続きに戻る」・「ゲスト購入」 */
.ec-totalBox .ec-totalBox__btn a.ec-blockBtn--cancel, .ec-guest .ec-guest__actions a.ec-blockBtn--cancel { color: var(--jsd-blue); }
.ec-totalBox .ec-totalBox__btn a.ec-blockBtn--cancel:hover, .ec-totalBox .ec-totalBox__btn a.ec-blockBtn--cancel:focus,
.ec-guest .ec-guest__actions a.ec-blockBtn--cancel:hover, .ec-guest .ec-guest__actions a.ec-blockBtn--cancel:focus { color: var(--jsd-blue-d); }

/* ③ 画像でくわしく：10枚以上のときは、はじめは6枚（スマホは4枚）。その下の段をうっすら見せて「画像をもっと見る」（動きは junsendo.js の⑧） */
.jsd-d-gallery { scroll-margin-top: 90px; }
.jsd-d-gallery.is-folded > img:nth-child(n+9) { display: none; }
.jsd-d-gallery.is-folded > img:nth-child(n+7) { height: 170px; object-fit: cover; object-position: center top; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 0; pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 45%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 45%, transparent 100%); }
.jsd-d-more { margin-top: 14px; text-align: center; }
.jsd-d-gallery.is-folded + .jsd-d-more { margin-top: -6px; }
.jsd-d-more__btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: min(100%, 440px); min-height: 56px; padding: 12px 24px; border-radius: 999px; border: 2px solid var(--jsd-blue); background: #fff; color: var(--jsd-blue); font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.4; cursor: pointer; box-shadow: 0 8px 20px rgba(14, 42, 69, .10); transition: background .2s ease, color .2s ease; }
.jsd-d-more__btn:hover, .jsd-d-more__btn:focus-visible { background: var(--jsd-tint); color: var(--jsd-blue-d); border-color: var(--jsd-blue-d); }
.jsd-d-more__icon { font-size: 12px; }
@media (max-width: 767px) {
  .jsd-d-gallery.is-folded > img:nth-child(n+6) { display: none; }
  .jsd-d-gallery.is-folded > img:nth-child(5) { height: 150px; object-fit: cover; object-position: center top; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 0; pointer-events: none;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 45%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .45) 45%, transparent 100%); }
  .jsd-d-more__btn { font-size: 16px; }
}

/* ④ 会員登録・会員情報の変更：生年月日と性別の欄は出さない（入力の中身はそのまま送られるので、登録済みの方の情報は消えません） */
.ec-borderedDefs > dl:has([name^="entry[birth]"]), .ec-borderedDefs > dl:has([name="entry[sex]"]) { display: none; }

/* ⑤ ご注文手続きの注意書き（沖縄・離島のお届け日／迷惑メール。文は junsendo.js の⑨） */
.jsd-orderNote { margin: 10px 0 0; padding: 12px 14px; border-radius: 12px; background: #fff8e6; border: 1px solid #f3dca6; color: #5b4a1e; font-size: 13px; line-height: 1.75; text-align: left; }
.ec-totalBox .jsd-orderNote { margin: 0 0 14px; }

/* ⑥ 今月の一押しのスライド（2枚以上のときだけ。動きは junsendo.js の⑩・下の丸で切りかえ・スマホは指で左右に） */
.jsd-pickupSlider { position: relative; flex: 1 1 380px; max-width: 440px; min-width: 0; }
.jsd-pickupSlider__track { display: flex; border-radius: 28px; box-shadow: 0 0 0 2px var(--jsd-accent-l), 0 24px 60px rgba(22, 119, 184, .14); overflow: hidden; background: #fff; }
.jsd-pickupSlider__track.is-multi { overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.jsd-pickupSlider__track.is-multi::-webkit-scrollbar { display: none; }
.jsd-pickupSlider .jsd-pickup { flex: 0 0 100%; max-width: none; box-shadow: none; border: 0; border-radius: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.jsd-pickupSlider .jsd-pickup:hover { transform: none; box-shadow: none; }
.jsd-pickupSlider .jsd-pickup:hover .jsd-pickup__more { text-decoration: underline; }
.jsd-pickupSlider__dots { display: flex; justify-content: center; gap: 10px; margin-top: 14px; }
.jsd-pickupSlider__dot { width: 12px; height: 12px; padding: 0; border-radius: 50%; border: 2px solid var(--jsd-blue); background: #fff; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.jsd-pickupSlider__dot[aria-current="true"] { background: var(--jsd-blue); transform: scale(1.15); }
.jsd-pickupSlider__dot:focus-visible { outline: 3px solid var(--jsd-sky); outline-offset: 2px; }
@media (max-width: 767px) { .jsd-pickupSlider { max-width: none; } }

/* ⑦ トップの「カビ取り侍の選び方と違い」（かびのとりせつへの入口）：かびのとりせつの世界観の色（社長の指定 2026-11-07）
      桜のピンク・紺の見出し・黄色のマーカー・赤の強調。ボタンもこの枠の中だけピンク */
.jsd-guide { --kt-pink: #F78DA8; --kt-pink-d: #C2456B; --kt-pink-l: #FFEFEF; --kt-navy: #0D296A; --kt-red: #CF2E2E; --kt-marker: #FFF3A0;
  position: relative; overflow: hidden; border: 2px solid rgba(247, 141, 168, .45);
  background: radial-gradient(circle at 96% 8%, rgba(247, 141, 168, .20) 0 70px, transparent 71px), radial-gradient(circle at 88% 100%, rgba(123, 220, 181, .18) 0 54px, transparent 55px), linear-gradient(135deg, #FFF8FA 0%, var(--kt-pink-l) 100%); }
.jsd-guide .jsd-eyebrow { color: var(--kt-pink-d); }
.jsd-guide__site { display: inline-block; margin-left: 10px; padding: 1px 10px; border-radius: 999px; background: #fff; border: 1px solid rgba(247, 141, 168, .7); color: var(--kt-pink-d); font-size: 12px; font-weight: 700; letter-spacing: 0; vertical-align: 1px; }
.jsd-guide__title { color: var(--kt-navy); }
.jsd-guide__title span { background: linear-gradient(transparent 62%, var(--kt-marker) 62%); }
.jsd-guide__text p { color: #333; }
.jsd-guide__em { color: var(--kt-red); font-weight: 700; }
.jsd-guide .jsd-btn--primary { background: var(--kt-pink-d); box-shadow: 0 10px 24px rgba(194, 69, 107, .25); }
.jsd-guide .jsd-btn--primary:hover { background: #A8385A; }

/* ⑧ お問い合わせの上のご案内（旧本店と同じ文） */
.jsd-contactNotice { margin: 0 0 24px; padding: 18px 20px; border-radius: 16px; background: var(--jsd-tint); border: 1px solid var(--jsd-line2); font-size: 14px; line-height: 1.85; color: var(--jsd-ink); }
.jsd-contactNotice p { margin: 0; }
.jsd-contactNotice p + p { margin-top: 10px; }
.jsd-contactNotice strong { color: var(--jsd-navy); }
.jsd-contactNotice__note { font-size: 13px; color: var(--jsd-sub); }
/* お問い合わせ：迷惑メールのご確認のチェック（旧本店と同じ・プラグイン「写真つきお問い合わせ」1.0.3から出る） */
.jsd-spamCheck { margin: 22px 0 6px; padding: 14px 16px; border-radius: 14px; background: #fff8e6; border: 1px solid #f3dca6; }
.jsd-spamCheck.error { border-color: #e0394b; background: #fff3f4; }
.jsd-spamCheck__label { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-weight: 700; font-size: 14.5px; line-height: 1.7; color: #5b4a1e; cursor: pointer; }
.jsd-spamCheck__label input { flex: 0 0 auto; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--jsd-blue); }
.jsd-spamCheck__label small { display: block; font-weight: 500; font-size: 12.5px; color: #6b5a2c; }
