/* ==========================================================================
   00 基本設定・配色・ページ幅
   ========================================================================== */

/* 商品ページの商品説明文（text-sm）に合わせ、本文の最小値を14pxに設定 */
.sd-shell {
  font-size: 14px;
}

.sd-shell small {
  font-size: 14px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

p,
table,
blockquote,
address,
pre,
form,
figure,
dl,
section {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

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

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

svg,
img,
embed,
object {
  vertical-align: bottom;
}

iframe {
  margin: 0;
  vertical-align: bottom;
}

.mb-9 {
  margin-bottom: 1rem !important;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

.l-container {
  background-color: var(--lp-color-background, #cdd2d6);
  padding: 0;
}

.max-w-content {
  padding-left: 0;
  padding-right: 0;
  max-width: none;
  margin: 0 auto;
}

.max-w-content>ul {
  padding-left: 9px;
  padding-right: 9px;
  max-width: 1092px;
}

.stday-shell {
  width: 100%;
  padding: 0 12px;
  background: #cdd2d6;
  max-width: none;
}

.stday-banner {
  width: 100%;
  object-fit: contain;
}

.stday-period {
  font-size: max(14px, 0.9rem) !important;
  font-weight: 700;
}

.stday-campaigns {
  display: grid;
  gap: 90px;
}

.stday-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(100%, 620px);
  margin: 34px auto 0px;
  border-bottom: 2px solid var(--sd-primary);
}

.stday-tabs button {
  padding: 15px;
  border: 0;
  background: #e9edf0;
  color: #555;
  cursor: pointer;
  font-size: max(14px, 0.9rem);
  font-weight: 800;
  letter-spacing: .08em;
  border-radius: 8px 8px 0 0;
}

.stday-tabs button.is-active {
  background: var(--sd-primary);
  color: #fff;
}

.stday-tab-description {
  margin: 0 auto 22px;
  padding: 0 10px;
  color: #555;
  font-size: max(14px, 0.9rem) !important;
  line-height: 1.8;
  text-align: center;
}

.stday-tab-panel {
  display: none;
  width: min(100%, 620px);
  margin: 0 auto;
  padding: 22px 10px 18px;
  border: 2px solid var(--sd-primary);
  border-top: 0;
}

.stday-tab-panel.is-active {
  display: block;
}

.stday-campaign-group+.stday-campaign-group {
  margin-top: 38px;
}

.stday-campaign-heading {
  margin: 0 0 18px;
  color: #333;
  font-size: max(14px, 0.9rem);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .08em;
  text-align: center;
}

.stday-campaign-sale-button {
  width: min(calc(100% - 16px), 480px);
  margin-top: 38px;
  margin-bottom: 6px;
}

#shop {
  margin-bottom: 0;
}

.stday-page {
  --sd-primary: #3a5967;
  --sd-highlight: #3a5967;
  --sd-surface: #F0E5E3;
  --line: #cdd2d6;
  width: min(100%, 480px);
  margin: auto;
  background: #fff;
  padding-bottom: 0 !important;
}

.stday-review-copy {
  padding-top: 28px;
}

.stday-review-kicker {
  margin: 0 0 8px !important;
  color: #3a5967;
  font-size: 14px !important;
  font-weight: 800;
  letter-spacing: .16em;
}

.stday-review-title {
  margin-bottom: 20px !important;
}

.stday-review-title strong {
  display: inline-block;
  margin: 5px 0 3px;
  color: #765d63;
  font-size: max(14px, 1.7rem);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .01em;
}

.stday-review-benefit {
  width: min(100%, 360px);
  margin: 22px auto 20px;
  padding: 16px 14px;
  border-top: 1px solid var(--sd-primary);
  border-bottom: 1px solid var(--sd-primary);
}

.stday-review-benefit p {
  margin: 0;
  line-height: 1.65;
}

.stday-review-benefit p+p {
  margin-top: 4px;
  color: #555;
  font-size: 14px;
}

.stday-review-benefit strong {
  font-size: max(14px, 1.05rem);
  font-weight: 900;
  letter-spacing: .03em;
}

.stday-review-note {
  width: min(100%, 360px);
  margin: 0 auto 18px !important;
  color: #555;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.stday-review-copy .stday-period {
  margin-top: 18px !important;
}

.js-fade {
  opacity: 0;
  transition: opacity 1.1s ease;
}

.js-fade.is-visible {
  opacity: 1;
}

.js-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .85s ease, transform .9s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.js-text-reveal {
  display: block;
  overflow: hidden;
  opacity: 0;
}

.js-text-reveal .text-inn {
  display: block;
  opacity: 0;
  transform: matrix(1, 0, 0, 1, 0, 100);
  transition: opacity 1.0s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.5s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.js-text-reveal.is-visible {
  opacity: 1;
}

.js-text-reveal.is-visible .text-inn {
  opacity: 1;
  transform: matrix(1, 0, 0, 1, 0, 0);
}

.sd-shell *,
.sd-shell *::before,
.sd-shell *::after {
  box-sizing: border-box;
}

.sd-shell [id] {
  scroll-margin-top: var(--sd-anchor-offset);
}

.sd-shell .stday-page {
  --sd-primary: var(--sd-accent);
  --sd-highlight: var(--sd-accent);
  --sd-surface: var(--sd-paper);
  --line: var(--sd-border);
  background-color: #fff;
  width: 100%;
  max-width: 480px;
  background: #fff;
  overflow: hidden;
}

.sd-shell a:focus-visible,
.sd-shell summary:focus-visible {
  outline: 2px solid var(--sd-accent);
  outline-offset: 4px;
}

.sd-shell #campaigns {
  --sd-section-bg: var(--sd-bg-campaigns);
  display: flow-root;
  margin-bottom: 0;
  /* 直前の共通キャンペーン背景をタブまでつなげる */
  padding-top: 0;
  /* 最終カード内の余白20pxと合わせて48px */
  padding-bottom: 28px;
  background-color: #FFFFFF !important;
}

.sd-shell {
  --sd-ink: #333;
  --sd-web-surface: #e9edf0;
  --sd-shop-surface: #f4eceb;
  --sd-border: #cdd2d6;
  --sd-muted: #626a70;
  --sd-card: #fff;
  --sd-soft: #eef0f2;
  --sd-accent: #3a5967;
  --sd-paper: #faf9f5;
  --sd-stripe-base: #cdd2d6;
  --sd-stripe-color: #f0e5e3;
  --sd-stripe-width: 20px;
  background: repeating-linear-gradient(90deg, var(--sd-stripe-base) 0 var(--sd-stripe-width), var(--sd-stripe-color) var(--sd-stripe-width) calc(var(--sd-stripe-width) * 2));
  color: var(--sd-ink);
  font-family: Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --sd-web: var(--sd-accent);
  --sd-shop: #765d63;
  --sd-anchor-offset: 24px;
  --sd-bg-common: #FAF9F5;
  --sd-bg-campaigns: #FFFFFF;
  --sd-bg-pickup: #FAF9F5;
  --sd-bg-brand: #e7e7df;
  --sd-notice-bg: #f4eceb;
  --sd-notice-hover: #ecdedd;
  --sd-notice-border: #d6bfbc;
  --sd-notice-ink: #654c50;
}

@media (max-width:767px) {

  .sp {
    display: block;
  }

  .pc {
    display: none;
  }

  .stday-shell {
    padding: 0 8px;
  }

  .stday-page {
    max-width: 480px;
  }

  .stday-period {
    font-size: 14px !important;
  }

  .stday-tabs button,
  .stday-tab-description {
    font-size: 14px;
  }

}

@media (max-width: 767px) {

  .stday-shell.sd-shell {
    --sd-sp-gutter: 16px;
    --sd-stripe-width: 8px;
    padding-left: var(--sd-sp-gutter);
    padding-right: var(--sd-sp-gutter);
    background-size: calc(var(--sd-stripe-width) * 2) 100%;
    background-position: left top;
  }

}

@media (prefers-reduced-motion:reduce) {

  html {
    scroll-behavior: auto;
  }

  .js-reveal,
  .js-fade,
  .js-text-reveal,
  .js-text-reveal .text-inn {
    opacity: 1;
    transform: none;
    transition: none;
  }

}

@media (prefers-reduced-motion: reduce) {

  .sd-shell * {
    scroll-behavior: auto !important;
    transition: none !important;
  }

}

/* ==========================================================================
   01 共通パーツ（本文・ボタン・注意事項）
   各キャンペーンで共用する基本パーツ。固有の調整は該当キャンペーンの章に記載。
   ========================================================================== */

.stday-section {
  scroll-margin-top: 20px;
  margin: 0 auto 100px;
  width: 100%;
}

.stday-card {
  overflow: hidden;
  background: #fff;
}

.stday-copy {
  padding: 32px 20px 12px;
  text-align: center;
}

.stday-copy h2 {
  margin: 0 0 18px;
  font-size: max(14px, 1.375rem);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .04em;
}

.stday-copy>p {
  margin: 0 auto 18px;
  max-width: 720px;
  font-size: max(14px, 0.9375rem) !important;
  line-height: 1.9;
}

.stday-eyebrow {
  margin: 0 0 8px !important;
  color: #3a5967;
  font-size: max(14px, 0.875rem);
  font-weight: 800;
  letter-spacing: .14em;
}

.stday-details {
  width: min(100%, 680px);
  margin: 26px auto;
  text-align: left;
}

.stday-details div {
  display: grid;
  grid-template-columns: 120px 1fr;
  border-top: 1px solid var(--line);
  padding: 13px 0;
}

.stday-details div:last-child {
  border-bottom: 1px solid var(--line);
}

.stday-details dt {
  font-size: max(14px, 1.0rem);
  font-weight: 800;
}

.stday-details dd {
  font-size: max(14px, 0.9rem);
  margin: 0;
}

.stday-details small {
  color: #666;
  font-size: max(14px, 0.9rem);
}

.stday-highlight {
  margin: 30px auto;
  padding: 22px;
  border-top: 1px solid var(--sd-primary);
  border-bottom: 1px solid var(--sd-primary);
  font-size: max(14px, 1rem);
  line-height: 1.8;
}

.stday-highlight p {
  margin: 0;
}

.stday-highlight strong {
  color: #765d63;
  font-size: max(14px, 1.125rem);
}

.stday-button {
  display: block;
  width: min(100%, 480px);
  margin: 22px auto 0;
  padding: 16px 28px;
  border: 2px solid #765d63 !important;
  background: #765d63 !important;
  color: #fff;
  font-size: max(14px, 0.875rem);
  font-weight: 700;
  letter-spacing: .06em;
  text-align: center;
  transition: .25s;
}

.stday-button:hover {
  opacity: .82;
  transform: translateY(-2px);
}

.stday-button--sub {
  margin-top: 10px;
  background: #fff;
  color: var(--sd-primary);
}

.stday-accordion {
  margin: 28px auto;
  width: min(100%, 680px);
  border-top: 1px solid var(--sd-primary);
  border-bottom: 1px solid var(--sd-primary);
  text-align: left;
}

.stday-accordion summary {
  position: relative;
  padding: 17px 46px 17px 14px;
  cursor: pointer;
  font-size: max(14px, 0.875rem);
  font-weight: 800;
  list-style: none;
}

.stday-accordion summary::-webkit-details-marker {
  display: none;
}

.stday-accordion summary::after {
  content: "＋";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: max(14px, 1.1rem);
  font-weight: 400;
}

.stday-accordion[open] summary::after {
  content: "−";
}

.stday-accordion>div {
  padding: 0 14px 18px;
  color: #555;
  font-size: 14px;
  line-height: 1.75;
}

.stday-accordion p {
  margin: 0 0 8px;
  font-size: 14px;
}

.stday-text-link {
  font-size: max(14px, 0.9rem);
  font-weight: 800;
  text-decoration: underline;
}

#shop .stday-copy {
  padding-bottom: 0;
}

.stday-footer .stday-copy {
  padding-top: 0;
  padding-bottom: 0;
}

.sd-shell .stday-eyebrow {
  color: var(--sd-accent);
  letter-spacing: .04em;
}

.sd-shell .stday-section {
  margin-bottom: 56px;
}

.sd-shell .stday-copy {
  padding-bottom: 28px;
}

.sd-shell .stday-accordion li+li {
  margin-top: 8px;
}

.sd-shell .stday-accordion a:not(.stday-button) {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sd-channel-panel .stday-section {
  margin-bottom: 24px;
}

.sd-shell .stday-button {
  border-color: var(--sd-accent);
  background: var(--sd-accent);
  color: #fff;
}

.sd-shell .stday-button--sub {
  background: transparent;
  color: var(--sd-accent);
}

.sd-shell .stday-highlight strong {
  color: var(--sd-accent);
}

.sd-shell .stday-card {
  background: var(--sd-card);
  background-color: #fff;
}

.sd-shell .sd-scroll-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .75s ease, transform .85s cubic-bezier(.22, 1, .36, 1);
}

.sd-shell .sd-scroll-reveal.is-sd-visible {
  opacity: 1;
  transform: translateY(0);
}

.sd-shell .stday-section.stday-card {
  display: block;
  width: 100%;
  margin: 0 0 48px;
  background: #fff;
  border: 0;
}

.sd-shell .sd-channel-panel .stday-section.stday-card {
  margin-bottom: 40px;
}

.sd-shell .stday-card>.stday-copy {
  display: block;
  padding: 28px 22px 20px;
  background: #fff;
  text-align: center;
}

.sd-shell .stday-copy h2 {
  font-size: 21px;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: .04em;
}

.sd-shell .stday-copy>p {
  font-size: 14px !important;
  line-height: 2;
}

.sd-shell .stday-copy>.stday-eyebrow {
  font-size: 14px !important;
  letter-spacing: .06em;
}

.sd-shell .stday-details div {
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 12px 0;
}

.sd-shell .stday-details dd,
.sd-shell .stday-details dt {
  font-size: 14px;
  line-height: 1.9;
}

.sd-shell .stday-details small {
  font-size: 14px;
}

.sd-shell .stday-accordion>div {
  padding: 16px 14px 18px;
  overflow-wrap: anywhere;
  background-color: #fff;
  font-size: 14px;
  line-height: 1.9;
}

.sd-shell .stday-copy .stday-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 14px;
  padding: 16px 20px;
  border: 1px solid var(--sd-accent) !important;
  background: var(--sd-accent) !important;
  color: #fff;
}

