/* ==========================================================================
   スマべび / BabyRenta — CONSOLIDATED STYLESHEET
   Single source: homepage, listing, product, cart, account, rental categories.
   Includes original base CSS with consolidated page-specific overrides.
   Do not load the old patched stylesheet alongside this file.
   ========================================================================== */

/* ==========================================================================
   г‚№гѓћгЃ№гЃі вЂ” top page stylesheet
   Prefix: smb-   (every class / data-attribute / JS hook uses this prefix)
   ========================================================================== */

/* ---------- 1. tokens ---------- */
:root {
  --smb-green: #a2c552;
  --smb-green-dark: #739230;
  --smb-green-50: #fafcf6;
  --smb-green-100: #f0f7e0;
  --smb-green-200: #d1e79f;
  --smb-chip: #eef3e4;
  --smb-chip-lg: #f2f7ea;
  --smb-dot: #d5e4b3;
  --smb-text: #3b3b3b;
  --smb-muted: #747474;
  --smb-accent: #ec6856;
  --smb-gray-bg: #fbfbfb;
  --smb-line: #e6eadb;

  --smb-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --smb-font-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Noto Sans JP", sans-serif;

  --smb-container: 1280px;
  --smb-gutter: 24px;
  --smb-hero-single-max-height: none;   /* single hero image: e.g. 600px or 80vh to limit its height */

}

/* ---------- 2. base / reset ----------
   One attribute selector (specificity = one class) placed BEFORE all components:
   it beats theme rules written for bare tags (a, ul, li, h2, p ...),
   and every .smb-* component below can still override it. */
[class*="smb-"] { box-sizing: border-box; margin: 0; padding: 0; color: inherit; text-decoration: none; list-style: none; }
[class*="smb-"]::before, [class*="smb-"]::after { box-sizing: border-box; }
[class*="smb-"] > li { margin: 0; list-style: none; }
:where(.smb-header, .smb-main, .smb-footer) img { display: block; max-width: 100%; height: auto; border: 0; }

.smb-body { margin: 0; font-family: var(--smb-font); font-size: 16px; line-height: 1.5; color: var(--smb-text); background: #fff; -webkit-font-smoothing: antialiased; }

.smb-container { width: min(var(--smb-container), calc(100% - var(--smb-gutter) * 2)); margin-inline: auto; }

a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--smb-green-dark); outline-offset: 2px; }

/* ---------- 3. icons ----------
   Works with BOTH markups:
     <i class="smb-ico smb-ico--chevron"></i>                         (CSS draws the icon вЂ” no sprite needed)
     <svg class="smb-ico"><use href="#smb-ico--chevron"></use></svg>  (inline sprite, if you keep one)
   Colour = currentColor, size = width/height. */
:root {
  --smb-i-bear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='6' r='2.6'/%3E%3Ccircle cx='18' cy='6' r='2.6'/%3E%3Ccircle cx='12' cy='13' r='7.5'/%3E%3Ccircle cx='12' cy='14.5' r='2.2'/%3E%3Cpath d='M9.3 11.2h.01M14.7 11.2h.01'/%3E%3C/svg%3E");
  --smb-i-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1 1 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z'/%3E%3C/svg%3E");
  --smb-i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E");
  --smb-i-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z'/%3E%3C/svg%3E");
  --smb-i-instagram: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.3' cy='6.7' r='1' fill='currentColor' stroke='none'/%3E%3C/svg%3E");
  --smb-i-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5C6.75 2.5 2.5 5.9 2.5 10.1c0 3.76 3.34 6.9 7.85 7.5.3.07.72.2.82.46.09.24.06.6.03.84l-.13.8c-.04.24-.19.93.82.5 1-.43 5.4-3.18 7.37-5.45 1.36-1.5 2.01-3.02 2.01-4.7C21.5 5.9 17.25 2.5 12 2.5zM8.3 12.5H6.4a.4.4 0 0 1-.4-.4V8.4a.4.4 0 0 1 .8 0v3.3h1.5a.4.4 0 0 1 0 .8zm1.9-.4a.4.4 0 0 1-.8 0V8.4a.4.4 0 0 1 .8 0zm4.5 0a.4.4 0 0 1-.7.25l-1.9-2.58v2.33a.4.4 0 0 1-.8 0V8.4a.4.4 0 0 1 .72-.24l1.88 2.57V8.4a.4.4 0 0 1 .8 0zm3 -2.4a.4.4 0 0 1 0 .8h-1.5v.6h1.5a.4.4 0 0 1 0 .8h-1.9a.4.4 0 0 1-.4-.4V8.4c0-.22.18-.4.4-.4h1.9a.4.4 0 0 1 0 .8h-1.5v.9z'/%3E%3C/svg%3E");
  --smb-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
  --smb-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
  --smb-i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
  --smb-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3l10 3.5v8.2c0 6-4.2 10.6-10 13.3-5.8-2.7-10-7.3-10-13.3V6.5z'/%3E%3Cpath d='M11.5 15.5l3.5 3.5 6-7'/%3E%3C/svg%3E");
  --smb-i-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z'/%3E%3C/svg%3E");
  --smb-i-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.41 11.41l-8.83-8.83c-.37-.37-.88-.58-1.41-.58H4c-1.1 0-2 .9-2 2v7.17c0 .53.21 1.04.59 1.41l8.83 8.83c.78.78 2.05.78 2.83 0l7.17-7.17c.78-.78.78-2.04-.01-2.83zM6.5 8C5.67 8 5 7.33 5 6.5S5.67 5 6.5 5 8 5.67 8 6.5 7.33 8 6.5 8z'/%3E%3C/svg%3E");
  --smb-i-thumb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z'/%3E%3C/svg%3E");
  --smb-i-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h16v13H3z'/%3E%3Cpath d='M19 13h5l5 5v4h-10z'/%3E%3Ccircle cx='9' cy='23' r='2.5'/%3E%3Ccircle cx='23' cy='23' r='2.5'/%3E%3C/svg%3E");
  --smb-i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E");
  --smb-i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.75 3h3.07l-6.7 7.66L22 21h-6.17l-4.83-6.32L5.47 21H2.4l7.17-8.2L2 3h6.33l4.37 5.78L17.75 3zm-1.08 16.15h1.7L7.4 4.75H5.58l11.09 14.4z'/%3E%3C/svg%3E");
  --smb-i-youtube: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.6 7.2a2.5 2.5 0 0 0-1.76-1.77C18.3 5 12 5 12 5s-6.3 0-7.84.43A2.5 2.5 0 0 0 2.4 7.2C2 8.76 2 12 2 12s0 3.24.4 4.8a2.5 2.5 0 0 0 1.76 1.77C5.7 19 12 19 12 19s6.3 0 7.84-.43a2.5 2.5 0 0 0 1.76-1.77C22 15.24 22 12 22 12s0-3.24-.4-4.8zM10 15V9l5.2 3L10 15z'/%3E%3C/svg%3E");
}

.smb-ico { display: inline-block; flex: none; width: 24px; height: 24px; vertical-align: middle; }

/* <i> version: coloured box cut into the icon shape by a mask */
i.smb-ico {
  background-color: currentColor;
  -webkit-mask: var(--smb-i) center / contain no-repeat;
          mask: var(--smb-i) center / contain no-repeat;
}
i.smb-ico--bear { --smb-i: var(--smb-i-bear); }
i.smb-ico--cart { --smb-i: var(--smb-i-cart); }
i.smb-ico--chevron { --smb-i: var(--smb-i-chevron); }
i.smb-ico--heart { --smb-i: var(--smb-i-heart); }
i.smb-ico--instagram { --smb-i: var(--smb-i-instagram); }
i.smb-ico--line { --smb-i: var(--smb-i-line); }
i.smb-ico--mail { --smb-i: var(--smb-i-mail); }
i.smb-ico--pin { --smb-i: var(--smb-i-pin); }
i.smb-ico--search { --smb-i: var(--smb-i-search); }
i.smb-ico--shield { --smb-i: var(--smb-i-shield); }
i.smb-ico--star { --smb-i: var(--smb-i-star); }
i.smb-ico--tag { --smb-i: var(--smb-i-tag); }
i.smb-ico--thumb { --smb-i: var(--smb-i-thumb); }
i.smb-ico--truck { --smb-i: var(--smb-i-truck); }
i.smb-ico--user { --smb-i: var(--smb-i-user); }
i.smb-ico--x { --smb-i: var(--smb-i-x); }
i.smb-ico--youtube { --smb-i: var(--smb-i-youtube); }

/* <svg> version: filled by fill, never gets a background box */
svg.smb-ico { fill: currentColor; background: none; -webkit-mask: none; mask: none; }


