/*
 * Editorial product-card hierarchy.
 *
 * Loaded after editorial-cards.css.
 * 1) release date / ranking movement
 * 2) title
 * 3) divider
 * 4) campaign + inline price / detail action
 * Rating / review proof belongs directly below the image.
 */

/* ---------- Header: release date left, ranking state right ---------- */
.presentation-editorial .e-card-head-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  min-height:24px;
}

.presentation-editorial .e-card-release{
  display:inline-flex;
  align-items:center;
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  white-space:nowrap;
}

.presentation-editorial .e-card-release--empty{
  visibility:hidden;
}

.presentation-editorial .e-card-release__label{
  margin-right:6px;
  color:var(--e-accent);
  font-size:8px;
  font-weight:700;
  line-height:1;
  letter-spacing:.04em;
}

.presentation-editorial .e-card-release__date{
  overflow:hidden;
  color:var(--e-muted);
  font-size:9px;
  font-weight:600;
  line-height:1.2;
  text-overflow:ellipsis;
  font-variant-numeric:tabular-nums;
}

.presentation-editorial .e-card-rank-state{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  white-space:nowrap;
}

.presentation-editorial .e-card-rank-state--empty{
  visibility:hidden;
}

.presentation-editorial .e-card-rank-state__label{
  padding:0 5px 0 0;
  color:var(--e-muted);
  font-size:8px;
  font-weight:600;
}

.presentation-editorial .e-card-rank-state strong{
  display:inline;
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  color:var(--e-ink);
  font-size:10px;
  font-weight:700;
  line-height:1;
}

/* ---------- Square media + review proof below image ---------- */
.presentation-editorial .e-story-card__visual,
.presentation-editorial .e-home-feature__visual{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.presentation-editorial .e-story-card__media,
.presentation-editorial .e-home-feature__media{
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  min-height:0;
  background:transparent;
  overflow:hidden;
}

.presentation-editorial .e-story-card__media img,
.presentation-editorial .e-home-feature__media img{
  display:block;
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
}

.presentation-editorial .e-product-proof-below-media{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:26px;
  margin-top:6px;
}

.presentation-editorial .e-product-proof-below-media .e-card-proof{
  max-width:100%;
}

/* ---------- Title / separator ---------- */
.presentation-editorial .e-story-card__title{
  margin:8px 0 0;
  padding-bottom:9px;
  border-bottom:1px solid var(--e-line);
}

.presentation-editorial .e-story-card__title a{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.presentation-editorial .e-home-feature__body h2{
  margin:9px 0 0;
  padding-bottom:10px;
  border-bottom:1px solid var(--e-line);
}

.presentation-editorial .e-story-card__excerpt{
  margin-top:9px;
}

/* ---------- Footer ---------- */
.presentation-editorial .e-product-card-footer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
  margin-top:auto;
  padding-top:10px;
}

.presentation-editorial .e-product-card-footer__left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
}

.presentation-editorial .e-product-card-footer__right{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  min-width:0;
}

.presentation-editorial .e-product-card-footer__campaign{
  display:flex;
  align-items:center;
  min-height:22px;
  min-width:0;
}

.presentation-editorial .e-product-card-footer__campaign.is-empty{
  visibility:hidden;
}