.sd-shell .stday-footer .stday-button {
  justify-content: center;
}

.sd-shell .stday-copy .stday-button:hover {
  background: #e7eeeb !important;
  color: var(--sd-accent);
  opacity: 1;
}

.sd-plan-a .stday-copy h3 {
  margin: 0 0 18px;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .04em;
}

.sd-plan-a .stday-copy {
  overflow-wrap: anywhere;
}

.sd-shell #campaigns .stday-card,
.sd-shell #campaigns .stday-copy,
.sd-shell #campaigns .stday-accordion,
.sd-shell #campaigns .stday-accordion>div {
  background-color: #FFFFFF !important;
}

.sd-shell #campaigns .sd-channel-panel>.stday-card:last-child {
  margin-bottom: 0;
}

.sd-shell .stday-accordion {
  border-color: var(--sd-border);
  background-color: #fff;
  margin: 24px auto 8px;
  border: 1px solid var(--sd-notice-border);
  border-radius: 6px;
  overflow: hidden;
}

.sd-shell .stday-accordion summary {
  background: var(--sd-soft);
  font-size: 14px;
  min-height: 56px;
  padding: 17px 56px 17px 16px;
  background-color: var(--sd-notice-bg) !important;
  color: var(--sd-notice-ink);
  font-weight: 700;
  line-height: 1.6;
}

