/* トップページの写真とサービス案内 */
.home-page {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.home-page a:focus-visible,
.home-page button:focus-visible {
  outline: 3px solid #98612b;
  outline-offset: 4px;
}

.home-page .hero-content {
  padding: 22px;
}

.store-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.store-photos img {
  display: block;
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 10px;
}

.home-services {
  margin-top: 22px;
  text-align: left;
}

.home-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.home-service {
  --service-color: #885522;
  --service-tint: #faf2e7;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  padding: 24px;
  border: 1px solid #e9dfd2;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 4px 14px rgb(55 40 25 / 4%);
}

.home-delivery {
  --service-color: #315c40;
  --service-tint: #edf4ee;
}

.home-service-top {
  display: flex;
  align-items: center;
  gap: 18px;
}

.home-service-top > img {
  width: 58px;
  height: 58px;
  flex-shrink: 0;
  object-fit: contain;
  border-radius: 12px;
}

.home-page .home-service h2 {
  margin: 0 0 4px;
  padding: 0;
  color: #403830;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: left;
}

.home-page .home-service h2::after {
  display: none;
}

.home-service-top p {
  color: #6e6358;
  font-size: 13px;
  line-height: 1.8;
}

.home-service-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  margin-top: auto;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--service-tint);
  color: var(--service-color);
  font-size: 14px;
  font-weight: 700;
  transition: background-color .18s ease, color .18s ease;
}

.home-service-action > span {
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

.home-service-action:hover,
.home-service-action:focus-visible {
  background: var(--service-color);
  color: #fff;
}

.home-payment {
  margin-top: 14px;
  padding: 20px 24px;
  border: 1px solid #e9dfd2;
  border-radius: 14px;
  background: #fffdfa;
}

.home-payment-methods {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 14px 0;
  padding: 0;
  list-style: none;
}

.home-payment-methods li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 0 12px;
  color: #62574d;
  font-size: 11px;
  text-align: center;
}

.home-payment-methods li + li { border-left: 1px solid #ede5da; }
.home-payment-logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; }
.home-payment-logo img { display: block; width: 104px; max-width: 100%; height: auto; max-height: 56px; object-fit: contain; }
.home-payment-logo .home-unionpay-logo { width: 80px; }
.home-credit-brands {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px 4px;
  width: 160px;
  max-width: 100%;
}
.home-credit-brands img { grid-column: span 2; width: 100%; height: 25px; }
.home-credit-brands img:nth-child(1) { grid-column: 2 / span 2; }
.home-credit-brands img:nth-child(2) { grid-column: 4 / span 2; }
.home-credit-brands img:nth-child(3) { grid-column: 1 / span 2; }
.home-payment-label { color: #62574d; font-size: 13px; font-weight: 500; }
.home-payment-note { color: #796b5d; font-size: 12px; }
.home-page .access-details p + p { margin-top: 12px; }
.home-text-link { color: #7b4a28; text-decoration: underline; text-underline-offset: 4px; }

.home-page .footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.home-page .footer-paypay,
.home-page .footer-partner {
  height: 40px;
  width: auto;
}

@media (max-width: 980px) and (min-width: 769px) {
  .home-service { padding: 20px; }
  .home-service-top { gap: 12px; align-items: flex-start; }
  .home-service-top > img { width: 48px; height: 48px; }
  .home-page .home-service h2 { font-size: 17px; }
}

@media (max-width: 768px) {
  .home-page .hero-content { padding: 14px; }
  .store-photos { grid-template-columns: 1fr; gap: 12px; }
  .store-photos img { height: 200px; }
  .home-services { margin-top: 16px; }
  .home-service-grid { grid-template-columns: 1fr; gap: 12px; }
  .home-service { gap: 16px; padding: 18px; border-radius: 16px; }
  .home-service-top { gap: 12px; }
  .home-service-top > img { width: 46px; height: 46px; border-radius: 10px; }
  .home-page .home-service h2 { font-size: 17px; }
  .home-service-top p { font-size: 12px; }
  .home-service-action { padding: 10px 16px; font-size: 13px; }
  .home-payment { padding: 16px; }
  .home-payment-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .home-payment-methods li { padding: 0 8px; }
  .home-payment-methods li:nth-child(3) { border-left: 0; }
  .home-credit-brands { gap: 6px 2px; width: 140px; }
  .home-payment-note { font-size: 11px; }
  .home-page .footer-paypay,
  .home-page .footer-partner { height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-service-action { transition: none; }
}