/* ---------- 4. buttons ---------- */
.smb-btn,
.button.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 10px 28px;
  background-color: var(--smb-green); border: 1px solid var(--smb-green); border-radius: 69px;
  color: #fff; font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.4;
  text-align: center; text-decoration: none; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, opacity .2s;
}
.smb-btn:hover,
.button.button:hover { background-color: var(--smb-green-dark); border-color: var(--smb-green-dark); color: #fff; text-decoration: none; }
.smb-btn:disabled, .smb-btn.smb-is-disabled { opacity: .45; pointer-events: none; }

.smb-btn--outline { background-color: #fff; border-color: var(--smb-green); color: var(--smb-green-dark); }
.smb-btn--outline:hover { background-color: var(--smb-green); border-color: var(--smb-green); color: #fff; }

.smb-btn--accent { background-color: var(--smb-accent); border-color: var(--smb-accent); }
.smb-btn--accent:hover { background-color: var(--smb-accent); border-color: var(--smb-accent); filter: brightness(.92); }

.smb-btn--sm { min-height: 32px; padding: 4px 16px; font-size: 13px; }
.smb-btn--lg { min-height: 56px; padding: 14px 40px; font-size: 18px; }
.smb-btn--block { display: flex; width: 100%; }

/* white pill on a green card ("е•†е“Ѓг‚’и¦‹г‚‹") */
.smb-btn--white {
  justify-content: space-between; min-height: 43px; padding: 10px 20px;
  background-color: #fff; border-color: #fff; color: var(--smb-green-dark); font-weight: 400;
}
.smb-btn--white .smb-ico { width: 20px; height: 20px; margin-right: -4px; color: var(--smb-green); }
.smb-btn--white:hover { background-color: var(--smb-green); border-color: var(--smb-green); color: #fff; }
.smb-btn--white:hover .smb-ico { color: #fff; }

/* square outline "гЃ™гЃ№гЃ¦и¦‹г‚‹" */
.smb-btn--more {
  min-height: 29px; padding: 3px 0 3px 12px; gap: 10px; border-radius: 0;
  background-color: #fff; border-color: var(--smb-green); color: var(--smb-green); font-size: 15px; line-height: 22px;
}
.smb-btn--more .smb-ico { width: 18px; height: 18px; margin-left: -6px; }
.smb-btn--more:hover { background-color: var(--smb-green); border-color: var(--smb-green); color: #fff; }

/* round arrow chips */
.smb-chip { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--smb-chip); color: var(--smb-green); }
.smb-chip .smb-ico { width: 20px; height: 20px; }
.smb-chip--lg { width: 32px; height: 32px; background: var(--smb-chip-lg); }
.smb-chip--white { background: #fff; }

/* ==========================================================================
   5. Header
   ========================================================================== */
.smb-header { position: relative; z-index: 20; background: #fff; padding-bottom: 24px; }
.smb-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 16px; }

.smb-logo { display: flex; flex-direction: column; gap: 4px; justify-content: center; color: var(--smb-green); }
.smb-logo__main { font-family: var(--smb-font-round); font-weight: 900; font-size: 40px; line-height: 42px; letter-spacing: .02em; }
.smb-logo__sub { font-size: 13px; font-weight: 700; line-height: 1.45; }
.smb-logo--footer .smb-logo__main { font-size: 32px; line-height: 36px; }

.smb-search {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  width: 328px; max-width: 100%; height: 46px; margin: 0;
  padding: 10px 20px; border: 1px solid var(--smb-green); border-radius: 69px; background: #fff;
}
.smb-search:focus-within { box-shadow: 0 0 0 3px rgba(162, 197, 82, .25); }
.smb-search .smb-search__input {
  flex: 1; min-width: 0; height: auto; margin: 0; padding: 0;
  border: 0; border-radius: 0; outline: 0; background: transparent; box-shadow: none;
  color: var(--smb-text); font-family: inherit; font-size: 16px;
}
.smb-search .smb-search__input::placeholder { color: var(--smb-muted); }
.smb-search .smb-search__button {
  display: grid; place-items: center; flex: none; width: 24px; height: 24px; min-height: 0; margin: 0; padding: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--smb-muted); cursor: pointer;
}

/* ---------- menu (гѓћг‚¤гѓљгѓјг‚ё / г‚«гѓјгѓ€ / burger + dropdown panel) ---------- */
.smb-menu { position: relative; display: inline-block; }
.smb-menu__bar { display: flex; align-items: center; gap: 20px; }

.smb-menu__link { display: flex; align-items: center; gap: 8px; font-size: 16px; line-height: 24px; color: var(--smb-text); white-space: nowrap; }
.smb-menu__link:hover { color: var(--smb-green-dark); }
.smb-menu__link--user .smb-ico { width: 16px; height: 16px; color: var(--smb-green); }

.smb-menu .smb-menu__burger {
  position: relative; display: block; width: 28px; height: 28px; margin: 0; padding: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer;
  -webkit-appearance: none; appearance: none;
}
.smb-menu__line {
  position: absolute; left: 3px; right: 3px; height: 2px; border-radius: 2px; background: var(--smb-text);
  transition: transform .25s ease, opacity .2s ease, top .25s ease;
}
.smb-menu__line:nth-child(1) { top: 7px; }
.smb-menu__line:nth-child(2) { top: 13px; }
.smb-menu__line:nth-child(3) { top: 19px; }
.smb-menu__burger.smb-is-active .smb-menu__line:nth-child(1) { top: 13px; transform: rotate(45deg); }
.smb-menu__burger.smb-is-active .smb-menu__line:nth-child(2) { opacity: 0; }
.smb-menu__burger.smb-is-active .smb-menu__line:nth-child(3) { top: 13px; transform: rotate(-45deg); }

/* panel: hidden on every width until the burger adds smb-is-open */
.smb-menu .smb-menu__panel {
  display: none !important;
  position: absolute; top: calc(100% + 12px); right: 0; z-index: 1000;
  width: 380px; max-width: calc(100vw - 32px); margin: 0; padding: 8px 20px 20px;
  background: #fff; border: 1px solid var(--smb-line); border-radius: 16px;
  box-shadow: 0 16px 32px rgba(59, 59, 59, .16);
}
.smb-menu .smb-menu__panel.smb-is-open { display: block !important; animation: smb-fade .18s ease; }
@keyframes smb-fade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.smb-menu__nav > li { border-bottom: 1px solid var(--smb-line); }
.smb-menu__navlink, .smb-menu__extralink {
  position: relative; display: flex; align-items: center; padding: 15px 28px 15px 4px;
  color: var(--smb-text); font-size: 15px; line-height: 1.4;
}
.smb-menu__navlink:hover, .smb-menu__extralink:hover { color: var(--smb-green-dark); }
.smb-menu__navlink::after, .smb-menu__extralink::after {
  content: ""; position: absolute; right: 6px; top: 50%; width: 7px; height: 7px;
  border-top: 1.5px solid var(--smb-green); border-right: 1.5px solid var(--smb-green);
  transform: translateY(-50%) rotate(45deg);
}
.smb-menu__extra { margin-top: 16px; padding: 2px 16px; background: var(--smb-green-100); border-radius: 12px; }
.smb-menu__extra > li + li { border-top: 1px solid rgba(115, 146, 48, .2); }
.smb-menu__extralink { padding-left: 0; gap: 10px; }
.smb-menu__extralink .smb-ico { width: 20px; height: 20px; color: var(--smb-green); }

/* ==========================================================================
   6. Hero slider
   ========================================================================== */
.smb-hero { padding-block: 40px; background: var(--smb-gray-bg); }
.smb-hero__viewport { overflow: hidden; }
.smb-hero__track { display: flex; gap: 26px; will-change: transform; transition: transform .6s cubic-bezier(.22, .61, .36, 1); }
.smb-hero__slide { flex: 0 0 min(580px, 78vw); aspect-ratio: 580 / 304; border-radius: 20px; overflow: hidden; background: #e9efdc; }
.smb-hero__slide img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.smb-hero__slide:hover img { transform: scale(1.02); }

.smb-hero__dots { display: flex; justify-content: center; gap: 10px; margin-top: 20px; padding: 6px 12px; }
.smb-hero .smb-hero__dot { position: relative; width: 7px; height: 7px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--smb-dot); box-shadow: none; cursor: pointer; }
.smb-hero__dot::after { content: ""; position: absolute; inset: -8px; }
.smb-hero .smb-hero__dot[aria-current="true"] { background: var(--smb-green); }

/* --- one slide only: full-width banner (class is added by smb.js; :has() = same result without JS) --- */
.smb-hero.smb-is-single { padding-block: 0; }
.smb-hero.smb-is-single .smb-hero__viewport { overflow: visible; }
.smb-hero.smb-is-single .smb-hero__track { display: block; gap: 0; transform: none; transition: none; }
.smb-hero.smb-is-single .smb-hero__slide { display: block; width: 100%; max-height: var(--smb-hero-single-max-height); border-radius: 0; }
.smb-hero.smb-is-single .smb-hero__dots { display: none; }
.smb-hero:has(.smb-hero__slide:only-child) { padding-block: 0; }
.smb-hero:has(.smb-hero__slide:only-child) .smb-hero__track { display: block; gap: 0; transform: none; }
.smb-hero:has(.smb-hero__slide:only-child) .smb-hero__slide { display: block; width: 100%; max-height: var(--smb-hero-single-max-height); border-radius: 0; }
.smb-hero:has(.smb-hero__slide:only-child) .smb-hero__dots { display: none; }
.smb-hero__dot[hidden] { display: none; }

/* ==========================================================================
   7. Rental categories
   ========================================================================== */
.smb-cats { padding: 40px 0 56px; background: var(--smb-green-200); }
.smb-cats__title { margin-bottom: 32px; text-align: center; font-family: var(--smb-font-round); font-size: 24px; font-weight: 700; line-height: 35px; color: var(--smb-green-dark); }
.smb-cats__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.smb-cats__link {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 85px; padding: 20px;
  background: #fff; border-radius: 10px; transition: box-shadow .2s, transform .2s;
}
.smb-cats__link:hover { box-shadow: 0 6px 16px rgba(115, 146, 48, .18); transform: translateY(-1px); }
.smb-cats__main { display: flex; align-items: center; gap: 14px; min-width: 0; }
.smb-cats__thumb { flex: none; width: auto; height: 45px; max-width: 81px; object-fit: contain; }
.smb-cats__name { font-size: 14px; line-height: 1.45; }

/* ==========================================================================
   8. Sections / headings
   ========================================================================== */
.smb-section { display: flex; flex-direction: column; gap: 32px; margin-top: 60px; }
.smb-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.smb-section__title { font-size: 24px; font-weight: 700; line-height: 35px; color: var(--smb-green-dark); }
.smb-section__lead { margin-top: 4px; font-size: 15px; line-height: 22px; }

/* ==========================================================================
   9. Pick cards (гЃЉгЃ™гЃ™г‚Ѓ / гЃЉеѕ— / ењ°еџџй™ђе®љ)
   ========================================================================== */
.smb-pick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.smb-pick__card { position: relative; display: flex; flex-direction: column; gap: 16px; height: 100%; padding: 10px 10px 20px; background: var(--smb-green-100); border-radius: 20px; }
.smb-pick__badge { position: absolute; top: 0; left: 0; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--smb-green-100); color: var(--smb-green); }
.smb-pick__image { aspect-ratio: 400 / 236; border-radius: 20px; overflow: hidden; }
.smb-pick__image img { width: 100%; height: 100%; object-fit: cover; }
.smb-pick__text { display: flex; flex-direction: column; gap: 4px; }
.smb-pick__title { font-size: 16px; font-weight: 700; line-height: 23px; }
.smb-pick__sub { font-size: 12px; line-height: 17px; }

/* ==========================================================================
   10. Products
   ========================================================================== */
.smb-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.smb-product { position: relative; display: flex; flex-direction: column; gap: 20px; }
.smb-product__image { position: relative; display: block; aspect-ratio: 305 / 175; border-radius: 10px; overflow: hidden; background: #f3f3f3; }
.smb-product__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.smb-product__image:hover img { transform: scale(1.04); }
.smb-product__tag { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; background: var(--smb-accent); color: #fff; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 17px; }
.smb-product .smb-product__fav {
  position: absolute; top: 5px; right: 9px; display: grid; place-items: center; width: 36px; height: 36px; min-height: 0; margin: 0; padding: 0;
  border: 0; border-radius: 50%; background: #fff; color: var(--smb-text); box-shadow: 0 1px 4px rgba(0, 0, 0, .08); cursor: pointer; transition: color .2s;
}
.smb-product__fav .smb-ico { width: 16px; height: 16px; }
.smb-product .smb-product__fav:hover, .smb-product .smb-product__fav[aria-pressed="true"] { color: var(--smb-accent); }
.smb-product__body { display: flex; flex-direction: column; gap: 12px; }
.smb-product__name { font-size: 16px; font-weight: 500; line-height: 24px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.smb-product__link:hover { color: var(--smb-green-dark); }
.smb-product__note { margin-top: -4px; font-size: 12px; line-height: 17px; }
.smb-product__price { font-size: 16px; font-weight: 700; line-height: 29px; }
.smb-product__price b { font-size: 20px; }

/* ==========================================================================
   11. Purpose
   ========================================================================== */
.smb-purpose { margin-top: 60px; padding-block: 40px; background: var(--smb-green-50); }
.smb-purpose .smb-section__head { margin-bottom: 32px; }
.smb-purpose__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
.smb-purpose__card { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 4px; background: #fff; border-radius: 16px; transition: box-shadow .2s, transform .2s; }
.smb-purpose__card:hover { box-shadow: 0 8px 20px rgba(115, 146, 48, .15); transform: translateY(-2px); }
.smb-purpose__image { position: relative; display: block; aspect-ratio: 189 / 110; border-radius: 12px; }
.smb-purpose__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.smb-purpose__icon { position: absolute; left: 12px; bottom: -21px; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--smb-green); }
.smb-purpose__body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 12px 12px 0; }
.smb-purpose__title { font-size: 16px; font-weight: 700; line-height: 23px; }
.smb-purpose__desc { font-size: 12px; line-height: 17px; }
.smb-purpose__go { display: flex; justify-content: flex-end; padding: 0 12px 12px; }

/* ==========================================================================
   12. Sale categories
   ========================================================================== */
.smb-sale { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.smb-sale__card { display: flex; align-items: center; gap: 12px; height: 110px; padding-right: 12px; background: var(--smb-green-100); border-radius: 16px; overflow: hidden; transition: box-shadow .2s; }
.smb-sale__card:hover { box-shadow: 0 6px 16px rgba(115, 146, 48, .18); }
.smb-sale__image { flex: none; width: 279px; max-width: 45%; height: 100%; object-fit: cover; }
.smb-sale__body { display: flex; flex: 1; flex-direction: column; gap: 4px; min-width: 0; padding: 0 12px; }
.smb-sale__title { font-size: 16px; font-weight: 700; line-height: 23px; }
.smb-sale__desc { font-size: 12px; line-height: 17px; }

/* ==========================================================================
   13. Footer
   ========================================================================== */
.smb-footer { margin-top: 60px; background: var(--smb-green-50); }

.smb-trust { padding-top: 40px; }
.smb-trust__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));  padding: 4px 0; background: var(--smb-green-100); border-radius: 16px; }
.smb-trust__item { position: relative; display: flex; align-items: center; gap: 8px; padding: 12px 16px; justify-content: center; }
.smb-trust__item + .smb-trust__item::before { content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 1px; background: rgba(115, 146, 48, .2); }
.smb-trust__icon { display: grid; place-items: center; flex: none; width: 53px; height: 53px; border-radius: 50%; background: #fff; color: var(--smb-green); }
.smb-trust__icon .smb-ico { width: 32px; height: 32px; }
.smb-trust__text { display: flex; flex-direction: column; gap: 4px; }
.smb-trust__title { font-size: 16px; font-weight: 700; line-height: 23px; }
.smb-trust__desc { font-size: 12px; line-height: 17px; }

.smb-footer__body { padding-top: 48px; padding-bottom: 24px; }
.smb-footer__grid { display: grid; grid-template-columns: minmax(240px, 1.05fr) 1.35fr 1fr 1fr; gap: 40px; }
.smb-footer__catch { margin-top: 24px; font-size: 16px; line-height: 1.7; }
.smb-footer__desc { margin-top: 16px; font-size: 12px; line-height: 1.9; color: var(--smb-muted); }
.smb-footer__note { margin-top: 12px; font-size: 11px; color: var(--smb-muted); }
.smb-footer__col { background: none; }
.smb-footer__title { margin-bottom: 8px; font-size: 16px; font-weight: 700; line-height: 23px; }
.smb-footer__copy { margin-top: 32px; text-align: center; font-size: 11px; color: var(--smb-muted); }

.smb-sns { display: flex; gap: 18px; margin-top: 24px; }
.smb-sns .smb-ico { width: 22px; height: 22px; }
.smb-sns__link:hover { color: var(--smb-green-dark); }

.smb-newsletter { display: flex; align-items: center; gap: 8px; max-width: 300px; margin: 24px 0 0; padding: 6px 6px 6px 18px; background: #fff; border: 1px solid var(--smb-line); border-radius: 999px; }
.smb-newsletter .smb-newsletter__input { flex: 1; min-width: 0; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; outline: 0; background: transparent; box-shadow: none; font-family: inherit; font-size: 12px; }
.smb-newsletter .smb-newsletter__input::placeholder { color: var(--smb-muted); }
.smb-newsletter .smb-newsletter__button { display: grid; place-items: center; flex: none; width: 28px; height: 28px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--smb-green); color: #fff; box-shadow: none; cursor: pointer; }
.smb-newsletter__button .smb-ico { width: 18px; height: 18px; }

.smb-flist__link { position: relative; display: block; padding: 7px 28px 7px 0; font-size: 12px; line-height: 1.6; }
.smb-flist__link::after { content: ""; position: absolute; right: 4px; top: 50%; width: 6px; height: 6px; border-top: 1.5px solid var(--smb-muted); border-right: 1.5px solid var(--smb-muted); transform: translateY(-50%) rotate(45deg); }
.smb-flist__link:hover { color: var(--smb-green-dark); }
.smb-flist--lined > li { border-bottom: 1px solid var(--smb-line); }
.smb-flist--lined .smb-flist__link { padding-block: 11px; }

/* ==========================================================================
   14. Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .smb-header__inner { flex-wrap: wrap; }
  .smb-search { order: 3; width: 100%; }
  .smb-cats__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .smb-pick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smb-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smb-purpose__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .smb-sale { grid-template-columns: minmax(0, 1fr); }
  .smb-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smb-trust__item:nth-child(3)::before { display: none; }
  .smb-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  :root { --smb-gutter: 16px; }
  .smb-header { padding-bottom: 12px; }
  .smb-logo__main { font-size: 32px; line-height: 34px; }

  .smb-menu__bar { gap: 16px; }
  .smb-menu__label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .smb-menu__link--user .smb-ico { width: 24px; height: 24px; }
  .smb-menu .smb-menu__panel { padding: 4px 16px 16px; }

  .smb-hero, .smb-cats { padding-block: 24px; }
  .smb-cats { padding-bottom: 32px; }
  .smb-cats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .smb-cats__link { height: auto; min-height: 72px; padding: 12px; }
  .smb-cats__main { gap: 8px; }
  .smb-cats__name { font-size: 12px; }
  .smb-cats__thumb { height: 36px; max-width: 56px; }
  .smb-cats__link .smb-chip { display: none; }

  .smb-section, .smb-purpose, .smb-footer { margin-top: 40px; }
  .smb-section__head { flex-direction: column; align-items: flex-start; }
  .smb-section__title { font-size: 20px; line-height: 30px; }
  .smb-pick { grid-template-columns: minmax(0, 1fr); }
  .smb-products { gap: 12px; }
  .smb-product__name { font-size: 14px; line-height: 21px; }
  .smb-purpose__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .smb-sale__card { height: 96px; }
  .smb-trust__list { grid-template-columns: minmax(0, 1fr); }
  .smb-trust__item + .smb-trust__item::before { display: none; }
  .smb-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  [class*="smb-"] { transition: none !important; animation: none !important; }
}



/* ===== main container: 1280px centered ===== */
.fs-l-main {
  display: block !important;
  width: min(1280px, calc(100% - 48px)) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
  float: none !important;
  background: transparent !important;
  box-sizing: border-box !important;
}

/* inside it our containers must not narrow the content a second time */
.fs-l-main .smb-container { width: 100%; }

/* full-bleed bands: background to the screen edges, content stays 1280px */
.fs-l-main .smb-hero,
.fs-l-main .smb-cats,
.fs-l-main .smb-purpose {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.fs-l-main .smb-cats .smb-container,
.fs-l-main .smb-purpose .smb-container {
  width: min(1280px, calc(100% - 48px));
  margin-inline: auto;
}

/* 100vw includes the scrollbar, so hide the tiny horizontal overflow */
.fs-l-page { overflow-x: clip; }

@media (max-width: 640px) {
  .fs-l-main { width: calc(100% - 32px) !important; }
  .fs-l-main .smb-cats .smb-container,
  .fs-l-main .smb-purpose .smb-container { width: calc(100% - 32px); }
}


/* ==========================================================================
   futureshop 「任意商品一覧」 carousel  ->  スマべび product card
   HTML is fixed by the system, so everything is done with CSS on fs-c-* classes.
   Scope: .fs-c-productListCarousel (other product lists are not touched)
   ========================================================================== */
.fs-c-productListCarousel {
  --smb-fs-green: #a2c552;
  --smb-fs-green-dark: #739230;
  --smb-fs-text: #3b3b3b;
  --smb-fs-muted: #747474;
  --smb-fs-accent: #ec6856;
  --smb-fs-line: #e6eadb;

  /* tweak the image box here */
  --smb-fs-img-ratio: 4 / 3;          /* e.g. 305 / 175 for the flat banner look */
  --smb-fs-img-fit: cover;            /* contain = whole product visible, no crop */
  --smb-fs-img-bg: #f1f4e8;           /* tile colour behind white product photos */

  --smb-fs-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z'/%3E%3C/svg%3E");
  --smb-fs-heart-fill: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");
  --smb-fs-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E");
}

/* ---------- card ---------- */
.fs-c-productListCarousel .fs-c-productListItem {
  position: relative;
  display: flex !important;
  flex-direction: column;
  gap: 12px;
  width: 100% !important;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  font-family: inherit;
  color: var(--smb-fs-text);
  text-align: left;
}

/* ---------- image ---------- */
.fs-c-productListCarousel .fs-c-productListItem__imageContainer {
  order: -1;
  margin: 0 0 8px;
}
.fs-c-productListCarousel .fs-c-productListItem__image {
  position: relative;
  aspect-ratio: var(--smb-fs-img-ratio);
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  background: var(--smb-fs-img-bg);
}
.fs-c-productListCarousel .fs-c-productListItem__image a {
  display: block;
  width: 100%;
  height: 100%;
}
.fs-c-productListCarousel .fs-c-productListItem__image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: var(--smb-fs-img-fit);
  mix-blend-mode: multiply;           /* white photo background takes the tile colour */
  transition: transform .4s ease;
}
.fs-c-productListCarousel .fs-c-productListItem__image a:hover img { transform: scale(1.04); }

/* item without a photo: placeholder so the cards stay aligned */
.fs-c-productListCarousel .fs-c-productListItem:not(:has(.fs-c-productListItem__imageContainer))::before {
  content: "";
  display: block;
  order: -1;
  aspect-ratio: var(--smb-fs-img-ratio);
  margin-bottom: 8px;
  border-radius: 10px;
  background: var(--smb-fs-img-bg);
}

/* ---------- product name (2 lines, no pink link / icon) ---------- */
.fs-c-productListCarousel .fs-c-productListItem__productName {
  margin: 0;
  padding: 0 !important;
  border: 0;
  background: none !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fs-c-productListCarousel .fs-c-productListItem__productName::before,
.fs-c-productListCarousel .fs-c-productListItem__productName::after,
.fs-c-productListCarousel .fs-c-productListItem__productName a::before,
.fs-c-productListCarousel .fs-c-productListItem__productName a::after {
  content: none !important;
  display: none !important;
}
.fs-c-productListCarousel .fs-c-productListItem__productName a {
  display: inline !important;
  padding: 0 !important;
  background: none !important;
  color: var(--smb-fs-text) !important;
  text-decoration: none !important;
}
.fs-c-productListCarousel .fs-c-productListItem__productName a:hover { color: var(--smb-fs-green-dark) !important; }
.fs-c-productListCarousel .fs-c-productName__name { display: inline; font: inherit; color: inherit; }

/* ---------- price ---------- */
.fs-c-productListCarousel .fs-c-productListItem__prices { margin: 0; padding: 0; }
.fs-c-productListCarousel .fs-c-productPrice { margin: 0; padding: 0; }
.fs-c-productListCarousel .fs-c-productPrice__main {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 4px;
  color: var(--smb-fs-text);
  line-height: 1.4;
}
.fs-c-productListCarousel .fs-c-productPrice__main:not([style*="none"]) { display: flex; }
.fs-c-productListCarousel .fs-c-productPrice__main__label {
  flex: 0 0 100%;
  margin: 0 0 2px;
  font-size: 12px;
  font-weight: 400;
  line-height: 17px;
  color: var(--smb-fs-text);
}
.fs-c-productListCarousel .fs-c-productPrice__main__price {
  display: inline-flex;
  align-items: baseline;
  font-weight: 700;
  line-height: 1.2;
}
.fs-c-productListCarousel .fs-c-price__currencyMark { font-size: 14px; margin-right: 1px; }
.fs-c-productListCarousel .fs-c-price__value { font-size: 20px; font-weight: 700; }
.fs-c-productListCarousel .fs-c-productPrice__main__addon,
.fs-c-productListCarousel .fs-c-productPrice__addon { font-size: 12px; font-weight: 400; }
.fs-c-productListCarousel .fs-c-productPrice__main__addon__label,
.fs-c-productListCarousel .fs-c-productPrice__addon__label { font-size: 12px; }
.fs-c-productListCarousel .fs-c-productPrice__main__joint { font-size: 14px; font-weight: 700; }

/* ---------- wishlist button -> round heart on the image ---------- */
.fs-c-productListCarousel .fs-c-productListItem__control {
  position: absolute;
  top: 5px;
  right: 9px;
  z-index: 2;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
}
.fs-c-productListCarousel .fs-c-productListItem__control button {
  position: relative;
  display: block !important;
  width: 36px !important;
  height: 36px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .08) !important;
  color: var(--smb-fs-text) !important;
  font-size: 0 !important;
  line-height: 0 !important;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: color .2s;
}
.fs-c-productListCarousel .fs-c-productListItem__control button .fs-c-button__label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.fs-c-productListCarousel .fs-c-productListItem__control button::before {
  content: "" !important;
  color: inherit !important;
  position: absolute !important;
  inset: 10px !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  background: currentColor !important;
  -webkit-mask: var(--smb-fs-heart) center / contain no-repeat !important;
          mask: var(--smb-fs-heart) center / contain no-repeat !important;
}
.fs-c-productListCarousel .fs-c-productListItem__control button::after { content: none !important; display: none !important; }
.fs-c-productListCarousel .fs-c-productListItem__control button:hover { color: var(--smb-fs-accent) !important; }
/* already in the wishlist (system switches the class) */
.fs-c-productListCarousel .fs-c-productListItem__control [class*="removeFromWishList"] { color: var(--smb-fs-accent) !important; }
.fs-c-productListCarousel .fs-c-productListItem__control [class*="removeFromWishList"]::before {
  -webkit-mask-image: var(--smb-fs-heart-fill) !important;
          mask-image: var(--smb-fs-heart-fill) !important;
}

/* ---------- prev / next arrows ---------- */
.fs-c-productListCarousel .fs-c-button--carousel {
  position: relative;
  display: grid !important;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0 !important;
  border: 1px solid var(--smb-fs-line) !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(59, 59, 59, .12);
  color: var(--smb-fs-green) !important;
  font-size: 0 !important;
  cursor: pointer;
  transition: background-color .2s, color .2s, opacity .2s;
}
.fs-c-productListCarousel .fs-c-button--carousel .fs-c-button__label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.fs-c-productListCarousel .fs-c-button--carousel::before {
  content: "" !important;
  color: inherit !important;
  display: block !important;
  width: 24px;
  height: 24px;
  background: currentColor;
  -webkit-mask: var(--smb-fs-chevron) center / contain no-repeat;
          mask: var(--smb-fs-chevron) center / contain no-repeat;
}
.fs-c-productListCarousel .fs-c-button--carousel::after { content: none !important; display: none !important; }
.fs-c-productListCarousel .fs-c-button--carousel--prev::before { transform: rotate(180deg); }
.fs-c-productListCarousel .fs-c-button--carousel:hover { background: var(--smb-fs-green) !important; color: #fff !important; }
.fs-c-productListCarousel .slick-disabled .fs-c-button--carousel { opacity: .35; pointer-events: none; }

.fs-c-productListCarousel__ctrl,
.fs-c-productListCarousel__ctrl--prev,
.fs-c-productListCarousel__ctrl--next,
[class*="productListCarousel__ctrl"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html body .fs-c-productListCarousel .fs-c-productListCarousel__ctrl,
html body .itemlist__wrapper .fs-c-productListCarousel__ctrl,
html body .fs-c-productListCarousel .fs-c-productListCarousel__ctrl--prev,
html body .fs-c-productListCarousel .fs-c-productListCarousel__ctrl--next,
html body .fs-c-productListCarousel .slick-arrow {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ==========================================================================
   任意商品表示: align with the page grid — 4 cards per row, same left/right edge as the heading
   ========================================================================== */
.itemlist__wrapper.fs-c-productListCarousel {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;              /* removes the 60px side gutters reserved for the arrows */
}
.itemlist__wrapper .fs-c-productListCarousel__ctrl { display: none !important; }

.itemlist__wrapper .fs-c-productListCarousel__list { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.itemlist__wrapper .slick-list { overflow: visible !important; height: auto !important; margin: 0 !important; padding: 0 !important; }
.itemlist__wrapper .slick-track {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px 20px;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  transform: none !important;
}
.itemlist__wrapper .slick-track::before,
.itemlist__wrapper .slick-track::after { content: none !important; display: none !important; }
.itemlist__wrapper .slick-slide { display: block !important; float: none !important; width: auto !important; min-width: 0 !important; height: auto !important; margin: 0 !important; padding: 0 !important; }
.itemlist__wrapper .slick-slide > div { width: 100% !important; }
.itemlist__wrapper .slick-cloned { display: none !important; }

/* price block starts exactly at the card's left edge */
.itemlist__wrapper .fs-c-productListItem__prices,
.itemlist__wrapper .fs-c-productPrice,
.itemlist__wrapper .fs-c-productPrice__main,
.itemlist__wrapper .fs-c-productPrice__main__label,
.itemlist__wrapper .fs-c-productPrice__main__price { margin-left: 0 !important; padding-left: 0 !important; text-indent: 0 !important; }
.itemlist__wrapper .fs-c-price__currencyMark { margin: 0 1px 0 0 !important; padding: 0 !important; }

@media (max-width: 1100px) {
  .itemlist__wrapper .slick-track { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
}


.fs-c-productName__name {
    display: block;
    margin-top: 1rem;
    padding-left: 0px !important;
    text-align: left;
    line-height: 1.25;
    font-weight: 500;
    color: var(--smb-text);
    background-image: none !important;
    background-size: 1em auto;
    background-repeat: no-repeat;
    background-position: left top .25em;
}


/* ==========================================================================
   Breadcrumbs (.fs-c-breadcrumb) — スマべび style
   ========================================================================== */
.fs-c-breadcrumb {
  margin: 0;
  padding: 12px 0 20px;
  background: none;
  border: 0;
  font-size: 12px;
  line-height: 1.6;
  color: #747474;
}
.fs-c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fs-c-breadcrumb__listItem {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #3b3b3b;                    /* current page (the last item, no link) */
  font-weight: 500;
}

/* separator: green chevron (replaces any "/" or ">" drawn by the theme) */
.fs-c-breadcrumb__listItem::after { content: none !important; display: none !important; }
.fs-c-breadcrumb__listItem + .fs-c-breadcrumb__listItem::before {
  content: "" !important;
  display: inline-block !important;
  flex: none;
  width: 6px;
  height: 6px;
  margin: 0 12px 0 8px;
  background: none !important;
  border-top: 1.5px solid #a2c552;
  border-right: 1.5px solid #a2c552;
  transform: rotate(45deg);
}
.fs-c-breadcrumb__listItem:first-child::before { content: none !important; display: none !important; }

/* links */
.fs-c-breadcrumb__listItem a {
  color: #747474;
  font-weight: 400;
  text-decoration: none;
  transition: color .2s;
}
.fs-c-breadcrumb__listItem a:hover { color: #739230; text-decoration: underline; text-underline-offset: 3px; }

/* phone: one scrollable line instead of 3-4 wrapped lines */
@media (max-width: 640px) {
  .fs-c-breadcrumb { padding: 10px 0 16px; }
  .fs-c-breadcrumb__list {
    flex-wrap: nowrap;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .fs-c-breadcrumb__list::-webkit-scrollbar { display: none; }
  .fs-c-breadcrumb__listItem { flex: none; }
}

/* breadcrumb: no pink, no full-width band — it simply follows the width of the page content */
html body .fs-c-breadcrumb {
  background: none !important;
  box-shadow: none !important;
  clip-path: none !important;
  border: 0 !important;
font-size: 12px !important;
width: min(var(--smb-container), calc(100% - var(--smb-gutter) * 2)) !important;
margin-inline: auto;
padding: 0 0 0 0 !important;
}
/* remove the theme's pink from the wrapper around the breadcrumb */
html body *:has(> .fs-c-breadcrumb) {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;

}


.fs-c-heading--page {
    color: var(--smb-green);
    margin: 40px auto 20px !important;
}


/* ==========================================================================
   並び替え・ページャー (.fs-c-productList__controller)
   left: "全 N 件"   |   right: 並び替え + pill buttons (current one is green)
   CSS only
   ========================================================================== */
html body .fs-c-productList__controller {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  margin: 0 0 24px !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ---------- count (left) ---------- */
html body .fs-c-productList__controller .fs-c-listControl {
  order: -1;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  text-align: left !important;
}
html body .fs-c-listControl__status {
  display: flex !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  color: #3b3b3b;
  font-size: 14px;
  line-height: 1.5;
}
html body .fs-c-listControl__status__total { font-size: 15px; }
html body .fs-c-listControl__status__total::before { content: "全 "; white-space: pre; }
html body .fs-c-listControl__status__total::after  { content: " 件"; white-space: pre; }
html body .fs-c-listControl__status__total__label { display: none !important; }   /* "件中" */
html body .fs-c-listControl__status__indication { display: none !important; }      /* "1-9件表示": delete this line to show it */

/* ---------- sort (right) ---------- */
html body .fs-c-productList__controller .fs-c-sortItems {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}
html body .fs-c-sortItems__label {                      /* "並び替え" */
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  color: #747474 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.4;
  white-space: nowrap;
}
html body .fs-c-sortItems__list {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
  border: 0 !important;
}
html body .fs-c-sortItems__list__item {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
  border: 0 !important;
}

/* pill buttons */
html body .fs-c-sortItems__list__item__label {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 36px;
  padding: 0 16px !important;
  background: #fff !important;
  border: 1px solid #cfd9bb !important;
  border-radius: 999px !important;
  color: #3b3b3b !important;
  font-size: 13px !important;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background-color .2s, border-color .2s, color .2s;
}
html body .fs-c-sortItems__list__item a.fs-c-sortItems__list__item__label:hover {
  background: #f0f7e0 !important;
  border-color: #a2c552 !important;
  color: #739230 !important;
}
html body .fs-c-sortItems__list__item a.fs-c-sortItems__list__item__label:focus-visible {
  outline: 2px solid #739230;
  outline-offset: 2px;
}
/* current sort order (the system marks it with .is-active) */
html body .fs-c-sortItems__list__item.is-active .fs-c-sortItems__list__item__label {
  background: #a2c552 !important;
  border-color: #a2c552 !important;
  color: #fff !important;
  font-weight: 700;
}

@media (max-width: 640px) {
  html body .fs-c-productList__controller { gap: 10px 16px; margin-bottom: 16px !important; }
  html body .fs-c-productList__controller .fs-c-sortItems { width: 100%; }
  html body .fs-c-sortItems__list__item__label { min-height: 34px; padding: 0 14px !important; }
}


/* ==========================================================================
   商品一覧 card (.fs-c-productList__list .fs-c-productListItem) — スマべび style
   Used on: product group pages and search results
   ========================================================================== */
.fs-c-productList__list {
  --smb-card-green: #a2c552;
  --smb-card-green-dark: #739230;
  --smb-card-text: #3b3b3b;
  --smb-card-muted: #747474;
  --smb-card-accent: #ec6856;
  --smb-card-tile: #f1f4e8;                 /* tile colour behind white product photos */
  --smb-card-img-ratio: 4 / 3;              /* use 305 / 175 for the flat banner look of the design */
  --smb-card-img-fit: cover;                /* contain = whole product, no crop */
  --smb-card-period: "/30日";               /* text after the price, change or set "" to remove */

  --smb-card-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z'/%3E%3C/svg%3E");
  --smb-card-heart-fill: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");
}

/* ---------- card shell ---------- */
html body .fs-c-productList__list .fs-c-productListItem {
  position: relative;                        /* anchor for the heart and the stretched link */
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--smb-card-text);
  text-align: left;
}
html body .fs-c-productList__list .fs-c-productListItem > form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
}

/* ---------- image ---------- */
html body .fs-c-productList__list .fs-c-productListItem__imageContainer { order: -1; margin: 0 0 8px; padding: 0; }
html body .fs-c-productList__list .fs-c-productListItem__image {
  position: relative;
  aspect-ratio: var(--smb-card-img-ratio);
  margin: 0;
  padding: 0;
  border-radius: 10px;
  overflow: hidden;
  background: var(--smb-card-tile);
}
html body .fs-c-productList__list .fs-c-productListItem__image a { display: block; width: 100%; height: 100%; }
html body .fs-c-productList__list .fs-c-productListItem__image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: var(--smb-card-img-fit);
  mix-blend-mode: multiply;                  /* white photo background takes the tile colour */
  transition: transform .4s ease;
}
html body .fs-c-productList__list .fs-c-productListItem:hover .fs-c-productListItem__image img { transform: scale(1.04); }

/* product without a photo: grey tile keeps the grid aligned */
html body .fs-c-productList__list .fs-c-productListItem > form:not(:has(.fs-c-productListItem__imageContainer))::before {
  content: "";
  display: block;
  order: -1;
  aspect-ratio: var(--smb-card-img-ratio);
  margin-bottom: 8px;
  border-radius: 10px;
  background: var(--smb-card-tile);
}

/* "他の画像を見る" (extra-image popup button) is not in the design */
html body .fs-c-productList__list .fs-c-productListItem__viewMoreImageButton { display: none !important; }

/* ---------- name: 2 lines, no pink link / icon, whole card clickable ---------- */
html body .fs-c-productList__list .fs-c-productListItem__productName {
  margin: 0;
  padding: 0 !important;
  border: 0;
  background: none !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 48px;                          /* always 2 lines (2 x 24px) so prices line up */
}
html body .fs-c-productList__list .fs-c-productListItem__productName::before,
html body .fs-c-productList__list .fs-c-productListItem__productName::after { content: none !important; display: none !important; }
html body .fs-c-productList__list .fs-c-productListItem__productName a {
  display: inline !important;
  padding: 0 !important;
  background: none !important;
  color: var(--smb-card-text) !important;
  text-decoration: none !important;
}
html body .fs-c-productList__list .fs-c-productListItem__productName a::before { content: none !important; display: none !important; }
html body .fs-c-productList__list .fs-c-productListItem__productName a::after {   /* stretched link: the whole card is clickable */
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
}
html body .fs-c-productList__list .fs-c-productListItem:hover .fs-c-productListItem__productName a { color: var(--smb-card-green-dark) !important; }
html body .fs-c-productList__list .fs-c-productName__name { display: inline; font: inherit; color: inherit; }

/* ---------- price:  4,719 円 /30日 〜  税込 ---------- */
html body .fs-c-productList__list .fs-c-productListItem__prices,
html body .fs-c-productList__list .fs-c-productPrice { margin: 0; padding: 0; }
html body .fs-c-productList__list .fs-c-productPrice__main:not([style*="none"]) {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 4px;
  margin: 0; padding: 0;
  color: var(--smb-card-text);
  line-height: 1.3;
}
html body .fs-c-productList__list .fs-c-productPrice__main__label { display: none !important; }   /* "最安レンタル料金": delete this line to show it */
html body .fs-c-productList__list .fs-c-productPrice__main__price { order: 1; display: inline-flex; align-items: baseline; margin: 0; padding: 0; }
html body .fs-c-productList__list .fs-c-price__currencyMark { display: none !important; }          /* "¥" */
html body .fs-c-productList__list .fs-c-price__value {
  color: var(--smb-card-green);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
}
html body .fs-c-productList__list .fs-c-price__value::after {
  content: "円 " var(--smb-card-period);
  margin-left: 4px;
  color: var(--smb-card-muted);
  font-size: 13px;
  font-weight: 400;
}
html body .fs-c-productList__list .fs-c-productPrice__main__joint { order: 2; color: var(--smb-card-muted); font-size: 13px; font-weight: 400; }
html body .fs-c-productList__list .fs-c-productPrice__main__addon { order: 3; margin: 0; padding: 0; color: var(--smb-card-muted); font-size: 11px; font-weight: 400; }
html body .fs-c-productList__list .fs-c-productPrice__main__addon__label { font-size: inherit; }

/* ---------- buttons: heart on the image, "詳細を見る" removed ---------- */
html body .fs-c-productList__list .fs-c-productListItem__control {
  position: absolute;
  top: 5px;
  right: 9px;
  z-index: 2;                                /* above the stretched link */
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
}
html body .fs-c-productList__list .fs-c-productListItem__control .fs-c-button--viewProductDetail { display: none !important; }

html body .fs-c-productList__list .fs-c-productListItem__control button {
  position: relative;
  display: block !important;
  width: 36px !important;
  height: 36px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .08) !important;
  color: var(--smb-card-text) !important;
  font-size: 0 !important;
  line-height: 0 !important;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: color .2s;
}
html body .fs-c-productList__list .fs-c-productListItem__control button .fs-c-button__label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
html body .fs-c-productList__list .fs-c-productListItem__control button::before {
  content: "" !important;
  color: inherit !important;
  position: absolute !important;
  inset: 10px !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  background: currentColor !important;
  -webkit-mask: var(--smb-card-heart) center / contain no-repeat !important;
          mask: var(--smb-card-heart) center / contain no-repeat !important;
}
html body .fs-c-productList__list .fs-c-productListItem__control button::after { content: none !important; display: none !important; }
html body .fs-c-productList__list .fs-c-productListItem__control button:hover { color: var(--smb-card-accent) !important; }
/* already in the wishlist (the system swaps the class) */
html body .fs-c-productList__list .fs-c-productListItem__control [class*="removeFromWishList"] { color: var(--smb-card-accent) !important; }
html body .fs-c-productList__list .fs-c-productListItem__control [class*="removeFromWishList"]::before {
  -webkit-mask-image: var(--smb-card-heart-fill) !important;
          mask-image: var(--smb-card-heart-fill) !important;
}

@media (max-width: 640px) {
  html body .fs-c-productList__list .fs-c-productListItem__productName { font-size: 14px; line-height: 21px; }
  html body .fs-c-productList__list .fs-c-price__value { font-size: 20px; }
}

/* ==========================================================================
   商品一覧 grid — 4 per row with gaps (3 with the filter sidebar, 2 on phone)
   ========================================================================== */
html body .fs-c-productList__list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 40px 20px !important;
  align-items: start;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
html body .fs-c-productList__list > * {
  grid-column: auto !important;
  grid-row: auto !important;
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}
/* with the filter sidebar on the page (layout class smb-searchLayout) */
html body .smb-searchLayout .fs-c-productList__list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

@media (max-width: 1100px) {
  html body .fs-c-productList__list,
  html body .smb-searchLayout .fs-c-productList__list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 32px 16px !important; }
}
@media (max-width: 640px) {
  html body .fs-c-productList__list .fs-c-productListItem__productName { font-size: 14px; line-height: 21px; min-height: 42px; }
  html body .fs-c-productList__list .fs-c-price__value { font-size: 20px; }
}

/* ---------- out of stock: grey photo + dark veil + "在庫切れ" centered over the image ---------- */
html body .fs-c-productList__list .fs-c-productListItem__outOfStock {
  position: absolute !important;             /* the card is position:relative */
  top: 0; left: 0; right: 0;
  z-index: 1;
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  aspect-ratio: var(--smb-card-img-ratio);   /* same box as the image */
  margin: 0 !important;
  padding: 0 !important;
  background: rgba(59, 59, 59, .5) !important;
  border: 0 !important;
  border-radius: 10px !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: .08em;
  line-height: 1.4 !important;
  text-align: center;
  pointer-events: none;                      /* clicks go through to the product link */
}
html body .fs-c-productList__list .fs-c-productListItem__outOfStock * {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  color: inherit !important;
  font: inherit !important;
}
/* the photo itself: grey + blurred (scaled up a little so the blur does not leave soft edges) */
html body .fs-c-productList__list .fs-c-productListItem:has(.fs-c-productListItem__outOfStock) .fs-c-productListItem__image img,
html body .fs-c-productList__list .fs-c-productListItem:has(.fs-c-productListItem__outOfStock):hover .fs-c-productListItem__image img {
  filter: grayscale(1) blur(3px);            /* blur strength: change 3px (0 = no blur) */
  transform: scale(1.08);
}

@media (max-width: 640px) {
  html body .fs-c-productList__list .fs-c-productListItem__outOfStock { font-size: 14px !important; }
}



#fs_form {
    font-size: 1rem;
}

@media screen and (min-width: 769px) {
    #fs_form {
        width:100% !important; max-width:1440px !important; margin:30px auto 0;
        padding: 0 0 30px
    }
}

@media screen and (max-width: 768px) {
    #fs_form {
        margin:40px auto 0;
        padding: 0 5% 60px
    }
}


/* ==========================================================================
   商品詳細: two columns   (layout parts .fs-l-productLayout__item--1 / --2 / --3)
   1 = images, 2 = name / price / cart, 3 = description (full width, only in the 3-part layout)
   ========================================================================== */
html body *:has(> .fs-l-productLayout__item--1):has(> .fs-l-productLayout__item--2) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 440px);   /* images | info */
  gap: 40px 48px;
  align-items: start;
  width: 100%;
  margin: 0;
  padding: 0;
}
html body .fs-l-productLayout__item {
  min-width: 0;
  margin: 0 !important;
  float: none !important;
  width: auto !important;
}
html body .fs-l-productLayout__item--1 { grid-column: 1; grid-row: 1; }
html body .fs-l-productLayout__item--2 { grid-column: 2; grid-row: 1; position: sticky; top: 24px; }   /* stays on screen while the left column scrolls */
html body .fs-l-productLayout__item--3 { grid-column: 1 / -1; grid-row: 2; }

@media (max-width: 1100px) {
  html body *:has(> .fs-l-productLayout__item--1):has(> .fs-l-productLayout__item--2) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  html body .fs-l-productLayout__item--1,
  html body .fs-l-productLayout__item--2,
  html body .fs-l-productLayout__item--3 { grid-column: 1; grid-row: auto; position: static; }
}

/* ==========================================================================
   商品詳細: purchase panel  (.fs-l-productLayout__item--2)
   Only the brand lime (#a3ca0f) + neutral dark text (#3b3b3b).
   price -> points -> ① period -> ② colour -> ③ quantity -> cart button -> wishlist
   ========================================================================== */
html body .fs-l-productLayout__item--2 {
  --smb-lime: var(--smb-green);            /* brand */
  --smb-lime-hover: var(--smb-green-dark);      /* same hue, a bit deeper, for hover */
  --smb-tint: var(--smb-green-100);            /* selected card, pills */
  --smb-soft: var(--smb-green-50);
  --smb-line: #e7ebd6;
  --smb-line-strong: #cad2ac;
  --smb-text: #3b3b3b;
  --smb-muted: #6b6b6b;
  --smb-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b3b3b' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --smb-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.7 12.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.5L21 8H6'/%3E%3C/svg%3E");
  --smb-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-4.6-9.3-9.1C1 8.5 3 5 6.5 5c2 0 3.5 1 5.5 3 2-2 3.5-3 5.5-3C21 5 23 8.5 21.3 11.9 19 16.4 12 21 12 21z'/%3E%3C/svg%3E");
  --smb-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b3b3b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");

  display: flex !important;
  flex-direction: column;
  gap: 20px;
  box-sizing: border-box;
  padding: 28px;
  background: #fff;
  border: 0 !important;                       /* no border: the soft shadow is enough */
  border-radius: 20px;
  box-shadow: 0 8px 28px rgba(59, 59, 59, .08);
  color: var(--smb-text);
  counter-reset: smbstep;
}
/* children are ordered explicitly (wishlist + quantity are wrapped by the system, see display: contents below) */
html body .fs-l-productLayout__item--2 .fs-c-productPrices--productDetail { order: 1; }
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay          { order: 2; }
html body .fs-l-productLayout__item--2 .fs-c-productChooseVariation       { order: 3; }
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__quantity { order: 4; }
html body .fs-l-productLayout__item--2 .fs-c-productActionButton          { order: 5; }
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist { order: 6; }
html body .fs-l-productLayout__item--2 .fs-p-productDescription--short:empty { display: none; }
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist { display: contents; }

/* ---------- price ---------- */
html body .fs-l-productLayout__item--2 .fs-c-productPrices { margin: 0; padding: 0; }
html body .fs-l-productLayout__item--2 .fs-c-productPrice--selling {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0 8px;
  margin: 0;
}
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main:not([style*="none"]) {
  display: flex;
  flex-direction: column;
  margin: 0;
}
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__label {
  margin: 0;
  color: var(--smb-muted);
  font-size: 12px;
  line-height: 1.6;
}
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__price {
  display: inline-flex;
  align-items: baseline;
  color: var(--smb-lime);                     /* brand lime, as in the product cards */
  font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
  font-weight: 900;
  line-height: 1.2;
}
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__price .fs-c-price__currencyMark { margin-right: 2px; color: inherit; font-size: 20px; font-weight: inherit; }
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__price .fs-c-price__value { color: inherit; font-size: 38px; font-weight: inherit; }
html body .fs-l-productLayout__item--2 .fs-c-productPrice__addon,
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__addon { margin: 0 0 6px; color: var(--smb-muted); font-size: 13px; }
html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__joint { color: var(--smb-muted); font-size: 16px; }

/* ---------- points:  "154 ポイント進呈" as a small pill ---------- */
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay:not([style*="none"]) {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 4px;
  margin: -8px 0 0;
  padding: 2px 12px;
  background: var(--smb-tint);
  border-radius: 999px;
  color: var(--smb-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay__label { display: none; }         /* "[" */
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay__unit { font-size: 0; }            /* hides "ポイント進呈 ]" ... */
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay__unit::after { content: "ポイント進呈"; font-size: 13px; }  /* ...and writes it without the bracket */
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay__quantity,
html body .fs-l-productLayout__item--2 .fs-c-productPointDisplay__joint { font-size: 13px; }

/* ---------- variation blocks ---------- */
html body .fs-l-productLayout__item--2 .fs-c-productChooseVariation { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 0; }
html body .fs-l-productLayout__item--2 .fs-c-productChooseVariation__variation { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; counter-increment: smbstep; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList { margin: 0; padding: 0; }

/* heading:  ① レンタル期間 ........ 30日間 */
html body .fs-l-productLayout__item--2 .fs-c-variationLabel {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}
html body .fs-l-productLayout__item--2 .fs-c-variationLabel::before,
html body .fs-l-productLayout__item--2 .fs-c-quantity::before {
  content: counter(smbstep) !important;
  position: static !important;                /* the theme may place its own ::before absolutely */
  float: none !important;
  transform: none !important;
  display: inline-flex !important;
  flex: none;
  order: 0;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 50%;
  background: var(--smb-lime);
  color: var(--smb-text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
html body .fs-l-productLayout__item--2 .fs-c-variationLabel__label { font-weight: 700; }
html body .fs-l-productLayout__item--2 .fs-c-variationLabel__value { margin-left: auto; color: var(--smb-text); font-size: 13px; font-weight: 700; }

/* list reset; period = stacked cards, colour = pills in a row */
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
html body .fs-l-productLayout__item--2 [data-variation-unit-price-axis="false"] .fs-c-variationPanelList__list { flex-direction: row; flex-wrap: wrap; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__list__item { position: relative; margin: 0; padding: 0; list-style: none; }

/* radio is visually hidden, the label is the card */
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__radio {
  position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none;
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 14px;
  box-sizing: border-box;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 10px 16px;
  background: #fff;
  border: 2px solid var(--smb-line);
  border-radius: 14px;
  color: var(--smb-text);
  cursor: pointer;
  text-align: left;
  transition: background-color .15s, border-color .15s;
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel:hover { border-color: var(--smb-lime); }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel::before {   /* radio mark */
  content: "";
  flex: none;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  border: 2px solid var(--smb-line-strong);
  border-radius: 50%;
  background: #fff;
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__radio:checked + .fs-c-variationPanelList__panel {
  background: var(--smb-tint);
  border-color: var(--smb-lime);
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__radio:checked + .fs-c-variationPanelList__panel::before {
  background: var(--smb-lime) var(--smb-check) center / 14px no-repeat;
  border-color: var(--smb-lime);
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__radio:focus-visible + .fs-c-variationPanelList__panel { outline: 2px solid var(--smb-text); outline-offset: 2px; }

html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__content { flex: 1; min-width: 0; display: flex; flex-direction: column; margin: 0; padding: 0; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__label { font-size: 16px; font-weight: 700; line-height: 1.5; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__caption { color: var(--smb-muted); font-size: 12px; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__stock { margin-top: 2px; color: var(--smb-muted); font-size: 12px; font-weight: 700; }
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__stock--lowInStock { color: #8a5a00; }

/* price inside a period card */
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel__price { flex: none; margin: 0; padding: 0; text-align: right; }
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice { display: flex; align-items: baseline; justify-content: flex-end; gap: 4px; }
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice__price { color: var(--smb-text); font-size: 17px; font-weight: 700; }
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice .fs-c-price__currencyMark,
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice .fs-c-price__value { color: inherit; font-size: inherit; font-weight: inherit; }
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice__price .fs-c-price__currencyMark { margin-right: 1px; font-size: 14px; }
html body .fs-l-productLayout__item--2 .fs-c-productVariationPrice__addon { display: none; }           /* "税込" is already next to the main price */

/* colour = round pills */
html body .fs-l-productLayout__item--2 [data-variation-unit-price-axis="false"] .fs-c-variationPanelList__panel {
  width: auto;
  min-height: 48px;
  gap: 10px;
  padding: 6px 18px 6px 12px;
  border-radius: 999px;
}
html body .fs-l-productLayout__item--2 [data-variation-unit-price-axis="false"] .fs-c-variationPanelList__panel__label { font-size: 14px; font-weight: 500; }
html body .fs-l-productLayout__item--2 [data-variation-unit-price-axis="false"] .fs-c-variationPanelList__radio:checked + .fs-c-variationPanelList__panel .fs-c-variationPanelList__panel__label { font-weight: 700; }

/* sold-out choice: still selectable, but clearly quieter */
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel--outOfStock {
  background: var(--smb-soft);
  border-style: dashed;
  color: var(--smb-muted);
}
html body .fs-l-productLayout__item--2 .fs-c-variationPanelList__panel--outOfStock .fs-c-variationPanelList__panel__label { font-weight: 500; text-decoration: line-through; }

/* ---------- ③ quantity ---------- */
html body .fs-l-productLayout__item--2 .fs-c-quantity {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  font-size: 15px;
  font-weight: 700;
  counter-increment: smbstep;
}
html body .fs-l-productLayout__item--2 .fs-c-quantity::after {
  content: "数量" !important;
  position: static !important;
  float: none !important;
  transform: none !important;
  order: 1;
  flex: none;
  white-space: nowrap;
}
html body .fs-l-productLayout__item--2 .fs-c-quantity__select,
html body .fs-l-productLayout__item--2 .fs-c-quantity__number {
  order: 2;
  box-sizing: border-box;
  height: 44px;
  min-width: 96px;
  margin: 0 0 0 auto;
  padding: 0 38px 0 18px;
  border: 1px solid var(--smb-line-strong);
  border-radius: 999px;
  background: #fff var(--smb-chevron) right 14px center / 16px no-repeat;
  color: var(--smb-text);
  font-family: inherit;
  font-size: 17px;
  font-weight: 700;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
html body .fs-l-productLayout__item--2 .fs-c-quantity__number { background-image: none; padding-right: 18px; text-align: center; }
html body .fs-l-productLayout__item--2 .fs-c-quantity__message { order: 3; flex-basis: 100%; color: #b3402f; font-size: 12px; font-weight: 400; }

/* ---------- cart button ---------- */
html body .fs-l-productLayout__item--2 .fs-c-productActionButton { margin: 0; padding: 0; }
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100% !important;
  height: 58px;
  margin: 0 !important;
  padding: 0 24px !important;
  background: var(--smb-lime) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 6px 16px rgba(162, 197, 82, .25) !important;
  color: white !important;
  font-family: inherit;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color .2s, transform .1s;
  -webkit-appearance: none;
  appearance: none;
}
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button:hover { background: var(--smb-lime-hover) !important; }
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button:active { transform: translateY(1px); }
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button::before {     /* our cart icon */
  content: "" !important;
  color: inherit !important;
  flex: none;
  width: 22px;
  height: 22px;
  margin: 0 !important;
  background: currentColor !important;
  -webkit-mask: var(--smb-cart) center / contain no-repeat;
          mask: var(--smb-cart) center / contain no-repeat;
}
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button::after,
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button .fs-c-button__label::before,
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button .fs-c-button__label::after { content: none !important; display: none !important; }   /* the theme's own icons */
html body .fs-l-productLayout__item--2 .fs-c-productActionButton button .fs-c-button__label { margin: 0; padding: 0; background: none !important; color: inherit !important; font: inherit !important; }
/* "再入荷お知らせ" (shown when the selected choice is sold out): quiet outlined button, no cart icon */
html body .fs-l-productLayout__item--2 .fs-c-productActionButton .fs-c-button--secondary {
  background: #fff !important;
  border: 1px solid var(--smb-lime) !important;
  box-shadow: none !important;
  color: var(--smb-text) !important;
  font-size: 16px !important;
}
html body .fs-l-productLayout__item--2 .fs-c-productActionButton .fs-c-button--secondary:hover { background: var(--smb-tint) !important; }
html body .fs-l-productLayout__item--2 .fs-c-productActionButton .fs-c-button--secondary::before { display: none !important; }

/* ---------- wishlist: outlined pill under the cart button ---------- */
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist {
  position: static;
  margin: 0;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;                       /* the thin grey frame around the button */
  box-shadow: none !important;
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist::before,
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist::after { content: none !important; display: none !important; }   /* the stray star */
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100% !important;
  height: 48px;
  margin: 0 !important;
  padding: 0 20px !important;
  background: #fff !important;
  border: 1px solid var(--smb-lime) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: var(--smb-text) !important;
  font-family: inherit;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: background-color .2s;
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button:hover { background: var(--smb-tint) !important; }
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button .fs-c-button__label { margin: 0; padding: 0; background: none !important; color: inherit !important; font: inherit !important; }
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button::before {
  content: "" !important;
  color: inherit !important;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  background: currentColor !important;
  -webkit-mask: var(--smb-heart) center / contain no-repeat;
          mask: var(--smb-heart) center / contain no-repeat;
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button::after,
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button .fs-c-button__label::before,
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist button .fs-c-button__label::after { content: none !important; display: none !important; }

@media (max-width: 1100px) {
  html body .fs-l-productLayout__item--2 { padding: 20px 16px; }
  html body .fs-l-productLayout__item--2 .fs-c-productPrice__main__price .fs-c-price__value { font-size: 34px; }
}

/* ==========================================================================
   商品詳細: main image  (.fs-c-productMainImage)
   rounded tile + "画像拡大" pill with a magnifier in the bottom-right corner
   ========================================================================== */
html body .fs-c-productMainImage {
  --smb-main-ratio: 4 / 3;                    /* 1 / 1 = square, 3 / 2 = flatter */
  --smb-main-tile: #f1f4e6;                   /* tile colour behind white product photos */
  --smb-main-zoom: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E");

  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  background: none !important;
  border: 0 !important;
}

/* image tile */
html body .fs-c-productMainImage__image {
  position: relative;
  width: 100% !important;                     /* the system sets width: 90% + height: 360px on desktop */
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: var(--smb-main-ratio);        /* height now comes from the ratio */
  margin: 0;
  padding: 0;
  border-radius: 20px;
  overflow: hidden;
  background: var(--smb-main-tile);
}
html body .fs-c-productMainImage__image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: contain;                        /* whole product, never cropped */
  mix-blend-mode: multiply;                   /* white photo background takes the tile colour */
}

/* "画像拡大" button */
html body .fs-c-productMainImage__expandButton {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  margin: 0;
  padding: 0;
}
html body .fs-c-productMainImage__expandButton button {
  display: flex !important;
  align-items: center;
  gap: 8px;
  height: 44px;
  margin: 0 !important;
  padding: 0 18px !important;
  background: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 2px 8px rgba(59, 59, 59, .14) !important;
  color: #3b3b3b !important;
  font-family: inherit;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1;
  cursor: pointer;
  transition: background-color .2s;
  -webkit-appearance: none;
  appearance: none;
}
html body .fs-c-productMainImage__expandButton button:hover { background: #f6fcde !important; }
html body .fs-c-productMainImage__expandButton button::before {
  content: "" !important;
  color: inherit !important;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  background: currentColor !important;
  -webkit-mask: var(--smb-main-zoom) center / contain no-repeat;
          mask: var(--smb-main-zoom) center / contain no-repeat;
}
html body .fs-c-productMainImage__expandButton button::after { content: none !important; display: none !important; }
html body .fs-c-productMainImage__expandButton button .fs-c-button__label { margin: 0; padding: 0; background: none !important; color: inherit !important; font: inherit !important; }
html body .fs-c-productMainImage__expandButton button .fs-c-button__label::before,
html body .fs-c-productMainImage__expandButton button .fs-c-button__label::after { content: none !important; display: none !important; }

@media (max-width: 1100px) {
  html body .fs-c-productMainImage { --smb-main-ratio: 1 / 1; }
  html body .fs-c-productMainImage__image { border-radius: 16px; }
  html body .fs-c-productMainImage__expandButton { right: 12px; bottom: 12px; }
}


/* ==========================================================================
   商品詳細: description  (.fs-p-productDescription--full)
   spec table (2 columns, left aligned) + numbered feature headings
   ========================================================================== */
html body .fs-p-productDescription--full {
  --smb-lime: var(--smb-green);
  --smb-lime-hover: var(--smb-green-dark);
  --smb-tint: var(--smb-green-100);
  --smb-line: #e7ebd6;
  --smb-text: #3b3b3b;
  --smb-muted: #6b6b6b;

  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 0;
  padding: 0;
  color: var(--smb-text);
  font-size: 15px;
  line-height: 1.9;
  text-align: left;
}
html body .fs-p-productDescription--full > br { display: none; }        /* spacer <br> between blocks */

/* ---------- links: green, underlined ---------- */
html body .fs-p-productDescription--full a {
  color: var(--smb-lime);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--smb-lime);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: color .2s, background-color .2s;
}
html body .fs-p-productDescription--full a:hover { color: var(--smb-lime-hover); background: var(--smb-tint); }
html body .fs-p-productDescription--full a:visited { color: var(--smb-lime); }

/* ---------- section titles: dark text + short lime bar ---------- */
html body .fs-p-productDescription--full::before {                       /* title above the spec table */
  content: "スペック";
  display: block;
  padding-bottom: 14px;
  margin-bottom: -28px;
  color: var(--smb-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  background: linear-gradient(var(--smb-lime), var(--smb-lime)) left bottom / 56px 4px no-repeat;
}
html body .fs-p-productDescription--full .catch {
  position: relative;
  margin: 0;
  padding: 0 0 14px;
  border: 0;
  background: linear-gradient(var(--smb-lime), var(--smb-lime)) left bottom / 56px 4px no-repeat;
  color: var(--smb-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
}

/* ---------- spec table -> 2 columns of "label  value" rows ---------- */
html body .fs-p-productDescription--full .detail_table {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-collapse: collapse;
  background: none;
}
html body .fs-p-productDescription--full .detail_table tbody {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  border-top: 1px solid var(--smb-line);
}
html body .fs-p-productDescription--full .detail_table tr {
  display: flex;
  gap: 16px;
  margin: 0;
  padding: 14px 0;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--smb-line);
}
html body .fs-p-productDescription--full .detail_table tr:has(td:empty) { display: none; }   /* rows without a value */
html body .fs-p-productDescription--full .detail_table th {
  flex: 0 0 96px;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  color: var(--smb-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left !important;
  vertical-align: top;
}
html body .fs-p-productDescription--full .detail_table td {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  line-height: 1.7;
  text-align: left !important;
  overflow-wrap: anywhere;
}

/* ---------- description box ---------- */
html body .fs-p-productDescription--full .detial_box {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0;
  padding: 0;
  counter-reset: smbfeat;
}
html body .fs-p-productDescription--full .detial_box > br { display: none; }
html body .fs-p-productDescription--full .detial_box p { margin: 0; padding: 0; font-size: 15px; line-height: 1.9; }
html body .fs-p-productDescription--full .detial_box b {                    /* sub-points get a soft lime marker */
  font-weight: 700;
  background: linear-gradient(transparent 62%, rgba(162, 197, 82, .25) 62%);
}

/* lead paragraph */
html body .fs-p-productDescription--full .catchcopy {
  padding: 16px 20px !important;
  background: var(--smb-tint);
  border-radius: 12px;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

/* video: responsive 16:9 instead of height="150" */
html body .fs-p-productDescription--full #parent { width: 100%; max-width: 800px; margin: 0; padding: 0; }
html body .fs-p-productDescription--full #child {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 16px;
}

/* numbered feature headings:  01  3層の振動吸収構造 ... */
html body .fs-p-productDescription--full .detial_h4 {
  counter-increment: smbfeat;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 28px 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--smb-text);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
}
html body .fs-p-productDescription--full .detial_h4::before {
  content: counter(smbfeat, decimal-leading-zero);
  color: var(--smb-lime);
  font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.1;
}

/* feature pictures */
html body .fs-p-productDescription--full .detial_box > div:not(#parent) { max-width: 800px; margin: 0; padding: 0; }
html body .fs-p-productDescription--full .detial_box img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: 16px;
}

@media (max-width: 1100px) {
  html body .fs-p-productDescription--full { gap: 36px; }
  html body .fs-p-productDescription--full .detail_table tbody { grid-template-columns: minmax(0, 1fr); }
  html body .fs-p-productDescription--full::before,
  html body .fs-p-productDescription--full .catch { font-size: 20px; }
  html body .fs-p-productDescription--full::before { margin-bottom: -20px; }
}


html body .fs-l-productLayout__item--1 {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  min-width: 0 !important;
}


/* ---------- wishlist: "already added" state  (お気に入りを解除する) ----------
   default = white pill + outlined dark heart
   added   = light-lime pill + solid red heart (same red as the hearts on the product cards) */
html body .fs-l-productLayout__item--2 {
  --smb-heart-fill: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-4.6-9.3-9.1C1 8.5 3 5 6.5 5c2 0 3.5 1 5.5 3 2-2 3.5-3 5.5-3C21 5 23 8.5 21.3 11.9 19 16.4 12 21 12 21z'/%3E%3C/svg%3E");
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist [class*="removeFromWishList"] {
  background: var(--smb-tint) !important;
  border-color: var(--smb-lime) !important;
  box-shadow: inset 0 0 0 1px var(--smb-lime) !important;      /* 2px frame without moving anything */
  color: var(--smb-text) !important;
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist [class*="removeFromWishList"]:hover {
  background: var(--smb-green-200) !important;
}
html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist [class*="removeFromWishList"]::before {
  color: #ec6856 !important;                                     /* solid red heart */
  -webkit-mask-image: var(--smb-heart-fill);
          mask-image: var(--smb-heart-fill);
  animation: smb-heart-pop .35s ease;
}
@keyframes smb-heart-pop {
  0%   { transform: scale(.6); }
  60%  { transform: scale(1.25); }
  100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  html body .fs-l-productLayout__item--2 .fs-c-productQuantityAndWishlist__wishlist [class*="removeFromWishList"]::before { animation: none; }
}

/* ==========================================================================
   商品詳細: review + notes + return policy
   .fs-c-productReview  /  dl.review__note  /  .fs-c-returnedSpecialContract
   ========================================================================== */
html body .fs-c-productReview,
html body .review__note,
html body .fs-c-returnedSpecialContract {
  --smb-lime: var(--smb-green);
  --smb-lime-hover: var(--smb-green-dark);
  --smb-tint: var(--smb-green-100);
  --smb-soft: var(--smb-green-50);
  --smb-text: #3b3b3b;
  --smb-muted: #6b6b6b;
  --smb-pencil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19.5 8.5a2.1 2.1 0 0 0-3-3L5 17z'/%3E%3Cpath d='M14.5 7.5l3 3'/%3E%3C/svg%3E");
  box-sizing: border-box;
  color: var(--smb-text);
  text-align: left;
}

/* ---------- 1. review button: light card, text on the left, pill button on the right ---------- */
html body .fs-c-productReview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin: 0;
  padding: 20px 24px;
  background: var(--smb-tint);
  border: 0;
  border-radius: 16px;
}
html body .fs-c-productReview::before {
  content: "ご利用の感想をお聞かせください";       /* edit this text freely */
  color: var(--smb-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}
html body .fs-c-productReview__addReview { flex: none; margin: 0; padding: 0; text-align: left; }
html body .fs-c-productReview__addReview a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;                     /* the theme sets min-height: 88px */
  max-height: none !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 28px !important;
  background: #fff !important;
  border: 0px solid var(--smb-lime) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: var(--smb-text) !important;
  font-family: inherit;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none !important;
  transition: background-color .2s;
}
html body .fs-c-productReview__addReview a:hover { background: var(--smb-green-200) !important; }
html body .fs-c-productReview__addReview a::before {                       /* pencil icon (replaces the theme's) */
  content: "" !important;
  position: static !important;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  background: currentColor !important;
  color: inherit !important;
  -webkit-mask: var(--smb-pencil) center / contain no-repeat;
          mask: var(--smb-pencil) center / contain no-repeat;
}
html body .fs-c-productReview__addReview a::after { content: none !important; display: none !important; }
html body .fs-c-productReview__addReview a .fs-c-button__label { margin: 0; padding: 0; background: none !important; color: inherit !important; font: inherit !important; }
html body .fs-c-productReview__addReview a .fs-c-button__label::before,
html body .fs-c-productReview__addReview a .fs-c-button__label::after { content: none !important; display: none !important; }

/* ---------- 2. notes: soft box, lime bullets ---------- */
html body .review__note {
  margin: 0;
  padding: 16px 20px;
  background: var(--smb-soft);
  border-radius: 12px;
}
html body .review__note dt {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  padding: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}
html body .review__note dt::before {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--smb-lime);
}
html body .review__note dd { margin: 0; padding: 0; }
html body .review__note ul { margin: 0; padding: 0; list-style: none; }
html body .review__note li {
  position: relative;
  margin: 0;
  padding: 0 0 0 16px;
  color: var(--smb-text);
  font-size: 13px;
  line-height: 1.8;
  list-style: none;
}
html body .review__note li + li { margin-top: 4px; }
html body .review__note li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .8em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--smb-lime);
}

/* ---------- 3. return policy link ---------- */
html body .fs-c-returnedSpecialContract { margin: 0; padding: 0; text-align: left; }
html body .fs-c-returnedSpecialContract__link { margin: 0; padding: 0; text-align: left; font-size: 14px; line-height: 1.7; }
html body .fs-c-returnedSpecialContract__link a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--smb-lime);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--smb-lime);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: color .2s, background-color .2s;
}
html body .fs-c-returnedSpecialContract__link a::after { content: "›"; text-decoration: none; display: inline-block; font-size: 1.2em; line-height: 1; }
html body .fs-c-returnedSpecialContract__link a:hover { color: var(--smb-lime-hover); background: var(--smb-tint); }
html body .fs-c-returnedSpecialContract__link a:visited { color: var(--smb-lime); }

@media (max-width: 640px) {
  html body .fs-c-productReview { flex-direction: column; align-items: stretch; padding: 18px 16px; }
  html body .fs-c-productReview__addReview { width: 100%; }
  html body .fs-c-productReview__addReview a { width: 100% !important; }
}


/* ==========================================================================
   商品詳細: out-of-stock notice  (.fs-c-productNotice--outOfStock)
   overrides the system:  padding: 1em; background-color: #EFEFEF;
   ========================================================================== */
html body .fs-c-productNotice--outOfStock {
  --smb-lime: var(--smb-green);
  --smb-lime-hover: var(--smb-green-dark);
  --smb-tint: var(--smb-green-100);
  --smb-line: #e7ebd6;
  --smb-text: #3b3b3b;
  --smb-muted: #6b6b6b;
  --smb-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
                              /* inside the purchase panel: just above quantity / cart */
  position: relative;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 18px 20px 18px 64px !important;       /* room for the icon on the left */
  background: var(--smb-tint) !important;        /* was #EFEFEF */
  border: 0 !important;
  border-radius: 14px !important;
  color: var(--smb-text);
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}
/* "!" badge */
html body .fs-c-productNotice--outOfStock::before {
  content: "!";
  position: absolute;
  left: 20px;
  top: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--smb-lime);
  color: var(--smb-text);
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
}

/* phone number: green link with a small handset icon */
html body .fs-c-productNotice--outOfStock a {
  color: var(--smb-lime);
  font-weight: 700;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-color: var(--smb-lime);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: color .2s, background-color .2s;
}
html body .fs-c-productNotice--outOfStock a:hover { color: var(--smb-lime-hover); background: #fff; }
html body .fs-c-productNotice--outOfStock a[href^="tel:"]::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 4px;
  vertical-align: -2px;
  background: currentColor;
  -webkit-mask: var(--smb-phone) center / contain no-repeat;
          mask: var(--smb-phone) center / contain no-repeat;
}

/* opening hours: separated by a thin line, quieter */
html body .fs-c-productNotice--outOfStock p {
  margin: 12px 0 0 !important;
  padding: 12px 0 0 !important;
  border-top: 1px solid rgba(162, 197, 82, .4);
  color: var(--smb-text);
  font-size: 13px !important;
  line-height: 1.7;
}

@media (max-width: 640px) {
  html body .fs-c-productNotice--outOfStock { padding: 16px 16px 16px 56px !important; font-size: 13px; }
  html body .fs-c-productNotice--outOfStock::before { left: 16px; top: 16px; width: 26px; height: 26px; font-size: 15px; }
}


/* ---- placement: put the notice in the LEFT column, right under the content (under 返品特約について) ---- */
html body .fs-c-productNotice--outOfStock {
  order: 0 !important;
  grid-column: 1 !important;                  /* left column of the product grid */
  grid-row: auto !important;                  /* first free row below the left column */
  align-self: start !important;
  justify-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 0 !important;
}
@media (max-width: 1100px) {
  html body .fs-c-productNotice--outOfStock { grid-column: 1 !important; }
}


/* ==========================================================================
   商品詳細: product name  (h1.fs-c-productNameHeading)
   full width, lime line at the bottom (system: margin auto, pink 1px border)
   ========================================================================== */
html body .fs-c-productNameHeading {
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;                       /* full width of the column */
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 14px !important;
  border: 0 !important;
  border-bottom: 3px solid var(--smb-green) !important;  /* was: 1px solid #e95375 */
  background: none !important;
  color: #3b3b3b;
  font-size: 24px;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}
html body .fs-c-productNameHeading__name {
  display: inline;
  color: inherit;
  font: inherit;
}

@media (max-width: 1100px) {
  html body .fs-c-productNameHeading { padding-bottom: 12px !important; font-size: 20px; }
}



/* ==========================================================
   スマべび — SHOPPING CART REDESIGN
   futureshop native HTML / CSS only
   Scope: .fs-l-cart__contentsArea
   ========================================================== */

/* 01. DESIGN TOKENS
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea {
  --cart-green: var(--smb-green, #a2c552);
  --cart-green-dark: var(--smb-green-dark, #739230);
  --cart-green-light: var(--smb-green-100, #f0f7e0);
  --cart-bg: #fafcf6;
  --cart-tile: #f1f4e8;
  --cart-text: var(--smb-text, #3b3b3b);
  --cart-muted: var(--smb-muted, #747474);
  --cart-accent: var(--smb-accent, #ec6856);
  --cart-border: var(--smb-line, #e6eadb);
  --cart-radius: 16px;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 24px 0 64px;
  color: var(--cart-text);
  font-family: var(--smb-font, "Noto Sans JP", sans-serif);
  font-size: 15px;
  line-height: 1.6;
}

.fs-l-cart__contentsArea *,
.fs-l-cart__contentsArea *::before,
.fs-l-cart__contentsArea *::after {
  box-sizing: border-box;
}

/* 02. CART LAYOUT
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea .fs-l-cart__mainColumn,
.fs-l-cart__contentsArea .fs-l-cart__sideColumn {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  float: none;
}

.fs-l-cart__contentsArea .fs-c-cartTableContainer {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: visible;
}

/* 03. TABLE -> CLEAN CARD LIST
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea .fs-c-cartTable {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-collapse: separate;
  border-spacing: 0 14px;
  table-layout: fixed;
  background: transparent;
}

/* Hide old grey heading */

.fs-l-cart__contentsArea
.fs-c-cartTable > thead {
  display: none;
}

/* Product row becomes a soft card */

.fs-l-cart__contentsArea
.fs-c-cartTable > tbody > .fs-c-cartTable__row {
  background: var(--smb-green-50);
  box-shadow: none;
}

/* Remove old table borders */

.fs-l-cart__contentsArea
.fs-c-cartTable > tbody > tr > .fs-c-cartTable__dataCell {
  padding: 24px 12px;
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  background: var(--smb-green-50);
  vertical-align: middle;
  text-align: left;
  font-size: 14px;
  color: var(--cart-text);
}

/* Rounded left and right edges */

.fs-l-cart__contentsArea
.fs-c-cartTable > tbody > tr > td:first-child {
  padding-left: 20px;
  border-left: 0 !important;
  border-radius: var(--cart-radius) 0 0 var(--cart-radius);
}

.fs-l-cart__contentsArea
.fs-c-cartTable > tbody > tr > td:last-child {
  padding-right: 20px;
  border-right: 0 !important;
  border-radius: 0 var(--cart-radius) var(--cart-radius) 0;
}

/* Column sizing */

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--product {
  width: 52%;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--quantity {
  width: 11%;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--subtotal {
  width: 15%;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--point {
  width: 8%;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--action {
  width: 14%;
}

/* 04. PRODUCT IMAGE AND INFORMATION
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__product {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__productImage {
  flex: 0 0 140px;
  width: 140px;
  height: 140px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 12px;
  background: var(--cart-tile);
}

.fs-l-cart__contentsArea
.fs-c-cartTable__productImage a {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__productImage img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  margin: 0;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .3s ease;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__productImage a:hover img {
  transform: scale(1.05);
}

.fs-l-cart__contentsArea
.fs-c-cartTable__productInfo {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* Product name */

.fs-l-cart__contentsArea
.fs-c-cartTable__productName {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-listedProductName__name {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  color: var(--cart-text) !important;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none !important;
  overflow-wrap: anywhere;
}

.fs-l-cart__contentsArea
.fs-c-listedProductName__name::before,
.fs-l-cart__contentsArea
.fs-c-listedProductName__name::after {
  content: none !important;
}

.fs-l-cart__contentsArea
a.fs-c-listedProductName__name:hover {
  color: var(--cart-green-dark) !important;
}

/* Product variations -> soft pills */

.fs-l-cart__contentsArea
.fs-c-listedProductName__variation,
.fs-l-cart__contentsArea
.fs-c-listedProductName__selection {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  color: var(--cart-muted);
  font-size: 12px;
}

.fs-l-cart__contentsArea
.fs-c-listedProductName__variation__choice,
.fs-l-cart__contentsArea
.fs-c-listedProductName__selection__choice {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--cart-green-light);
  color: var(--cart-green-dark);
  font-size: 12px;
  line-height: 1.5;
}

/* Remove system brackets and separators */

.fs-l-cart__contentsArea
.fs-c-listedProductName__variation__choice::before,
.fs-l-cart__contentsArea
.fs-c-listedProductName__variation__choice::after {
  content: none !important;
}

/* 05. UNIT PRICE
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice {
  margin: 4px 0 0;
  padding: 0;
  text-align: left;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice .fs-c-productPrice {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice .fs-c-productPrice__main {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
  margin: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-productPrice__main__price {
  display: inline-flex;
  align-items: baseline;
  color: var(--cart-green-dark);
  font-weight: 700;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-price__currencyMark {
  font-size: 15px;
  color: inherit;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-price__value {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: inherit;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-productPrice__addon,
.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-productPrice__main__addon {
  color: var(--cart-muted);
  font-size: 11px;
  font-weight: 400;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__unitPrice
.fs-c-productPrice__main__label {
  color: var(--cart-muted);
  font-size: 12px;
}

/* 06. QUANTITY SELECTOR
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity {
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity.fs-c-quantity {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__select,
.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__number {
  width: 90px;
  max-width: 100%;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0 28px 0 16px;
  border: 1px solid var(--cart-border);
  border-radius: 999px;
  background-color: #fff;
  color: var(--cart-text);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  box-shadow: none;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__select {
  cursor: pointer;
  appearance: auto;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__number {
  padding: 0 12px;
  text-align: center;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__select:focus,
.fs-l-cart__contentsArea
.fs-c-cartTable__quantity .fs-c-quantity__number:focus {
  outline: 2px solid var(--cart-green);
  outline-offset: 2px;
  border-color: var(--cart-green);
}

.fs-l-cart__contentsArea
.fs-c-quantity__message {
  color: var(--cart-accent);
  font-size: 12px;
}

/* 07. SUBTOTAL AND POINTS
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--subtotal {
  white-space: nowrap;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--subtotal .fs-c-cartTable__price {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  color: var(--cart-text);
  font-weight: 700;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--subtotal .fs-c-price__currencyMark {
  font-size: 13px;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--subtotal .fs-c-price__value {
  font-size: 18px;
  font-weight: 700;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__dataCell--point {
  font-size: 14px;
  font-weight: 600;
  color: var(--cart-green-dark);
}

/* 08. ACTION BUTTONS
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton__container {
  width: 100%;
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  margin: 0;
  padding: 8px 10px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--smb-green-100) !important;
  box-shadow: none !important;
  color: var(--cart-text) !important;
  font-family: inherit;
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s, border-color .2s;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button::before,
.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button::after {
  content: none !important;
  display: none !important;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button .fs-c-button__label {
  padding: 0;
  margin: 0;
  color: inherit !important;
  background: none !important;
  font: inherit;
  white-space: normal;
}

/* Remove */

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton .fs-c-button--cancel--cart {
  color: #b94f46 !important;
  border-color: transparent !important;
  background: #fff !important;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton .fs-c-button--cancel--cart:hover {
  background: #fff2f0 !important;
  border-color: transparent !important;
}

/* Save for later */

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton .fs-c-button--buyItLater {
  background: var(--cart-green-light) !important;
  border-color: var(--cart-green-light) !important;
  color: var(--cart-green-dark) !important;
}

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton .fs-c-button--buyItLater:hover {
  background: #e4efcb !important;
  border-color: var(--cart-green) !important;
}

/* Disabled */

.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button:disabled,
.fs-l-cart__contentsArea
.fs-c-cartTable__actionButton button.is-disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* 09. TOTAL AREA
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-totalAndActions {
  width: 100%;
  max-width: 100%;
  margin: 24px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Summary card */

.fs-l-cart__contentsArea
#fs-cartTotals-container {
  width: 100%;
  margin: 0;
  padding: 24px 28px;
  border: 0;
  border-radius: 20px;
  background: var(--cart-green-light);
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-collapse: collapse;
  background: transparent;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable tr {
  border: 0;
  background: transparent;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable th,
.fs-l-cart__contentsArea
.fs-c-orderTotalTable td {
  width: auto;
  padding: 10px 0;
  border: 0 !important;
  background: transparent !important;
  color: var(--cart-text);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable th {
  text-align: left;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable td {
  text-align: right;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable .fs-c-string--label {
  color: inherit;
  font: inherit;
}

/* Grand total */

.fs-l-cart__contentsArea
.fs-c-orderTotalTable__mainRow th,
.fs-l-cart__contentsArea
.fs-c-orderTotalTable__mainRow td {
  padding-top: 18px;
  padding-bottom: 18px;
  border-top: 1px solid var(--cart-border) !important;
  border-bottom: 1px solid var(--cart-border) !important;
  font-size: 17px;
  font-weight: 700;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable__mainRow td {
  color: var(--cart-green-dark);
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable__mainRow .fs-c-price__currencyMark {
  font-size: 16px;
}

.fs-l-cart__contentsArea
.fs-c-orderTotalTable__mainRow .fs-c-price__value {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.3;
}

/* Points */

.fs-l-cart__contentsArea
.fs-c-orderTotalTable__getPoint td {
  color: var(--cart-green-dark);
  font-weight: 700;
}

/* 10. CHECKOUT AREA
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-purchaseHere {
  margin: 24px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.fs-l-cart__contentsArea
.fs-c-purchaseHere__message {
  margin: 0 0 16px;
  padding: 0;
  color: var(--cart-muted);
  font-size: 13px;
  text-align: center;
}

.fs-l-cart__contentsArea
.fs-c-purchaseHere__message p {
  margin: 0;
}

/* Primary checkout CTA */

.fs-l-cart__contentsArea
.fs-c-buttonContainer--purchaseHere {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0;
}

.fs-l-cart__contentsArea
.fs-c-button--purchaseHere {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 450px;
  min-height: 60px;
  padding: 16px 30px !important;
  border: 1px solid var(--cart-green) !important;
  border-radius: 999px !important;
  background: var(--cart-green) !important;
  box-shadow: 0 6px 18px rgba(162,197,82,.22) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 17px !important;
  font-weight: 700;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color .2s, transform .2s;
}

.fs-l-cart__contentsArea
.fs-c-button--purchaseHere:hover {
  background: var(--cart-green-dark) !important;
  border-color: var(--cart-green-dark) !important;
  color: #fff !important;
  transform: translateY(-2px);
}

.fs-l-cart__contentsArea
.fs-c-button--purchaseHere .fs-c-button__label {
  color: inherit !important;
  font: inherit;
  background: none !important;
}

.fs-l-cart__contentsArea
.fs-c-button--purchaseHere::before,
.fs-l-cart__contentsArea
.fs-c-button--purchaseHere::after {
  content: none !important;
}

/* Other checkout options */

.fs-l-cart__contentsArea
.fs-c-cartPayment {
  max-width: 100%;
}

.fs-l-cart__contentsArea
.fs-c-cartPayment__button {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.fs-l-cart__contentsArea
.fs-c-payWithAmazon,
.fs-l-cart__contentsArea
.fs-c-applePay {
  margin-top: 16px;
  text-align: center;
}

.fs-l-cart__contentsArea
.fs-c-payWithAmazon__message {
  color: var(--cart-muted);
  font-size: 12px;
}

.fs-l-cart__contentsArea
#AmazonPayButton {
  max-width: 100% !important;
  margin-inline: auto;
}

/* 11. ADDITIONAL SYSTEM MESSAGES
   ---------------------------------------------------------- */

.fs-l-cart__contentsArea
.fs-c-cartTable__message,
.fs-l-cart__contentsArea
.fs-c-cartTable__salesPeriod {
  padding: 8px 12px;
  border: 0;
  border-radius: 8px;
  background: var(--cart-bg);
  color: var(--cart-muted);
  font-size: 12px;
}

.fs-l-cart__contentsArea
.fs-c-cartDiscountInfo {
  margin: 20px 0;
  padding: 20px;
  border: 1px solid var(--cart-border);
  border-radius: 16px;
  background: var(--cart-green-light);
  color: var(--cart-text);
}

.fs-l-cart__contentsArea
.fs-c-cartDiscountInfo__note {
  color: var(--cart-muted);
  font-size: 12px;
}

/* Accessibility */

.fs-l-cart__contentsArea a:focus-visible,
.fs-l-cart__contentsArea button:focus-visible,
.fs-l-cart__contentsArea select:focus-visible {
  outline: 2px solid var(--cart-green-dark);
  outline-offset: 3px;
}

/* 12. TABLET
   ---------------------------------------------------------- */

@media (max-width: 1100px) {

  .fs-l-cart__contentsArea
  .fs-c-cartTable__productImage {
    flex-basis: 110px;
    width: 110px;
    height: 110px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__product {
    gap: 14px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--product {
    width: 45%;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--quantity {
    width: 12%;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--subtotal {
    width: 17%;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--point {
    width: 9%;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--action {
    width: 17%;
  }

  .fs-l-cart__contentsArea
  .fs-c-listedProductName__name {
    font-size: 14px;
  }

}

/* 13. MOBILE — TABLE -> STACKED PRODUCT CARDS
   ---------------------------------------------------------- */

@media (max-width: 767px) {

  .fs-l-cart__contentsArea {
    padding: 16px 0 40px;
    font-size: 14px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable,
  .fs-l-cart__contentsArea
  .fs-c-cartTable > tbody {
    display: block;
    width: 100%;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable > thead {
    display: none !important;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable > tbody > .fs-c-cartTable__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0 12px;
    width: 100%;
    margin: 0 0 14px;
    padding: 16px;
    border: 1px solid var(--cart-border);
    border-radius: 16px;
    background: #fff;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable > tbody > tr > .fs-c-cartTable__dataCell {
    display: block;
    width: auto !important;
    min-width: 0;
    margin: 0;
    padding: 12px 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
    text-align: left;
  }

  /* Product full width */

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--product {
    grid-column: 1 / -1;
    padding: 0 0 18px !important;
    border-bottom: 1px solid var(--cart-border) !important;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__product {
    align-items: flex-start;
    gap: 12px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__productImage {
    flex: 0 0 104px;
    width: 104px;
    height: 104px;
    border-radius: 10px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__productInfo {
    gap: 8px;
  }

  .fs-l-cart__contentsArea
  .fs-c-listedProductName__name {
    font-size: 14px;
    line-height: 1.5;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__unitPrice .fs-c-price__value {
    font-size: 21px;
  }

  /* Quantity and subtotal */

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--quantity {
    grid-column: 1;
    grid-row: 2;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--subtotal {
    grid-column: 2;
    grid-row: 2;
    text-align: right !important;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--quantity::before,
  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--subtotal::before,
  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--point::before {
    content: attr(data-cell-label);
    display: block;
    margin-bottom: 8px;
    color: var(--cart-muted);
    font-size: 11px;
    font-weight: 500;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__quantity .fs-c-quantity__select,
  .fs-l-cart__contentsArea
  .fs-c-cartTable__quantity .fs-c-quantity__number {
    width: 100px;
    height: 42px;
    min-height: 42px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--subtotal .fs-c-price__value {
    font-size: 19px;
  }

  /* Points */

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--point {
    grid-column: 1 / -1;
    grid-row: 3;
    padding: 10px 0 !important;
    border-top: 1px solid var(--cart-border) !important;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--point::before {
    display: inline;
    margin: 0 8px 0 0;
  }

  /* Actions */

  .fs-l-cart__contentsArea
  .fs-c-cartTable__dataCell--action {
    grid-column: 1 / -1;
    grid-row: 4;
    padding: 12px 0 0 !important;
    border-top: 1px solid var(--cart-border) !important;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__actionButton {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__actionButton__container {
    flex: 1;
    min-width: 0;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__actionButton button {
    min-height: 42px;
    font-size: 13px !important;
  }

  /* Totals */

  .fs-l-cart__contentsArea
  .fs-c-totalAndActions {
    margin-top: 20px;
  }

  .fs-l-cart__contentsArea
  #fs-cartTotals-container {
    padding: 18px 20px;
    border-radius: 16px;
  }

  .fs-l-cart__contentsArea
  .fs-c-orderTotalTable__mainRow .fs-c-price__value {
    font-size: 26px;
  }

  .fs-l-cart__contentsArea
  .fs-c-button--purchaseHere {
    max-width: none;
    min-height: 56px;
    font-size: 16px !important;
  }
}

/* 14. SMALL PHONES
   ---------------------------------------------------------- */

@media (max-width: 380px) {

  .fs-l-cart__contentsArea
  .fs-c-cartTable__productImage {
    flex-basis: 84px;
    width: 84px;
    height: 84px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable > tbody > .fs-c-cartTable__row {
    padding: 12px;
  }

  .fs-l-cart__contentsArea
  .fs-c-listedProductName__name {
    font-size: 13px;
  }

  .fs-l-cart__contentsArea
  .fs-c-cartTable__unitPrice .fs-c-price__value {
    font-size: 19px;
  }
}

/* 15. REDUCED MOTION
   ---------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .fs-l-cart__contentsArea *,
  .fs-l-cart__contentsArea *::before,
  .fs-l-cart__contentsArea *::after {
    transition: none !important;
    animation: none !important;
  }
}


/* Cart column sizing & full-width consolidation (no duplicate patches) */
.fs-l-cart__contentsArea .fs-c-cartTable { width: 100%; table-layout: fixed; }
.fs-l-cart__contentsArea .fs-c-cartTable__dataCell--product { width: 54%; }
.fs-l-cart__contentsArea .fs-c-cartTable__dataCell--quantity { width: 11%; }
.fs-l-cart__contentsArea .fs-c-cartTable__dataCell--subtotal { width: 14%; text-align: center; }
.fs-l-cart__contentsArea .fs-c-cartTable__dataCell--point { width: 7%; text-align: center; }
.fs-l-cart__contentsArea .fs-c-cartTable__dataCell--action { width: 14%; }
.fs-l-cart__contentsArea .fs-c-cartTable__product { align-items: center; }
.fs-l-cart__contentsArea .fs-c-cartTable__quantity { justify-content: center; }
.fs-l-cart__contentsArea .fs-c-cartTable__actionButton button { min-width: 0; }
.fs-l-cart__contentsArea .fs-c-button--purchaseHere { max-width: none; }
.fs-l-cart__contentsArea #AmazonPayButton { max-width: 100% !important; }
@media (min-width: 768px) and (max-width: 1100px) {
  .fs-l-cart__contentsArea .fs-c-cartTable__dataCell--product { width: 50%; }
  .fs-l-cart__contentsArea .fs-c-cartTable__dataCell--quantity { width: 11%; }
  .fs-l-cart__contentsArea .fs-c-cartTable__dataCell--subtotal { width: 15%; }
  .fs-l-cart__contentsArea .fs-c-cartTable__dataCell--point { width: 8%; }
  .fs-l-cart__contentsArea .fs-c-cartTable__dataCell--action { width: 16%; }
}
@media (max-width: 767px) {
  .fs-l-cart__contentsArea .fs-c-cartTable > tbody > tr > .fs-c-cartTable__dataCell--subtotal { text-align: right; }
  .fs-l-cart__contentsArea .fs-c-cartTable > tbody > tr > .fs-c-cartTable__dataCell--point { text-align: left; }
}

/* ==========================================================
   スマべび — MY PAGE / ACCOUNT SERVICE
   futureshop CSS override
   ========================================================== */

/* 01. Account service grid */

html body .fs-c-accountService {
  --my-green: var(--smb-green, #a2c552);
  --my-green-dark: var(--smb-green-dark, #739230);
  --my-green-light: var(--smb-green-100, #f0f7e0);
  --my-text: var(--smb-text, #3b3b3b);
  --my-muted: var(--smb-muted, #747474);
  --my-border: var(--smb-line, #e6eadb);

  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
  background: transparent !important;
}

/* 02. Remove futureshop default styling */

html body .fs-c-accountService > li,
html body .fs-c-accountService__page {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

html body .fs-c-accountService > li::before,
html body .fs-c-accountService > li::after {
  content: none !important;
  display: none !important;
}

/* 03. Card button */

html body .fs-c-accountService__pageLink {
  position: relative;

  display: flex !important;
  align-items: center;
  gap: 14px;

  width: 100% !important;
  min-width: 0;
  min-height: 92px;

  margin: 0 !important;
  padding: 20px 22px !important;

  background: var(--smb-green-50) !important;
  border: 0 !important;
  border-radius: 16px !important;

  box-shadow: none !important;

  color: var(--my-text) !important;
  text-align: left;
  text-decoration: none !important;

  font-family: var(
    --smb-font,
    "Noto Sans JP",
    sans-serif
  );

  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;

  cursor: pointer;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    transform .2s ease;
}

/* Remove old theme decorations */

html body .fs-c-accountService__pageLink::after {
  content: "" !important;

  position: static !important;
  display: block !important;
  flex: 0 0 8px;

  width: 8px !important;
  height: 8px !important;

  margin: 0 4px 0 auto !important;

  border: 0 !important;
  border-top: 2px solid var(--my-green) !important;
  border-right: 2px solid var(--my-green) !important;

  background: none !important;
  box-shadow: none !important;

  transform: rotate(45deg) !important;
}

/* 04. Icon container */

html body .fs-c-accountService__pageLink::before {
  content: "" !important;

  position: static !important;
  display: block !important;
  flex: 0 0 48px;

  width: 48px !important;
  height: 48px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 14px;

  background-color: var(--smb-green-100) !important;
  background-image: var(--my-icon) !important;
  background-position: center !important;
  background-size: 23px 23px !important;
  background-repeat: no-repeat !important;

  box-shadow: none !important;
  transform: none !important;
}

/* 05. Text label */

html body .fs-c-accountService__pageLink__label {
  display: block !important;
  flex: 1;
  min-width: 0;

  margin: 0 !important;
  padding: 0 !important;

  background: none !important;
  color: inherit !important;

  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: left !important;
}

html body
.fs-c-accountService__pageLink__label
.fs-c-string--label {
  display: block;
  margin: 0;
  padding: 0;

  color: inherit !important;
  background: none !important;

  font: inherit !important;
  text-decoration: none !important;
}

/* 06. Interactions */

@media (hover: hover) {
  html body .fs-c-accountService__pageLink:hover {
    background: #edf5dd !important;
    border-color: transparent !important;

    box-shadow: 0 8px 22px rgba(115, 146, 48, .10) !important;

    color: var(--my-green-dark) !important;

    transform: translateY(-2px);
  }
}

html body .fs-c-accountService__pageLink:active {
  transform: translateY(0);
  background: var(--smb-green-100) !important;
}

html body .fs-c-accountService__pageLink:focus-visible {
  outline: 2px solid var(--my-green-dark);
  outline-offset: 3px;
}

/* ==========================================================
   07. ICONS
   SVG masks using CSS background images.
   No HTML changes or external icon libraries.
   ========================================================== */

/* Coupon */
html body .fs-c-accountService__page--couponList {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v4a3 3 0 0 0 0 6v4H4v-4a3 3 0 0 0 0-6V5z'/%3E%3Cpath d='M12 5v2m0 3v4m0 3v2' stroke-dasharray='2 3'/%3E%3C/svg%3E");
}

/* Wishlist */
html body .fs-c-accountService__page--wishList {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1.1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");
}

/* Orders */
html body .fs-c-accountService__page--orderHistoryList {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h4'/%3E%3C/svg%3E");
}

/* Points */
html body .fs-c-accountService__page--pointHistory {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m12 6 1.8 3.8 4.2.6-3 3 .7 4.2-3.7-2-3.7 2 .7-4.2-3-3 4.2-.6L12 6z'/%3E%3C/svg%3E");
}

/* Reviews */
html body .fs-c-accountService__page--accountReviews {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11.5a8 8 0 0 1-8 8H5l1.5-4A8 8 0 1 1 20 11.5z'/%3E%3Cpath d='M8 11h8M8 14h5'/%3E%3C/svg%3E");
}

/* Addresses */
html body .fs-c-accountService__page--addressbook {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

/* Password */
html body .fs-c-accountService__page--accountPassword {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10' width='14' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3M12 14v3'/%3E%3C/svg%3E");
}

/* Account settings */
html body .fs-c-accountService__page--accountSettingsModify {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739230' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='8' r='4'/%3E%3Cpath d='M3 20v-2a6 6 0 0 1 10-4.5M15 17l5-5 2 2-5 5-3 1z'/%3E%3C/svg%3E");
}

/* Delete account */
html body .fs-c-accountService__page--accountDelete {
  --my-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b96b61' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6 7l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E");
}

/* Delete account: less prominent, slight red accent */
html body
.fs-c-accountService__page--accountDelete
.fs-c-accountService__pageLink::before {
  background-color: #fff2f0 !important;
}

html body
.fs-c-accountService__page--accountDelete
.fs-c-accountService__pageLink {
  color: var(--my-muted) !important;
  background: #faf7f5 !important;
}

html body
.fs-c-accountService__page--accountDelete
.fs-c-accountService__pageLink:hover {
  border-color: transparent !important;
  background: #fff0ed !important;
  color: #b96b61 !important;
}

/* ==========================================================
   08. RESPONSIVE
   ========================================================== */

/* Tablet */

@media (max-width: 1024px) {
  html body .fs-c-accountService {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
  }

  html body .fs-c-accountService__pageLink {
    min-height: 82px;
    padding: 16px 18px !important;
  }
}

/* Mobile */

@media (max-width: 640px) {
  html body .fs-c-accountService {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px !important;

    padding: 0 !important;
    margin: 0 !important;
  }

  html body .fs-c-accountService__pageLink {
    min-height: 72px;
    padding: 12px 16px !important;
    border-radius: 14px !important;
    gap: 12px;
    font-size: 14px;
  }

  html body .fs-c-accountService__pageLink::before {
    flex-basis: 44px;
    width: 44px !important;
    height: 44px !important;
    background-size: 21px 21px !important;
    border-radius: 12px;
  }
}

/* Accessibility */

@media (prefers-reduced-motion: reduce) {
  html body .fs-c-accountService__pageLink {
    transition: none !important;
  }
}

/* ========================================================================== 
   RENTAL CATEGORY INDEX — unified スマべび system (native freepage markup)
   ========================================================================== */
.fs-l-main:has(> .rentallist__wrapper) .freepage__pagetitle {
  margin: 0 0 32px; padding: 0; background: none; border: 0;
}
.fs-l-main:has(> .rentallist__wrapper) .freepage__pagetitle .-inner {
  width: 100%; max-width: none; margin: 0; padding: 0;
}
.fs-l-main:has(> .rentallist__wrapper) .freepage__pagetitle .-headline {
  margin: 0; padding: 0; color: var(--smb-green-dark); font-family: var(--smb-font-round);
  font-size: 30px; font-weight: 700; line-height: 1.5; border: 0; background: none;
}
.fs-l-main:has(> .rentallist__wrapper) .freepage__pagetitle .-en {
  margin: 4px 0 0; padding: 0; font-size: 13px; color: var(--smb-muted);
}
.fs-l-main > .rentallist__wrapper {
  display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px;
  width: 100%; max-width: none; margin: 0; padding: 0;
  list-style: none; color: var(--smb-text); font-family: var(--smb-font);
}
.fs-l-main > .rentallist__wrapper * { box-sizing: border-box; }
.fs-l-main > .rentallist__wrapper > li {
  display: flex; align-items: flex-start; gap: 20px; min-width: 0; margin: 0; padding: 20px;
  list-style: none; background: var(--smb-green-50); border: 0; border-radius: 20px;
  transition: background-color .2s, transform .2s;
}
.fs-l-main > .rentallist__wrapper > li::before,
.fs-l-main > .rentallist__wrapper > li::after { content: none !important; display: none !important; }
@media (hover:hover) {
  .fs-l-main > .rentallist__wrapper > li:hover { background: var(--smb-green-100); transform: translateY(-2px); }
}
.fs-l-main .rentallist__photo {
  display: block; flex: 0 0 160px; width: 160px; height: 160px;
  margin: 0; padding: 0; overflow: hidden; background: #fff;
  border: 0; border-radius: 14px; text-decoration: none;
}
.fs-l-main .rentallist__photo img {
  display: block; width: 100% !important; height: 100% !important;
  max-width: none; object-fit: contain; transition: transform .3s;
}
.fs-l-main .rentallist__photo:hover img { transform: scale(1.04); }
.fs-l-main .rentallist__inner { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 14px; margin: 0; padding: 0; }
.fs-l-main div.rentallist__headline { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; }
.fs-l-main a.rentallist__headline {
  position: relative; display: block; padding: 0 20px 0 0; margin: 0;
  background: none; color: var(--smb-green-dark); font-size: 18px; font-weight: 700;
  line-height: 1.5; text-decoration: none;
}
.fs-l-main a.rentallist__headline:hover { color: var(--smb-green); }
.fs-l-main a.rentallist__headline::after {
  content: ''; position: absolute; top: .55em; right: 3px; width: 8px; height: 8px;
  border-top: 2px solid var(--smb-green); border-right: 2px solid var(--smb-green);
  transform: rotate(45deg);
}
.fs-l-main div.rentallist__headline p {
  margin: 0; padding: 0; color: var(--smb-muted);
  font-size: 13px; line-height: 1.8;
}
.fs-l-main .rentallist__category {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none;
}
.fs-l-main .rentallist__category > li { margin: 0; padding: 0; list-style: none; }
.fs-l-main .rentallist__category > li::before { content: none !important; }
.fs-l-main .rentallist__category a {
  display: inline-flex; align-items: center; min-height: 34px; padding: 7px 13px;
  background: #fff; color: var(--smb-green-dark); border: 0; border-radius: 999px;
  text-decoration: none; font-size: 12px; font-weight: 500; line-height: 1.5;
  transition: background-color .2s, color .2s;
}
.fs-l-main .rentallist__category a:hover { background: var(--smb-green); color: #fff; }
.fs-l-main:has(> .rentallist__wrapper) .backbutton__wrapper {
  display: flex; justify-content: center; margin: 40px 0 56px; padding: 0;
}
.fs-l-main:has(> .rentallist__wrapper) .backbutton__wrapper > a {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; min-width: 240px; padding: 12px 28px;
  background: var(--smb-green); color: #fff; border: 0; border-radius: 999px;
  text-decoration: none; font-size: 14px; font-weight: 700;
}
.fs-l-main:has(> .rentallist__wrapper) .backbutton__wrapper > a:hover { background: var(--smb-green-dark); }
.fs-l-main:has(> .rentallist__wrapper) .backbutton__wrapper .arw { color: inherit; }
.fs-l-main:has(> .rentallist__wrapper) .guide__table.-green {
  width: 100%; border: 0; border-collapse: separate; border-spacing: 10px;
  table-layout: fixed; margin: 0 0 48px; background: none;
}
.fs-l-main:has(> .rentallist__wrapper) .guide__table.-green caption {
  padding: 0 0 16px; text-align: left; color: var(--smb-green-dark);
  font-size: 20px; font-weight: 700;
}
.fs-l-main:has(> .rentallist__wrapper) .guide__table.-green td { padding: 0; border: 0; background: none; }
.fs-l-main:has(> .rentallist__wrapper) .guide__table.-green td a {
  display: flex; align-items: center; min-height: 60px; padding: 14px 18px;
  background: var(--smb-green-50); color: var(--smb-text); border: 0; border-radius: 14px;
  font-size: 14px; text-decoration: none;
}
.fs-l-main:has(> .rentallist__wrapper) .guide__table.-green td a:hover {
  background: var(--smb-green-100); color: var(--smb-green-dark);
}
@media (max-width: 1100px) {
  .fs-l-main > .rentallist__wrapper { gap: 14px; }
  .fs-l-main > .rentallist__wrapper > li { flex-direction: column; padding: 16px; }
  .fs-l-main .rentallist__photo { flex: none; width: 100%; height: auto; aspect-ratio: 16/9; }
}
@media (max-width: 640px) {
  .fs-l-main > .rentallist__wrapper { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .fs-l-main > .rentallist__wrapper > li { flex-direction: row; gap: 14px; padding: 14px; border-radius: 16px; }
  .fs-l-main .rentallist__photo { flex: 0 0 104px; width: 104px; height: 104px; aspect-ratio: 1; }
  .fs-l-main a.rentallist__headline { font-size: 15px; }
  .fs-l-main div.rentallist__headline p { font-size: 12px; }
  .fs-l-main .rentallist__category a { min-height: 30px; padding: 5px 10px; font-size: 11px; }
  .fs-l-main:has(> .rentallist__wrapper) .freepage__pagetitle .-headline { font-size: 24px; }
  .fs-l-main:has(> .rentallist__wrapper) .guide__table.-green,
  .fs-l-main:has(> .rentallist__wrapper) .guide__table.-green tbody,
  .fs-l-main:has(> .rentallist__wrapper) .guide__table.-green tr,
  .fs-l-main:has(> .rentallist__wrapper) .guide__table.-green td { display: block; width: 100%; }
  .fs-l-main:has(> .rentallist__wrapper) .guide__table.-green td { margin-bottom: 8px; }
}
@media (max-width: 380px) {
  .fs-l-main > .rentallist__wrapper > li { gap: 10px; padding: 12px; }
  .fs-l-main .rentallist__photo { flex-basis: 86px; width: 86px; height: 86px; }
}

/* ==========================================================
   スマべび — SELL CATEGORY PAGE
   Same design system as Rental Categories
   futureshop / CSS only
   ========================================================== */

/* 01. GRID */

html body .selllist__wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
  background: transparent !important;

  color: var(--smb-text);
  font-family: var(--smb-font);
}

html body .selllist__wrapper *,
html body .selllist__wrapper *::before,
html body .selllist__wrapper *::after {
  box-sizing: border-box;
}

/* 02. CATEGORY CARDS */

html body .selllist__wrapper > li {
  display: flex !important;
  align-items: flex-start;
  gap: 20px;

  width: 100% !important;
  min-width: 0;
  height: 100%;

  margin: 0 !important;
  padding: 20px !important;

  list-style: none !important;
  background: var(--smb-green-50, #fafcf6) !important;

  border: none !important;
  border-radius: 20px !important;
  box-shadow: none !important;

  transition:
    background-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

/* Remove default bullets */

html body .selllist__wrapper > li::before,
html body .selllist__wrapper > li::after {
  content: none !important;
  display: none !important;
}

/* Hover */

@media (hover: hover) {
  html body .selllist__wrapper > li:hover {
    background: var(--smb-green-100, #f0f7e0) !important;
    transform: translateY(-2px);

    box-shadow:
      0 8px 22px rgba(115, 146, 48, .07) !important;
  }
}

/* 03. PRODUCT IMAGE */

html body .selllist__wrapper .selllist__photo {
  display: block !important;
  flex: 0 0 160px;

  width: 160px !important;
  height: 160px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 14px !important;

  overflow: hidden;
  background: #fff !important;
  text-decoration: none !important;
}

html body .selllist__wrapper .selllist__photo img {
  display: block !important;

  width: 100% !important;
  height: 100% !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  object-fit: contain;
  object-position: center;
  mix-blend-mode: multiply;

  transition: transform .35s ease;
}

@media (hover: hover) {
  html body .selllist__wrapper
  .selllist__photo:hover img {
    transform: scale(1.06);
  }
}

/* 04. CONTENT */

html body .selllist__wrapper .selllist__inner {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 14px;

  width: auto !important;
  min-width: 0;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: none !important;
}

/* 05. TITLE AREA */

html body .selllist__wrapper div.selllist__headline {
  display: flex;
  flex-direction: column;
  gap: 10px;

  width: 100%;
  margin: 0 !important;
  padding: 0 !important;

  border: none !important;
  background: none !important;
}

/* Category title */

html body .selllist__wrapper a.selllist__headline {
  position: relative;
  display: block !important;

  width: 100%;
  margin: 0 !important;
  padding: 0 24px 0 0 !important;

  color: var(--smb-green-dark, #739230) !important;
  background: none !important;

  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;

  text-decoration: none !important;
  overflow-wrap: anywhere;
}

html body .selllist__wrapper
a.selllist__headline::before {
  content: none !important;
  display: none !important;
}

/* Green arrow */

html body .selllist__wrapper
a.selllist__headline::after {
  content: "" !important;

  position: absolute !important;
  top: 9px !important;
  right: 3px !important;
  left: auto !important;

  display: block !important;

  width: 9px !important;
  height: 9px !important;

  margin: 0 !important;
  padding: 0 !important;

  background: none !important;
  border: 0 !important;

  border-top: 2px solid var(--smb-green, #a2c552) !important;
  border-right: 2px solid var(--smb-green, #a2c552) !important;

  transform: rotate(45deg) !important;
  transition: right .2s ease;
}

@media (hover: hover) {
  html body .selllist__wrapper
  a.selllist__headline:hover {
    color: var(--smb-green, #a2c552) !important;
  }

  html body .selllist__wrapper
  a.selllist__headline:hover::after {
    right: 0 !important;
  }
}

/* 06. DESCRIPTION */

html body .selllist__wrapper
div.selllist__headline p {
  margin: 0 !important;
  padding: 0 !important;

  color: var(--smb-muted, #747474) !important;
  background: none !important;

  font-size: 13px !important;
  font-weight: 400;
  line-height: 1.85;
  text-align: left;

  overflow-wrap: anywhere;
}

/* 07. TABLET */

@media (max-width: 1100px) {
  html body .selllist__wrapper {
    gap: 14px !important;
  }

  html body .selllist__wrapper > li {
    flex-direction: column;
    gap: 14px;
    padding: 16px !important;
  }

  html body .selllist__wrapper .selllist__photo {
    flex: none;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
  }

  html body .selllist__wrapper a.selllist__headline {
    font-size: 17px;
  }
}

/* 08. MOBILE */

@media (max-width: 640px) {
  html body .selllist__wrapper {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  html body .selllist__wrapper > li {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;

    padding: 14px !important;
    border-radius: 16px !important;
  }

  html body .selllist__wrapper .selllist__photo {
    flex: 0 0 104px;

    width: 104px !important;
    height: 104px !important;
    aspect-ratio: 1;

    border-radius: 10px !important;
  }

  html body .selllist__wrapper .selllist__inner {
    gap: 10px;
  }

  html body .selllist__wrapper a.selllist__headline {
    font-size: 15px;
    padding-right: 16px !important;
  }

  html body .selllist__wrapper
  div.selllist__headline p {
    font-size: 12px !important;
    line-height: 1.7;
  }

  html body .selllist__wrapper
  a.selllist__headline::after {
    width: 7px !important;
    height: 7px !important;
  }
}

/* 09. SMALL MOBILE */

@media (max-width: 380px) {
  html body .selllist__wrapper > li {
    padding: 12px !important;
    gap: 10px;
  }

  html body .selllist__wrapper .selllist__photo {
    flex-basis: 86px;
    width: 86px !important;
    height: 86px !important;
  }
}

/* 10. ACCESSIBILITY */

html body .selllist__wrapper a:focus-visible {
  outline: 2px solid var(--smb-green-dark);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html body .selllist__wrapper *,
  html body .selllist__wrapper > li {
    transition: none !important;
  }
}

/* ==========================================
   スマべび — EMPTY PRODUCT LIST
   futureshop
   ========================================== */

html body .fs-c-productList:has(> .fs-c-noResultMessage) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Empty state container */

html body .fs-c-productList__message.fs-c-noResultMessage {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;

  width: 100% !important;
  max-width: none !important;
  min-height: 80px;

  margin: 0 !important;
  padding: 24px 28px !important;

  background: var(--smb-green-100, #f0f7e0) !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: none !important;

  box-sizing: border-box;
  text-align: left !important;
}

/* Message text */

html body .fs-c-productList__message
.fs-c-noResultMessage__title {
  display: block !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: none !important;

  color: var(--smb-text, #3b3b3b) !important;
  font-family: var(--smb-font, "Noto Sans JP", sans-serif);
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  text-align: left !important;
}

/* Remove decorative elements from futureshop */

html body .fs-c-noResultMessage::before,
html body .fs-c-noResultMessage::after,
html body .fs-c-noResultMessage__title::before,
html body .fs-c-noResultMessage__title::after {
  content: none !important;
  display: none !important;
}

/* Mobile */

@media (max-width: 640px) {
  html body .fs-c-productList__message.fs-c-noResultMessage {
    min-height: 72px;
    padding: 18px 20px !important;
    border-radius: 14px !important;
  }

  html body .fs-c-productList__message
  .fs-c-noResultMessage__title {
    font-size: 14px !important;
  }
}