.sd-shell .stday-accordion summary::after {
  content: "＋";
  display: grid;
  place-items: center;
  right: 14px;
  width: 28px;
  height: 28px;
  border: 1px solid var(--sd-notice-border);
  border-radius: 50%;
  background: #fff;
  color: var(--sd-notice-ink);
  font-size: 18px;
  line-height: 1;
}

.sd-shell .stday-accordion[open] summary {
  border-bottom: 1px solid var(--sd-notice-border);
}

.sd-shell .stday-accordion[open] summary::after {
  content: "−";
}

.sd-shell .stday-accordion summary:focus-visible {
  outline: 2px solid var(--sd-notice-ink);
  outline-offset: -4px;
}

.sd-shell a.stday-button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 9px;
  height: 9px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;
}

.sd-shell a.stday-button>span[aria-hidden="true"] {
  display: none;
}

.sd-shell a.stday-button:focus-visible {
  outline: 2px solid var(--sd-accent);
  outline-offset: 4px;
}

.sd-shell a.stday-button,
.sd-shell .stday-copy a.stday-button,
.sd-shell .stday-footer a.stday-button {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 56px;
  padding: 16px 48px;
  border-radius: 6px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none;
  cursor: pointer;
  justify-content: center;
  padding-left: 48px;
  padding-right: 48px;
  border: 1px solid var(--sd-accent) !important;
  background: var(--sd-stripe-base) !important;
  color: var(--sd-accent);
  box-shadow: none;
  text-align: center;
}

.sd-shell a.stday-button:hover,
.sd-shell .stday-copy a.stday-button:hover,
.sd-shell a.stday-button:active {
  background: #bdc8ce !important;
  color: var(--sd-accent);
  box-shadow: none;
  transform: none;
  opacity: 1;
}

.sd-shell .stday-accordion.sd-has-animated-icon summary::after {
  content: none;
}

.sd-shell .sd-accordion-icon {
  position: absolute;
  top: 50%;
  right: 14px;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
  border: 1px solid var(--sd-notice-border);
  border-radius: 50%;
  background: #fff;
  color: var(--sd-notice-ink);
  pointer-events: none;
}

.sd-shell .sd-accordion-icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1.5px;
  background: currentColor;
  transform: translate(-50%, -50%);
}

.sd-shell .sd-accordion-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1.5px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 1;
  transition: transform .3s ease, opacity .3s ease;
}

.sd-shell .stday-accordion[data-sd-icon-open="true"] .sd-accordion-icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
  opacity: 0;
}

@media (max-width:767px) {

  .stday-section {
    width: calc(100% - 0px);
    margin-bottom: 72px;
  }

  .stday-copy {
    padding: 26px 16px 8px;
  }

  .stday-copy h2 {
    font-size: max(14px, 1.25rem);
  }

  .stday-copy>p {
    font-size: max(14px, 0.875rem) !important;
  }

  .stday-details div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .stday-details dt,
  .stday-details dd {
    font-size: 14px;
  }

  .stday-highlight {
    padding: 18px 8px;
    font-size: max(14px, 0.9375rem);
  }

  .stday-highlight strong {
    font-size: max(14px, 1.0625rem);
  }

}

@media (hover: hover) {

  .sd-shell .stday-accordion summary:hover {
    background-color: var(--sd-notice-hover) !important;
  }

}

@media (prefers-reduced-motion: reduce) {

  .sd-shell .sd-scroll-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .sd-shell .sd-accordion-icon::after {
    transition: none;
  }

}

@media print {

  .sd-shell .sd-scroll-reveal {
    opacity: 1;
    transform: none;
  }

}

/* ==========================================================================
   02 FVバナー
   タイトルバナーのサイズ・表示方法。
   ========================================================================== */

.stday-kv img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.sd-kv {
  padding: 48px 18px 40px;
  text-align: center;
  border-bottom: 1px solid var(--sd-border);
  background: #fff;
}

.sd-kv__date {
  font-size: 14px;
  letter-spacing: .2em;
}

.sd-mark {
  display: flex;
  justify-content: center;
  gap: 17px;
  margin: 28px 0 22px;
}

.sd-mark i {
  width: 13px;
  height: 82px;
  background: var(--sd-accent);
}

.sd-kv h1 {
  font-size: clamp(38px, 10vw, 58px);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1.1;
}

.sd-kv h1 span {
  font-weight: 400;
}

.sd-kv__sub {
  margin-top: 20px;
  font-size: 14px;
  letter-spacing: .08em;
}

.sd-kv__period {
  margin-top: 26px;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .08em;
}

.sd-shell .sd-kv--banner {
  padding: 0;
  border-bottom: 0;
  background: transparent;
}

.sd-shell .sd-kv--banner h1 {
  margin: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
}

.sd-shell .sd-kv--banner img {
  display: block;
  width: 100%;
  height: auto;
}

.sd-shell .sd-kv {
  background-color: #fff;
}

.sd-plan-a .sd-kv.sd-scroll-reveal {
  transform: none;
}

@media (max-width:767px) {

  .stday-kv img {
    object-fit: contain;
  }

}

/* ==========================================================================
   03 リード文・開催期間
   リード文・日付表示。狭い画面向けの指定は本章の後半。
   ========================================================================== */

.stday-lead {
  padding: 58px 24px 46px;
  text-align: center;
  line-height: 2;
}

.stday-lead p {
  margin: 0;
  font-size: max(14px, 0.9375rem);
}

.stday-kicker {
  margin-bottom: 10px !important;
  font-size: max(14px, 1.25rem) !important;
  font-weight: 800;
  letter-spacing: .06em;
}

.stday-kicker h2 {
  color: var(--sd-highlight) !important;
}

.sd-shell .stday-kicker h2 {
  color: var(--sd-accent) !important;
}

.sd-shell .sd-main-period {
  margin-top: 24px;
  font-size: 14px;
  font-weight: 700;
}

.sd-shell .sd-note {
  margin-top: 12px;
  font-size: 14px !important;
  line-height: 1.8;
  color: var(--sd-muted);
}

