.kadoi-base-shop-section {
  box-sizing: border-box;
  width: min(1120px, calc(100% - 32px));
  margin: 40px auto;
  padding: 0;
  font-family: inherit;
}
.kadoi-base-shop-section * { box-sizing: border-box; }
.kadoi-base-shop-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 28px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid rgba(132, 99, 48, .22);
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(196, 154, 90, .24), transparent 36%),
    linear-gradient(135deg, #fffdf8 0%, #f8f0e3 100%);
  box-shadow: 0 18px 40px rgba(61, 43, 24, .08);
  color: #2f261c;
}
.kadoi-base-shop-section--compact {
  width: min(1040px, calc(100% - 28px));
  margin: 28px auto;
}
.kadoi-base-shop-section--compact .kadoi-base-shop-inner {
  display: block;
  padding: 24px;
  border-radius: 20px;
}
.kadoi-base-shop-copy h2 {
  margin: 0 0 14px;
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  line-height: 1.38;
  letter-spacing: .02em;
  color: #2d2419;
}
.kadoi-base-shop-copy p {
  margin: 0 0 16px;
  line-height: 1.9;
  font-size: 1rem;
}
.kadoi-base-shop-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  margin: 0 0 10px !important;
  color: #8a6026;
  font-size: .82rem !important;
  font-weight: 700;
  letter-spacing: .18em;
}
.kadoi-base-shop-eyebrow::before {
  content: '';
  display: inline-block;
  width: 34px;
  height: 1px;
  background: currentColor;
}
.kadoi-base-shop-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 20px;
}
.kadoi-base-shop-points span {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(118, 83, 33, .22);
  border-radius: 999px;
  padding: 6px 12px;
  background: rgba(255, 255, 255, .64);
  font-size: .9rem;
  color: #5a4329;
}
.kadoi-base-shop-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0 14px;
}
.kadoi-base-btn,
.kadoi-base-btn:visited {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  line-height: 1.35;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.kadoi-base-btn:hover,
.kadoi-base-btn:focus-visible {
  transform: translateY(-1px);
  opacity: .94;
}
.kadoi-base-btn--primary,
.kadoi-base-btn--primary:visited {
  background: #7a4d1d;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(93, 55, 18, .18);
}
.kadoi-base-btn--secondary,
.kadoi-base-btn--secondary:visited {
  background: #fff;
  color: #6f461b !important;
  border: 1px solid rgba(111, 70, 27, .28);
}
.kadoi-base-btn--line,
.kadoi-base-btn--line:visited {
  background: #06c755;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(6, 199, 85, .16);
}
.kadoi-base-shop-note {
  margin-top: 10px !important;
  font-size: .92rem !important;
  color: #675746;
}
.kadoi-base-shop-card {
  position: relative;
  display: flex;
  min-height: 270px;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border-radius: 20px;
  padding: 24px;
  background:
    linear-gradient(160deg, rgba(36, 26, 18, .08), rgba(36, 26, 18, .46)),
    linear-gradient(135deg, #d7c2a0 0%, #9d7241 52%, #4c321e 100%);
  color: #fff;
  isolation: isolate;
}
.kadoi-base-shop-card::before {
  content: '';
  position: absolute;
  inset: 22px 22px auto auto;
  width: 96px;
  height: 96px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  z-index: -1;
}
.kadoi-base-shop-card-label {
  align-self: flex-start;
  margin-bottom: auto;
  border-radius: 999px;
  padding: 6px 11px;
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(4px);
  font-size: .78rem;
  letter-spacing: .08em;
}
.kadoi-base-shop-card-title {
  margin-top: 48px;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.45;
}
.kadoi-base-shop-card-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.kadoi-base-shop-card-list span {
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(255,255,255,.18);
  font-size: .82rem;
}
.kadoi-base-floating-cta {
  position: fixed;
  z-index: 9998;
  right: 18px;
  bottom: 18px;
  display: grid;
  gap: 8px;
  font-family: inherit;
}
.kadoi-base-floating-cta__item,
.kadoi-base-floating-cta__item:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  min-height: 44px;
  border-radius: 999px;
  padding: 10px 14px;
  color: #fff !important;
  font-size: .9rem;
  font-weight: 800;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.kadoi-base-floating-cta__item--tel { background: #49321f; }
.kadoi-base-floating-cta__item--line { background: #06c755; }
.kadoi-base-floating-cta__item--shop { background: #8a5a20; }
.kadoi-base-shop-nav > a,
.kadoi-base-shop-nav a {
  font-weight: 700 !important;
}
.kadoi-base-shop-nav a::after {
  content: '↗';
  display: inline-block;
  margin-left: .25em;
  font-size: .82em;
}
@media (max-width: 782px) {
  .kadoi-base-shop-section {
    width: min(100% - 20px, 720px);
    margin: 28px auto;
  }
  .kadoi-base-shop-inner {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px 18px;
    border-radius: 20px;
  }
  .kadoi-base-shop-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .kadoi-base-shop-card {
    min-height: 210px;
  }
  .kadoi-base-floating-cta {
    left: 10px;
    right: 10px;
    bottom: 10px;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    border-radius: 18px;
    padding: 6px;
    background: rgba(255, 255, 255, .86);
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 28px rgba(0,0,0,.12);
  }
  .kadoi-base-floating-cta__item,
  .kadoi-base-floating-cta__item:visited {
    min-width: 0;
    min-height: 42px;
    border-radius: 14px;
    padding: 9px 6px;
    font-size: .86rem;
    box-shadow: none;
  }
  body { padding-bottom: 68px; }
}
