/* ================================================================
   Hotelipp – フロントエンドカードスタイル（ポチップ準拠）
   全セレクターに .hotelipp-card を付与して詳細度を確保
   ================================================================ */

/* ── カード内リンク: テーマCSSに絶対に負けない ─────────────────── */
.hotelipp-card a,
.hotelipp-card a:link,
.hotelipp-card a:visited,
.hotelipp-card a:hover,
.hotelipp-card a:focus,
.hotelipp-card a:active {
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ── カード本体 ──────────────────────────────────────────────────── */
.hotelipp-card {
  display: flex !important;
  flex-direction: row !important;
  background: #fff !important;
  border: 1px solid #f0f0f0 !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
  margin: 1.8em 0 !important;
  overflow: hidden !important;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif !important;
  font-size: 14px !important;
  color: #333 !important;
  line-height: 1.6 !important;
  word-wrap: break-word !important;
  box-sizing: border-box !important;
}

/* ── 画像エリア（outer=余白担当 / inner=表示担当） ──────────────── */
/* outer: padding で確実に余白を作る（margin不要・テーマに負けない） */
.hotelipp-card .hotelipp-image-outer {
  flex: 0 0 150px;
  min-width: 0;
  padding: 16px 0 12px 12px;
  align-self: center;          /* 上下中央 */
  flex-shrink: 0;
  box-sizing: border-box;
}
/* inner: 画像本体を囲む */
.hotelipp-card .hotelipp-image {
  width: 100% !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  position: relative !important;
  background: #f5f5f5 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.hotelipp-card .hotelipp-image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  object-fit: cover !important;
}

/* ── セールバッジ ────────────────────────────────────────────────── */
.hotelipp-card .hotelipp-sale-badge {
  position: absolute !important;
  top: 6px !important; left: 0 !important;
  background: #e53e3e !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 2px 8px 2px 5px !important;
  border-radius: 0 4px 4px 0 !important;
}

/* ── ボディ ──────────────────────────────────────────────────────── */
.hotelipp-card .hotelipp-body {
  flex: 1 !important;
  padding: 16px 16px 8px 10px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

/* ── ホテル名（ポチップ: 黒・大きめ・リンクっぽくない） ──────────── */
.hotelipp-card .hotelipp-name {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #111 !important;
  margin: 0 !important;
  line-height: 1.45 !important;
}
.hotelipp-card .hotelipp-name-link,
.hotelipp-card .hotelipp-name-link:link,
.hotelipp-card .hotelipp-name-link:visited,
.hotelipp-card .hotelipp-name-link:hover,
.hotelipp-card .hotelipp-name-link:active {
  color: #111 !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* ── サブテキスト（ポチップ: ブランド名風・小・グレー） ─────────── */
.hotelipp-card .hotelipp-description {
  font-size: 12px !important;
  color: #888 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ── 住所 ────────────────────────────────────────────────────────── */
.hotelipp-card .hotelipp-address {
  font-size: 12px !important;
  color: #777 !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: wrap !important;
  margin: 0 !important;
}
.hotelipp-card .hotelipp-address-icon {
  font-size: 12px !important;
  flex-shrink: 0 !important;
  color: #e53e3e !important;
}
.hotelipp-card .hotelipp-address-text {
  flex: 1 !important; min-width: 0 !important; color: #777 !important;
}
.hotelipp-card .hotelipp-map-link,
.hotelipp-card .hotelipp-map-link:link,
.hotelipp-card .hotelipp-map-link:visited,
.hotelipp-card .hotelipp-map-link:hover,
.hotelipp-card .hotelipp-map-link:active {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #fff !important;
  background: #aaa !important;
  padding: 1px 8px !important;
  border-radius: 3px !important;
  text-decoration: none !important;
  border-bottom: none !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  margin-left: auto !important;
  transition: background .12s !important;
}
.hotelipp-card .hotelipp-map-link:hover {
  background: #666 !important;
  color: #fff !important;
}

/* ── 評価 ────────────────────────────────────────────────────────── */
.hotelipp-card .hotelipp-review {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  font-size: 13px !important;
  flex-wrap: wrap !important;
}
.hotelipp-card .hotelipp-review-link,
.hotelipp-card .hotelipp-review-link:link,
.hotelipp-card .hotelipp-review-link:visited,
.hotelipp-card .hotelipp-review-link:hover,
.hotelipp-card .hotelipp-review-link:active {
  text-decoration: none !important;
  border-bottom: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
}
.hotelipp-card .hotelipp-stars { display: flex !important; gap: 1px !important; }
.hotelipp-card .hotelipp-star            { color: #ddd !important; font-size: 15px !important; line-height: 1 !important; }
.hotelipp-card .hotelipp-star--full      { color: #f5a623 !important; }
.hotelipp-card .hotelipp-star--half      { color: #f5a623 !important; opacity: .6 !important; }
.hotelipp-card .hotelipp-review-score    { font-weight: 700 !important; color: #f5a623 !important; font-size: 14px !important; }
.hotelipp-card .hotelipp-review-count    { color: #999 !important; font-size: 12px !important; }

/* ── 最安値（ポチップ: 価格は目立たせる） ────────────────────────── */
.hotelipp-card .hotelipp-price {
  display: flex !important;
  align-items: baseline !important;
  gap: 5px !important;
}
.hotelipp-card .hotelipp-price-label { font-size: 11px !important; color: #999 !important; }
.hotelipp-card .hotelipp-price-value { font-size: 19px !important; font-weight: 700 !important; color: #d0021b !important; }

/* ── ボタン群（3列均等幅） ───────────────────────────────────────── */
.hotelipp-card .hotelipp-buttons {
  display: grid !important;               /* gridで確実に3列 */
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  margin-top: 8px !important;
}

/* ── ボタン本体（ポチップの丸ボタン完全再現） ────────────────────── */
.hotelipp-card .hotelipp-btn,
.hotelipp-card .hotelipp-btn:link,
.hotelipp-card .hotelipp-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;                  /* grid列幅に従う */
  min-width: 0 !important;
  padding: 10px 8px !important;
  border-radius: 50px !important;      /* pill形状 */
  font-size: 13px !important;
  font-weight: 700 !important;
  text-align: center !important;
  text-decoration: none !important;
  border: none !important;
  border-bottom: none !important;
  color: #fff !important;              /* 白文字 */
  background-color: var(--btn-color, #555) !important; /* べた塗り */
  box-shadow: 0 3px 6px rgba(0,0,0,.2) !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: filter .15s, transform .1s !important;
  letter-spacing: .02em !important;
}
.hotelipp-card .hotelipp-btn:hover,
.hotelipp-card .hotelipp-btn:focus {
  color: #fff !important;
  background-color: var(--btn-color, #555) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  filter: brightness(.88) !important;
  transform: translateY(1px) !important;
}

/* ── フッター ────────────────────────────────────────────────────── */
.hotelipp-card .hotelipp-footer {
  margin-top: auto !important;
  padding-top: 4px !important;
  text-align: right !important;
}
.hotelipp-card .hotelipp-credit,
.hotelipp-card .hotelipp-credit:link,
.hotelipp-card .hotelipp-credit:visited,
.hotelipp-card .hotelipp-credit:hover {
  font-size: 10px !important;
  color: #ccc !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* ── SP（実画面600px以下） ───────────────────────────────────────── */
@media screen and (max-width: 600px) {
  .hotelipp-card { flex-direction: column !important; }
  .hotelipp-card .hotelipp-image-outer {
    flex: none !important;
    width: 100% !important;
    padding: 12px 12px 0 !important;
    align-self: stretch !important;
  }
  .hotelipp-card .hotelipp-image {
    width: 100% !important;
    height: auto !important;   /* 高さは画像に合わせる */
  }
  .hotelipp-card .hotelipp-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;  /* 見切れなし・全体表示 */
    max-height: 200px !important;
  }
  .hotelipp-card .hotelipp-body { padding: 12px 16px 16px !important; }
  .hotelipp-card .hotelipp-buttons {
    grid-template-columns: 1fr !important; /* SP: 1列 */
  }
}