.sd-shell .stday-lead {
  background-color: #fff;
}

.sd-shell .sd-lead-special {
  padding: 36px 18px 38px;
  text-align: center;
  background: #fff;
  line-height: 1.8;
}

.sd-shell .sd-lead-special__heading {
  margin: 0 0 36px !important;
  font-size: 20px !important;
  letter-spacing: 0;
}

.sd-shell .sd-lead-special__heading .sd-lead-special__english {
  font-family: Arial, "Noto Sans JP", Meiryo, sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 4px !important;
  color: #3e4345;
  letter-spacing: -.02em;
}

.sd-shell .sd-lead-special__heading h2 {
  font-size: 20px;
  line-height: 1.65;
  font-weight: 700;
  letter-spacing: 0;
  color: #3e4345 !important;
  margin: 0;
}

.sd-shell .sd-lead-special .sd-lead-special__body {
  font-size: 14px;
  line-height: 1.8;
  font-weight: 400;
  letter-spacing: 0;
  margin: 0;
  color: #3e4345;
}

.sd-shell .sd-lead-special__period {
  margin: 27px auto 0;
  width: 100%;
  max-width: 420px;
  font-weight: 400;
}

.sd-shell .sd-lead-special .sd-lead-special__year {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 2px;
  font-weight: 400;
}

.sd-shell .sd-lead-special__dates {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 23px;
  white-space: nowrap;
  color: #080808;
}

.sd-shell .sd-lead-special__dates>span {
  display: flex;
  align-items: baseline;
  gap: 11px;
}

.sd-shell .sd-lead-special__dates strong {
  font-family: Arial, sans-serif;
  font-size: 36px;
  line-height: 1.3;
  letter-spacing: .01em;
  font-weight: 400;
}

.sd-shell .sd-lead-special__dates small {
  font-family: Arial, sans-serif;
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
}

.sd-shell .sd-lead-special__dates i {
  display: block;
  flex: 0 0 39px;
  height: 1px;
  background: #777;
}

.sd-shell .sd-lead-special .sd-lead-special__time {
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  margin: 12px 0 0;
  font-weight: 400;
  color: #3e4345;
}

.sd-shell .sd-lead-special .sd-note {
  font-size: 14px !important;
  margin: 4px 0 0;
  line-height: 1.8;
  color: #3e4345;
}

@media (max-width:767px) {

  .stday-lead {
    padding: 40px 22px 34px;
    line-height: 1.9;
  }

  .stday-lead p {
    font-size: max(14px, 0.875rem);
  }

  .stday-kicker {
    font-size: max(14px, 1.125rem) !important;
  }

}

@media (max-width:420px) {

  .sd-shell .sd-lead-special {
    padding-left: 12px;
    padding-right: 12px;
  }

  .sd-shell .sd-lead-special .sd-lead-special__body {
    font-size: 14px;
  }

  .sd-shell .sd-lead-special__dates {
    gap: 14px;
  }

  .sd-shell .sd-lead-special__dates>span {
    gap: 8px;
  }

  .sd-shell .sd-lead-special__dates strong {
    font-size: 32px;
  }

  .sd-shell .sd-lead-special__dates small {
    font-size: 14px;
  }

  .sd-shell .sd-lead-special__dates i {
    flex-basis: 28px;
  }

}

@media (max-width:340px) {

  .sd-shell .sd-lead-special__dates {
    gap: 10px;
  }

  .sd-shell .sd-lead-special__dates strong {
    font-size: 29px;
  }

  .sd-shell .sd-lead-special__dates>span {
    gap: 5px;
  }

}

/* ==========================================================================
   04 ページ内アンカー
   ページ上部のコンテンツ案内とページ内リンク。
   ========================================================================== */

.stday-anchor {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  padding: 0 18px 70px;
}

.stday-anchor a {
  display: grid;
  place-items: center;
  min-height: 78px;
  padding: 12px 8px;
  border: 1px solid var(--sd-primary);
  background: #fff;
  font-size: max(14px, 0.875rem);
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  transition: .25s;
}

.stday-anchor a:hover {
  background: var(--sd-primary);
  color: #fff;
  transform: translateY(-2px);
}

.stday-anchor>.js-reveal:nth-child(1),
.stday-anchor>.js-reveal:nth-child(2) {
  transition-delay: 0s;
}

.stday-anchor>.js-reveal:nth-child(3),
.stday-anchor>.js-reveal:nth-child(4) {
  transition-delay: .12s;
}

.stday-anchor>.js-reveal:nth-child(5),
.stday-anchor>.js-reveal:nth-child(6) {
  transition-delay: .24s;
}

.stday-anchor>.js-reveal:nth-child(7),
.stday-anchor>.js-reveal:nth-child(8) {
  transition-delay: .36s;
}

.sd-shell .stday-anchor a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-color: var(--sd-border);
  border-radius: 2px;
}

.sd-shell .stday-anchor a small {
  font-size: 14px;
  letter-spacing: .12em;
}

.sd-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 0 18px 38px;
}

.sd-overview a {
  padding: 16px 8px;
  background: #fff;
  border: 1px solid var(--sd-border);
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

.sd-overview small {
  display: block;
  font-size: 14px;
  margin-bottom: 5px;
  color: var(--sd-muted);
}

.sd-overview a[data-channel="web"] {
  border-top: 3px solid var(--sd-web);
}

.sd-overview a[data-channel="shop"] {
  border-top: 3px solid var(--sd-shop);
}

.sd-panel-nav {
  display: grid;
  gap: 8px;
  padding: 0 18px 24px;
}

.sd-panel-nav a {
  display: block;
  background: #fff;
  padding: 13px 30px 13px 14px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  border: 1px solid var(--sd-border);
  position: relative;
}

.sd-panel-nav a::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 15px;
}

.sd-panel-nav small {
  display: block;
  font-size: 14px;
  font-weight: 400;
  margin-top: 4px;
  color: var(--sd-muted);
}

.sd-shell .stday-anchor a:hover {
  background: var(--sd-accent);
  color: #fff;
}

.sd-shell .sd-panel-nav a:hover {
  background: var(--sd-web-surface);
}