.presentation-editorial .e-product-card-footer__campaign span{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  max-width:100%;
  padding:2px 7px;
  overflow:hidden;
  border:1px solid var(--e-accent);
  background:#fff;
  color:var(--e-accent);
  font-size:8px;
  font-weight:700;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Price label and value stay on one line: 価格 500円〜 */
.presentation-editorial .e-product-card-footer .e-story-card__price{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  min-width:0;
  color:#8b233d;
  font-size:15px;
  font-weight:800;
  line-height:1.15;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.presentation-editorial .e-product-card-footer .e-story-card__price small{
  color:var(--e-muted);
  font-size:8px;
  font-weight:600;
  line-height:1;
}

.presentation-editorial .e-product-card-footer .e-story-card__price--empty{
  min-height:18px;
  visibility:hidden;
}

.presentation-editorial .e-product-card-footer .e-card-action{
  min-width:116px;
  min-height:38px;
  margin:0;
  padding:4px 5px 4px 10px;
  gap:8px;
  white-space:nowrap;
}

.presentation-editorial .e-product-card-footer .e-card-action__icon{
  flex:0 0 27px;
  width:27px;
  height:27px;
}

.presentation-editorial .e-home-feature__body .e-product-card-footer{
  margin-top:14px;
}

@media(max-width:760px){
  .presentation-editorial .e-card-head-meta{
    gap:7px;
    min-height:20px;
  }

  .presentation-editorial .e-card-release__label{
    margin-right:4px;
    font-size:7px;
  }

  .presentation-editorial .e-card-release__date{
    font-size:8px;
  }

  .presentation-editorial .e-card-rank-state__label{
    padding-right:4px;
    font-size:7px;
  }

  .presentation-editorial .e-card-rank-state strong{
    font-size:9px;
  }

  .presentation-editorial .e-product-proof-below-media{
    min-height:24px;
    margin-top:5px;
  }

  .presentation-editorial .e-product-proof-below-media .e-card-proof{
    min-height:22px;
    padding:1px 5px;
  }

  .presentation-editorial .e-product-proof-below-media .e-card-proof__rating{
    font-size:9px;
  }

  .presentation-editorial .e-product-proof-below-media .e-card-proof__reviews{
    font-size:8px;
  }

  .presentation-editorial .e-product-proof-below-media .e-card-proof__rating+.e-card-proof__reviews{
    margin-left:4px;
    padding-left:4px;
  }

  .presentation-editorial .e-story-card__title{
    margin-top:6px;
    padding-bottom:7px;
  }

  .presentation-editorial .e-product-card-footer{
    gap:8px;
    padding-top:7px;
  }

  .presentation-editorial .e-product-card-footer__left{
    gap:5px;
  }

  .presentation-editorial .e-product-card-footer__campaign{
    min-height:20px;
  }

  .presentation-editorial .e-product-card-footer__campaign span{
    min-height:20px;
    padding:1px 5px;
    font-size:7px;
  }

  .presentation-editorial .e-product-card-footer .e-story-card__price{
    gap:4px;
    font-size:13px;
  }

  .presentation-editorial .e-product-card-footer .e-card-action{
    min-width:108px;
    min-height:36px;
    padding:3px 4px 3px 8px;
    gap:6px;
    font-size:10px;
  }

  .presentation-editorial .e-product-card-footer .e-card-action__icon{
    flex-basis:26px;
    width:26px;
    height:26px;
  }
}

@media(max-width:420px){
  .presentation-editorial .e-story-card__body{
    min-width:0;
    padding-right:0;
  }

  .presentation-editorial .e-card-rank-state__label{
    display:none;
  }

  .presentation-editorial .e-story-card__title{
    font-size:14px;
    line-height:1.45;
  }

  .presentation-editorial .e-product-card-footer{
    grid-template-columns:minmax(0,1fr) minmax(106px,auto);
    gap:6px;
  }

  .presentation-editorial .e-product-card-footer__campaign span{
    max-width:92px;
  }

  .presentation-editorial .e-product-card-footer .e-story-card__price{
    gap:3px;
    font-size:12px;
  }

  .presentation-editorial .e-product-card-footer .e-card-action{
    width:100%;
    min-width:106px;
  }

  .presentation-editorial .e-home-feature__body .e-product-card-footer{
    margin-top:8px;
  }
}

@media(max-width:350px){
  .presentation-editorial .e-card-release__label{
    display:none;
  }

  .presentation-editorial .e-product-card-footer{
    grid-template-columns:minmax(0,1fr) 102px;
  }

  .presentation-editorial .e-product-card-footer .e-card-action{
    min-width:102px;
    padding-left:7px;
    font-size:9px;
  }
}
