.asl-product { position: relative; max-width: 100%; margin: 1.5em 0; }
.asl-product .asl-disclosure { margin: 0 0 .45em; color: #666; font-size: .76em; line-height: 1.4; }
.asl-card { display: grid; grid-template-columns: minmax(150px, 28%) 1fr; gap: 22px; padding: 22px; border: 1px solid #d9dde2; border-radius: 10px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.asl-card__media { display: flex; align-items: center; justify-content: center; min-height: 180px; }
.asl-card__media img { display: block; width: 100%; max-width: 240px; height: 200px; object-fit: contain; }
.asl-card__body { min-width: 0; }
.asl-card__source { margin-bottom: 5px; color: #687078; font-size: .75em; }
.asl-card__title { margin: 0 0 10px; color: #1d2327; font-size: 1.08em; font-weight: 700; line-height: 1.55; }
.asl-card__price { margin-bottom: 10px; color: #b32d2e; font-size: 1.05em; font-weight: 700; }
.asl-card__price span { color: #666; font-size: .72em; font-weight: 400; }
.asl-card__description { margin: 8px 0 14px; color: #50575e; font-size: .9em; line-height: 1.7; }
.asl-card__description p { margin: .4em 0; }
.asl-card__buttons { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.asl-button { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 12px; border-radius: 6px; color: #fff !important; font-size: .88em; font-weight: 700; line-height: 1.35; text-align: center; text-decoration: none !important; transition: opacity .15s ease, transform .15s ease; }
.asl-button:hover { opacity: .88; transform: translateY(-1px); }
.asl-button--amazon { background: #e47911; }
.asl-button--rakuten { background: #bf0000; }
.asl-button--yahoo { background: #3567b7; }
.asl-card__price-note { margin-top: 10px; color: #777; font-size: .7em; }
.asl-impression { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden; opacity: 0; pointer-events: none; }
.asl-product--missing { padding: 12px 14px; border: 1px dashed #c3c4c7; background: #f6f7f7; color: #50575e; }
.asl-product > img:not(.asl-impression) { max-width: 100%; height: auto; }
@media (max-width: 720px) {
  .asl-card { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .asl-card__media { min-height: 140px; }
  .asl-card__media img { height: 180px; }
  .asl-card__buttons { grid-template-columns: 1fr; }
}