.sd-shell .sd-panel-nav a::after {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  top: 50%;
  right: 16px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

.sd-shell .sd-overview a:after {
  content: "";
  position: absolute;
  bottom: 11px;
  left: calc(50% - 3px);
  width: 6px;
  height: 6px;
  border-right: 1px solid;
  border-bottom: 1px solid;
  transform: rotate(45deg);
}

.sd-shell .sd-overview a[href="#common-campaigns"] {
  grid-column: 1 / -1;
}

.sd-shell .sd-overview a:hover,
.sd-shell .sd-overview a:focus-visible {
  background: #dce4e8;
  border-color: var(--sd-accent);
}

.sd-shell .sd-overview small {
  margin-bottom: 2px;
  line-height: 1.4;
}

.sd-shell .sd-overview {
  padding-bottom: 42px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-left: 10px;
  padding-right: 10px;
  gap: 8px;
}

.sd-shell .sd-overview a {
  border: 1px solid #94a6af;
  border-radius: 4px;
  background: var(--sd-web-surface, #e9edf0);
  color: var(--sd-accent);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
  position: relative;
  min-width: 0;
  /* 14px・行高21pxの2行分と上下余白を確保 */
  height: 64px;
  min-height: 64px;
  max-height: 64px;
  padding: 10px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: nowrap;
  text-align: center;
}

.sd-shell .sd-overview a small {
  color: #53636b;
  font-weight: 400;
  display: block;
  margin-bottom: 2px;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: nowrap;
}

.sd-shell .sd-overview a::before {
  content: "";
  position: absolute;
  border-radius: 50%;
  background: var(--sd-accent);
  pointer-events: none;
  top: 50%;
  bottom: auto;
  left: auto;
  right: 7px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
}

.sd-shell .sd-overview a::after {
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  pointer-events: none;
  top: 50%;
  bottom: auto;
  left: auto;
  right: 12px;
  width: 6px;
  height: 6px;
  transform: translateY(-70%) rotate(45deg);
}

@media (max-width:767px) {

  .stday-anchor {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 10px 55px;
  }

  .stday-anchor a {
    min-height: 68px;
    font-size: 14px;
  }

}

@media (max-width: 340px) {

  .sd-shell .sd-overview a {
    font-size: 14px;
  }

  .sd-shell .sd-overview a small {
    font-size: 14px;
  }

}

@media (prefers-reduced-motion: reduce) {

  .sd-shell .sd-overview a {
    transition: none;
  }

}

/* ==========================================================================
   05 共通キャンペーン・ポイント2倍
   店舗・オンライン共通キャンペーンとPOINT ×2。
   ========================================================================== */

.sd-shell #common-campaigns {
  --sd-section-bg: var(--sd-bg-common);
  display: flow-root;
  margin-bottom: 0;
  padding-top: 32px;
  padding-bottom: 48px;
  background-color: #FAF9F5 !important;
}

.sd-shell #common-campaigns .stday-card,
.sd-shell #common-campaigns .stday-copy,
.sd-shell #common-campaigns .sd-group-heading,
.sd-shell #common-campaigns .sd-feature-heading,
.sd-shell #common-campaigns .stday-heading,
.sd-shell #common-campaigns .sd-benefit,
.sd-shell #common-campaigns .sd-channel-panel,
.sd-shell #common-campaigns .sd-brand-slot,
.sd-shell #common-campaigns .sd-brand-card__banner,
.sd-shell #common-campaigns .sd-brand-card__logo,
.sd-shell #common-campaigns .stday-accordion,
.sd-shell #common-campaigns .stday-accordion>div {
  background-color: #FAF9F5 !important;
}

.sd-shell #common-campaigns>.stday-card {
  margin-bottom: 0;
}

.sd-shell #double-point .stday-eyebrow {
  display: table;
  margin: 0 auto 14px !important;
  max-width: 100%;
  text-align: center;
  padding: 5px 12px;
  border-radius: 24px;
  background: #E2E2E2;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.sd-shell #double-point .sd-double-point-heading {
  margin-bottom: 20px;
  text-align: center;
}

.sd-shell #double-point .sd-double-point-heading__target {
  margin: 0 0 8px;
  color: var(--sd-ink, #333);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.sd-shell #double-point .sd-double-point-heading__value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
}

.sd-shell #double-point .sd-double-point-heading__value span {
  font-family: Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
  color: var(--sd-ink, #333);
}

.sd-shell #double-point .sd-double-point-heading__value strong {
  font-family: Arial, sans-serif;
  font-size: clamp(64px, 18vw, 84px);
  font-weight: 700;
  color: #9f176c;
  line-height: 1;
}

/* ==========================================================================
   06 オンライン／店舗タブ
   通常／選択中／ホバー／フォーカスを同じ章に集約。
   ========================================================================== */

.sd-channel-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 0 12px;
}

.sd-channel-tabs button {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  padding: 17px 6px;
  border: 1px solid var(--sd-border);
  border-bottom: 4px solid transparent;
  border-radius: 6px 6px 0 0;
  background: #fff;
  color: var(--sd-muted);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
}

.sd-channel-tabs button span {
  display: block;
  font-size: 14px;
  letter-spacing: .15em;
}

.sd-channel-tabs button small {
  display: block;
  font-size: 14px;
  font-weight: 400;
  margin-top: 5px;
}

.sd-channel-tabs button[aria-selected="true"][data-channel="web"] {
  background: #304061;
  border-color: #304061;
  color: #fff;
}

.sd-channel-tabs button[aria-selected="true"][data-channel="shop"] {
  background: #655A7C;
  border-color: #655A7C;
  color: #fff;
}

.sd-channel-tabs button:focus-visible {
  outline: 3px solid var(--sd-accent);
  outline-offset: 2px;
}

.sd-shell .sd-channel-tabs button {
  min-height: 44px;
  padding: 9px 8px;
  font-size: 15px;
  line-height: 1.4;
}

.sd-plan-a .sd-channel-tabs {
  gap: 6px;
  padding: 0 18px;
  border-bottom: 1px solid var(--sd-border);
}

.sd-plan-a .sd-channel-tabs button {
  min-height: 46px;
  padding: 12px 8px;
  border-radius: 0;
  border-bottom: 0;
  font-size: 14px;
  line-height: 1.5;
}

.sd-plan-a .sd-channel-tabs button[aria-selected="true"] {
  font-weight: 700;
}

.sd-shell #campaigns .sd-channel-tabs {
  --sd-tab-active: #304061;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  align-items: stretch;
  margin: 0;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid #b8b8b8;
  border-radius: 0;
  background: #fff;
}

.sd-shell #campaigns .sd-channel-tabs:has(button[data-channel="shop"][aria-selected="true"]) {
  --sd-tab-active: #655a7c;
}

.sd-shell #campaigns .sd-channel-tabs button {
  min-width: 0;
  min-height: 46px;
  margin: 0 0 -1px;
  padding: 12px 6px;
  position: relative;
  border: 1px solid #b8b8b8;
  border-radius: 4px 4px 0 0;
  background: #f5f5f5;
  color: #606975;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  box-shadow: none;
  clip-path: none;
  transition: background-color .2s ease, color .2s ease;
}

.sd-shell #campaigns .sd-channel-tabs button[aria-selected="true"][data-channel="web"],
.sd-shell #campaigns .sd-channel-tabs button[aria-selected="true"][data-channel="shop"] {
  background: #fff;
  border-color: #b8b8b8;
  border-bottom-color: #fff;
  box-shadow: none;
  z-index: 1;
  color: var(--sd-tab-active);
}

.sd-shell #campaigns .sd-channel-tabs button::after {
  content: none;
}

.sd-shell #campaigns .sd-channel-tabs button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -4px;
}

@media (max-width: 360px) {

  .sd-shell #campaigns .sd-channel-tabs button {
    font-size: 14px;
  }

}

@media (hover: hover) {

  .sd-shell #campaigns .sd-channel-tabs button[aria-selected="false"]:hover {
    background: #edf0f4;
  }

}

@media (prefers-reduced-motion: reduce) {

  .sd-shell #campaigns .sd-channel-tabs button {
    transition: none;
  }

}

/* ==========================================================================
   07 オンライン限定・送料無料・ポイント・クーポン
   オンライン限定、共通フェア、送料無料、＋111ポイント、クーポン。
   ========================================================================== */

.sd-benefit {
  padding: 28px 12px 34px;
  text-align: center;
  background: var(--sd-web-surface);
  color: var(--sd-accent);
}

.sd-benefit>p {
  font-size: 14px;
  letter-spacing: .16em;
  margin-bottom: 20px;
}

.sd-benefit>div {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .06em;
}

.sd-benefit span {
  display: block;
  margin-top: 8px;
  font-size: clamp(28px, 8vw, 44px);
  line-height: 1.25;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
}

.sd-benefit small {
  font-size: max(14px, .45em);
  margin-left: 6px;
}

.sd-group-heading {
  padding: 28px 18px 24px;
  text-align: center;
}

.sd-group-heading p {
  font-size: 14px;
  letter-spacing: .15em;
  font-weight: 700;
  margin-bottom: 8px;
}

.sd-group-heading h2,
.sd-channel-intro h2 {
  font-size: 21px;
  font-weight: 700;
  line-height: 1.5;
}

.sd-group-heading span {
  display: block;
  margin-top: 8px;
  font-size: 14px;
}

.sd-group-heading--common {
  padding-top: 0;
}

.sd-channel-area {
  margin: 0 0 20px;
}

.sd-channel-intro {
  text-align: center;
  padding: 0 18px 20px;
}

.sd-channel-intro p {
  font-size: 14px;
  margin-bottom: 8px;
}

.sd-channel-panel {
  background: var(--sd-web-surface);
  padding-bottom: 24px;
  border-top: 4px solid var(--sd-web);
  scroll-margin-top: 24px;
}

.sd-switch-link {
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  padding: 16px 8px;
  margin: 0 18px;
  border: 1px solid currentColor;
  background: #fff;
}

.sd-shell .sd-switch-link:hover {
  background: var(--sd-web-surface);
}

.sd-shell .sd-benefit,
.sd-shell .sd-channel-intro {
  background-color: #fff;
}

.sd-shell .sd-benefit--banner {
  padding: 0;
  background: #fff;
}

.sd-shell .sd-benefit--banner img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sd-shell .sd-channel-panel {
  background-color: #fff;
  padding-top: 0;
  border-top: 1px solid var(--sd-border);
}

.sd-shell .sd-group-heading {
  background-color: #fff;
  padding: 32px 20px 27px;
}

.sd-shell .sd-group-heading--common {
  padding-top: 5px;
}

.sd-shell .sd-group-heading p {
  font-weight: 500;
  letter-spacing: .16em;
}

.sd-shell .sd-group-heading h2 {
  font-size: 20px;
  line-height: 1.6;
}

.sd-shell .sd-switch-link {
  font-weight: 500;
  margin-bottom: 30px;
}

.sd-shell .sd-channel-area {
  background-color: #fff;
  margin-bottom: 10px;
}

.sd-shell .sd-benefits-summary {
  margin: 0 18px 40px;
  border: 1px solid var(--sd-border);
  padding: 24px 18px 10px;
  text-align: center;
  background: #fff;
}

.sd-shell .sd-benefits-summary>h2 {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 18px;
}

.sd-shell .sd-benefits-summary>a {
  display: grid;
  grid-template-columns: 1fr auto;
  position: relative;
  padding: 15px 20px 15px 0;
  border-top: 1px solid var(--sd-border);
  text-align: left;
  font-size: 14px;
}

.sd-shell .sd-benefits-summary small {
  grid-column: 1;
  font-size: 14px;
  color: var(--sd-muted);
}

.sd-shell .sd-benefits-summary strong {
  grid-column: 1;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
}

.sd-shell .sd-benefits-summary em {
  grid-column: 1;
  font-size: 14px;
  font-style: normal;
  line-height: 1.8;
}

.sd-shell .sd-benefits-summary span {
  position: absolute;
  right: 0;
  top: 35px;
}

.sd-plan-a .sd-channel-panel {
  border: 0;
  padding-bottom: 0;
}

.sd-plan-a .sd-channel-area {
  margin-bottom: 10px;
}

.sd-plan-a #web-campaigns {
  padding-top: 0;
  border-top: 0;
}

.sd-shell #campaigns .sd-group-heading,
.sd-shell #campaigns .sd-benefit,
.sd-shell #campaigns .sd-channel-panel {
  background-color: #FFFFFF !important;
}

.sd-shell #campaigns .sd-online-fair,
.sd-shell #campaigns #coupon {
  width: 100%;
  /* オンライン限定の最終カード：外枠との余白の重複を防ぐ */
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.sd-shell .sd-online-fair__heading {
  padding: 24px 4px 22px;
  text-align: center;
  color: var(--sd-accent);
}

.sd-shell .sd-online-fair__heading p {
  margin: 0 0 8px;
  font-size: 14px;
  letter-spacing: .04em;
}

.sd-shell .sd-online-fair__heading h2 {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}

.sd-shell .sd-online-fair__heading span {
  display: block;
  margin-top: 6px;
  font-size: 14px;
}

.sd-shell #campaigns .sd-online-fair>.sd-fair-item {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #fff;
}

.sd-shell #campaigns .sd-online-fair>.sd-fair-item+.sd-fair-item {
  padding-top: 24px;
}

.sd-shell .sd-online-fair .stday-copy,
.sd-shell #coupon .stday-copy {
  padding: 24px 0;
  margin: 0 24px;
  border-bottom: 1px solid var(--sd-border);
  text-align: center;
}

/* ＋111ポイントの注意事項後・1,000円OFFクーポンのボタン後の区切り線を非表示 */
.sd-shell .sd-online-fair>.sd-fair-item:last-child .stday-copy,
.sd-shell #coupon .stday-copy {
  border-bottom: 0;
}

.sd-shell .sd-online-fair .stday-eyebrow,
.sd-shell #coupon .stday-eyebrow,
.sd-shell .sd-pickup-section .stday-eyebrow {
  display: table;
  margin: 0 auto 14px !important;
  max-width: 100%;
  text-align: center;
  padding: 5px 12px;
  border-radius: 24px;
  background: #E2E2E2;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.sd-shell .sd-online-fair .stday-copy h2,
.sd-shell #coupon .stday-copy h2 {
  color: #333;
  font-size: 24px;
}

.sd-shell .sd-online-fair .stday-details,
.sd-shell .sd-online-fair .stday-accordion {
  text-align: left;
}

.sd-shell #campaigns .sd-online-fair .sd-online-fair__banner {
  padding: 0;
}

.sd-shell .sd-online-fair__banner img {
  display: block;
  width: 100%;
  height: auto;
}

.sd-shell #campaigns .sd-online-fair>.sd-fair-item:last-child {
  margin-bottom: 24px;
}

.sd-shell #campaigns #coupon>.sd-benefit--banner {
  padding: 0;
}

.sd-shell #coupon .stday-details {
  text-align: left;
}

.sd-shell #coupon>.stday-copy {
  margin-bottom: 24px;
}

@media (max-width: 767px) {

  .sd-shell .sd-online-fair .stday-copy,
  .sd-shell #coupon .stday-copy {
    margin-left: 16px;
    margin-right: 16px;
  }

}

/* ==========================================================================
   08 店舗限定・WAON
   店舗限定、衣料品回収、WAONキャンペーン。
   ========================================================================== */

.sd-channel-panel[data-channel-panel="shop"] {
  background: var(--sd-shop-surface);
  border-color: var(--sd-shop);
}

.sd-channel-panel[data-channel-panel="shop"] .stday-eyebrow {
  color: var(--sd-shop);
}

.sd-shell [data-channel-panel="shop"] .sd-panel-nav a:hover,
.sd-shell [data-channel-panel="shop"] .sd-switch-link:hover {
  background: var(--sd-shop-surface);
}

.sd-shell #waon {
  scroll-margin-top: 24px;
  border-top: 12px solid var(--sd-shop-surface);
  border-top-color: #fff;
}

.sd-shell .sd-channel-panel[data-channel-panel="shop"] {
  background-color: #fff;
  border-top-color: var(--sd-border);
}

.sd-shell #waon.stday-card {
  border-top: 0;
  scroll-margin-top: var(--sd-anchor-offset);
}

.sd-plan-a #shop-campaigns {
  padding-top: 0;
  border-top: 0;
}

.sd-plan-a #shop-campaigns .sd-group-heading>p {
  display: none;
}

.sd-shell #shop-campaigns .stday-eyebrow {
  display: table;
  margin: 0 auto 14px !important;
  max-width: 100%;
  text-align: center;
  padding: 5px 12px;
  border-radius: 24px;
  background: #E2E2E2;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

/* ==========================================================================
   09 注目コンテンツ
   アウター・適ONなど、サイト特集の表示。
   ========================================================================== */

.stday-heading h2 {
  margin: 0 0 18px;
  font-size: max(14px, 1.375rem);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .04em;
}

.stday-heading p {
  margin: 0 0 8px !important;
  color: #3a5967;
  font-size: max(14px, 0.875rem);
  font-weight: 800;
  letter-spacing: .14em;
}

.stday-trend {
  text-align: center;
}

.stday-heading {
  margin-bottom: 20px;
}

.stday-intro {
  margin: 0 auto 18px;
  max-width: 720px;
  font-size: max(14px, 0.9375rem) !important;
  line-height: 1.9;
  padding: 0 14px;
}

.stday-keywords {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  margin: 34px 10px 0px;
}

.stday-keywords a {
  grid-column: span 2;
  min-width: 0;
}

.stday-keywords a:nth-child(4) {
  grid-column: 2 / span 2;
}

.stday-keyword-img {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  background: #f3f3f3;
  transition: transform .25s ease;
}

.stday-keyword-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
  will-change: opacity;
}

.stday-keyword-img img.is-active {
  opacity: 1;
}

.stday-keywords a:hover .stday-keyword-img {
  transform: scale(1.04);
}

.stday-keywords strong {
  display: block;
  margin-top: 12px;
  font-size: max(14px, 0.875rem);
  line-height: 1.45;
}

.stday-keywords>.js-reveal:nth-child(1),
.stday-keywords>.js-reveal:nth-child(2),
.stday-keywords>.js-reveal:nth-child(3) {
  transition-delay: 0s;
}

.stday-keywords>.js-reveal:nth-child(4),
.stday-keywords>.js-reveal:nth-child(5) {
  transition-delay: .12s;
}

.sd-shell .stday-heading p {
  color: var(--sd-accent);
}

.sd-shell .sd-outer-card .sd-group-heading h2 {
  font-size: 19px;
}

.sd-shell .sd-outer-card .stday-copy {
  padding-bottom: 28px;
}

.sd-shell .sd-outer-card .sd-benefit {
  padding: 0 18px;
}

.sd-shell.sd-plan-b .sd-outer-card .sd-benefit {
  padding: 0;
}

.sd-shell.sd-plan-b .sd-outer-card .stday-copy {
  padding-top: 32px;
}

.sd-shell .sd-pickup-placeholder {
  margin: 0 18px;
  background: #edf0ec;
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 46px;
  letter-spacing: .08em;
  color: var(--sd-accent);
}

.sd-shell .sd-pickup-placeholder span {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 50px;
  letter-spacing: 0;
  margin-left: 8px;
}

.sd-shell .sd-pickup-placeholder small {
  font-family: Arial, sans-serif;
  position: absolute;
  bottom: 19px;
  font-size: 14px;
  letter-spacing: .16em;
}

.sd-shell .stday-heading,
.sd-shell .stday-intro {
  text-align: center;
}

.sd-plan-a .sd-feature-heading {
  padding: 0 20px 24px;
  text-align: center;
}

.sd-plan-a .sd-feature-heading p {
  margin: 0 0 6px;
  font-size: 14px;
  letter-spacing: .12em;
}

.sd-plan-a .sd-feature-heading h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.sd-plan-a .sd-pickup-section>.stday-heading {
  margin-bottom: 36px;
  padding: 0 20px;
}

.sd-plan-a .sd-pickup-section .sd-benefit {
  padding: 0;
}

.sd-plan-a .sd-pickup-section .stday-card {
  margin-bottom: 60px;
}

.sd-shell #campaigns .sd-feature-heading,
.sd-shell #campaigns .stday-heading {
  background-color: #FFFFFF !important;
}

.sd-shell #pickup {
  --sd-section-bg: var(--sd-bg-pickup);
  display: flow-root;
  margin-bottom: 0;
  padding-top: 32px;
  padding-bottom: 48px;
  background-color: #FAF9F5 !important;
}

.sd-shell #pickup .stday-card,
.sd-shell #pickup .stday-copy,
.sd-shell #pickup .sd-group-heading,
.sd-shell #pickup .sd-feature-heading,
.sd-shell #pickup .stday-heading,
.sd-shell #pickup .sd-benefit,
.sd-shell #pickup .sd-channel-panel,
.sd-shell #pickup .stday-accordion,
.sd-shell #pickup .stday-accordion>div {
  background-color: #FAF9F5 !important;
}

.sd-shell #pickup>.stday-card:last-child {
  margin-bottom: 0;
}

@media (max-width:767px) {

  .stday-heading h2 {
    font-size: max(14px, 1.25rem);
  }

  .stday-intro {
    font-size: max(14px, 0.875rem) !important;
  }

  .stday-keywords {
    gap: 18px 10px;
  }

  .stday-keywords a:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .stday-keyword-img,
  .stday-keywords strong {
    font-size: 14px;
  }

}

@media (prefers-reduced-motion:reduce) {

  .stday-keyword-img img {
    transition: none;
  }

}

/* ==========================================================================
   10 ブランドコンテンツ
   ブランドバナー・ロゴ・一覧グリッド。
   ========================================================================== */

.stday-brand {
  text-align: center;
}

.stday-brand-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px 20px;
}

.stday-brand-grid a {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
}

.stday-brand-grid a>img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.stday-brand-grid a>img.is-image-error {
  visibility: hidden;
}

.stday-brand-grid a.has-image-error::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 1px solid #d9d9d9;
  background: #f7f7f7;
  pointer-events: none;
}

.stday-brand-grid a.has-image-error::after {
  content: attr(data-error-title);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 16px;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .04em;
  text-align: center;
  overflow-wrap: anywhere;
  pointer-events: none;
}

.stday-brand-grid p {
  position: relative;
  z-index: 3;
  background: #fff;
  min-height: 1.5em;
  color: #765d63;
  font-size: 14px !important;
  font-weight: 600;
}

.stday-brand-grid span {
  position: relative;
  z-index: 3;
  background: #fff;
  display: grid;
  place-items: center;
  height: 48px;
  padding: 8px;
  overflow: hidden;
}

.stday-brand-grid span img {
  display: block;
  max-width: 100%;
  max-height: 30px;
  width: auto;
}

.stday-brand-grid a.has-image-error>span {
  visibility: visible;
}

.stday-brand-grid a.has-image-error.js-reveal {
  opacity: 1 !important;
  transform: none !important;
}

.stday-brand-grid span img.is-logo-error {
  visibility: hidden;
}

.stday-brand-grid>.js-reveal:nth-child(1),
.stday-brand-grid>.js-reveal:nth-child(2) {
  transition-delay: 0s;
}

.stday-brand-grid>.js-reveal:nth-child(3),
.stday-brand-grid>.js-reveal:nth-child(4) {
  transition-delay: .12s;
}

.stday-brand-grid>.js-reveal:nth-child(5),
.stday-brand-grid>.js-reveal:nth-child(6) {
  transition-delay: .24s;
}

.stday-brand-grid>.js-reveal:nth-child(7),
.stday-brand-grid>.js-reveal:nth-child(8) {
  transition-delay: .36s;
}

.stday-brand-grid>.js-reveal:nth-child(9),
.stday-brand-grid>.js-reveal:nth-child(10) {
  transition-delay: .48s;
}

.sd-brand-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 18px 24px;
}

.sd-brand-slot {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 140px;
  padding: 14px 10px;
  border: 0;
  background: #fff;
  text-align: center;
}

.sd-brand-slot h3 {
  font-size: 14px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.sd-brand-slot p {
  margin-top: 14px;
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--sd-muted);
}

.sd-shell .sd-brand-slot {
  background: var(--sd-card);
  background-color: #fff;
}

.sd-shell .sd-brand-card {
  display: block;
  min-height: 0;
  padding: 0;
  border: 0;
  background: #fff;
}

.sd-shell .sd-brand-card__link:hover .sd-brand-card__banner {
  opacity: .85;
}

.sd-shell .sd-brand-grid>.sd-brand-slot {
  border: 0;
  box-shadow: none;
}

.sd-shell .sd-brand-card__link {
  display: block;
  overflow: hidden;
  text-decoration: none;
  border: 0;
  box-shadow: none;
}

.sd-shell .sd-brand-card__banner {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: #fff;
  transition: opacity .25s ease;
  border: 0;
  box-shadow: none;
}

.sd-shell .sd-brand-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 8px 8px;
  background: #fff;
  border: 0;
  box-shadow: none;
}

.sd-shell .sd-brand-card__logo img {
  display: block;
  max-width: 100%;
  width: auto;
  /* ブランドロゴの高さ：この数値を変更して調整 */
  height: var(--sd-brand-logo-height, 40px) !important;
  min-width: 260px;
  max-height: none;
  object-fit: contain;
  border: 0;
  box-shadow: none;
}

.sd-shell .sd-brand-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 12px;
}

.sd-shell .stday-brand {
  background-color: #fff;
  padding-top: 28px;
  border-top: 1px solid var(--sd-border);
}

.sd-plan-a .stday-brand {
  padding-top: 0;
  border-top: 0;
}

.sd-shell #campaigns .sd-brand-slot,
.sd-shell #campaigns .sd-brand-card__banner,
.sd-shell #campaigns .sd-brand-card__logo {
  background-color: #FFFFFF !important;
}

.sd-shell #pickup .sd-brand-slot,
.sd-shell #pickup .sd-brand-card__banner,
.sd-shell #pickup .sd-brand-card__logo {
  background-color: #FAF9F5 !important;
}

.sd-shell #brand {
  --sd-section-bg: var(--sd-bg-brand);
  display: flow-root;
  margin-bottom: 0;
  padding-top: 32px;
  padding-bottom: 48px;
  background-color: #ffffff !important;
}

.sd-shell #brand .stday-card,
.sd-shell #brand .stday-copy,
.sd-shell #brand .sd-group-heading,
.sd-shell #brand .sd-feature-heading,
.sd-shell #brand .stday-heading,
.sd-shell #brand .sd-benefit,
.sd-shell #brand .sd-channel-panel,
.sd-shell #brand .sd-brand-slot,
.sd-shell #brand .sd-brand-card__banner,
.sd-shell #brand .sd-brand-card__logo,
.sd-shell #brand .stday-accordion,
.sd-shell #brand .stday-accordion>div {
  background-color: #ffffff !important;
}

.sd-shell #brand .sd-brand-grid {
  padding-bottom: 0;
}

/* 同一ブランド2枠は、バナーの下中央にロゴを1つ表示 */
.sd-shell .sd-brand-pair {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 12px;
  min-width: 0;
}

/* 2枠共通でも1枠と同じ表示幅に制限し、ロゴの拡大差を防ぐ */
.sd-shell .sd-brand-pair>.sd-brand-card__logo {
  grid-column: 1 / -1;
  justify-self: center;
  width: calc((100% - 12px) / 2);
  min-width: 0;
  box-sizing: border-box;
}

@media (max-width:767px) {

  /* SP版のブランドロゴ：高さはここで調整 */
  .sd-shell .sd-brand-card__logo img {
    height: var(--sd-brand-logo-height-sp, 26px) !important;
    min-width: 170px;
    max-height: none;
    object-fit: contain;
  }

  /* 共通ロゴは2枠分を使い、横幅制限による縮小を抑える */
  .sd-shell .sd-brand-pair>.sd-brand-card__logo {
    width: 100%;
  }

  .stday-brand-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 10px;
  }

  .stday-brand-grid span {
    height: 42px;
    padding: 7px;
  }

}

/* ==========================================================================
   11 フッター
   ページ最下部の案内・TOPへの導線。
   ========================================================================== */

.stday-top {
  margin-top: 0;
}

.stday-footer {
  --sd-primary: #3a5967;
  --sd-highlight: #3a5967;
  --sd-surface: #faf9f5;
  --line: #cdd2d6;
  width: min(100%, 480px);
  margin: auto;
  background: #fff;
  padding-top: 80px;
  padding-bottom: 80px;
}

.sd-shell .stday-footer {
  --sd-primary: var(--sd-accent);
  --sd-highlight: var(--sd-accent);
  --sd-surface: var(--sd-paper);
  --line: var(--sd-border);
  background-color: #fff;
  width: 100%;
  max-width: 480px;
  background: #fff;
  padding-top: 30px;
  padding-bottom: 52px;
}

/* ==========================================================================
   12 状態制御・補助
   表示・非表示など、共通の状態制御。
   ========================================================================== */

.sd-shell [hidden] {
  display: none !important;
}

/* アンカーは14pxを維持し、文字を1行で表示する */
.sd-shell .sd-overview a,
.sd-shell .sd-overview a small {
  white-space: nowrap;
  overflow-wrap: normal;
}

@media (max-width: 767px) {
  .sd-shell .sd-overview a {
    padding-left: 4px;
    padding-right: 24px;
  }
}


/* アンカー停止位置：PCはヘッダー分の余白を確保 */
@media (min-width: 768px) {
  .sd-shell {
    --sd-anchor-offset: 65px;
  }
}

/* オンライン／店舗アンカーはタブ切替の上端に合わせる */
.sd-shell #campaigns .sd-channel-tabs {
  scroll-margin-top: 0;
}

@media (min-width: 768px) {
  .sd-shell #campaigns .sd-channel-tabs {
    scroll-margin-top: 65px;
  }
}