/* Home page and product grid */
.hm-hero { background: linear-gradient(115deg, rgba(62,39,35,.95), rgba(109,76,47,.88)); color: #fff; padding: 84px 0 68px; text-align: center; }
.hm-hero h1 { color: #fff; font-size: clamp(2rem, 5.4vw, 3.3rem); line-height: 1.12; max-width: 820px; margin: 0 auto 16px; }
.hm-hero .lead { font-size: 1.15rem; max-width: 680px; margin: 0 auto 28px; color: #f1e7da; }
.hm-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.hm-ghost { background: transparent; border: 2px solid #fff; color: #fff !important; }
.hm-ghost:hover { background: rgba(255,255,255,.14); }
.hm-trust { list-style: none; margin: 34px auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; font-size: .92rem; color: #ead9c4; }
.hm-trust li::before { content: "\2713\00a0"; color: #e8c48f; font-weight: 700; }

.hm-spot { background: #fff; }
.hm-spot-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 40px; align-items: center; }
.hm-spot img { width: 100%; border-radius: 14px; border: 1px solid var(--border); box-shadow: 0 10px 30px rgba(62,39,35,.14); }
.hm-eyebrow { color: var(--accent); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; margin: 0 0 8px; }
.hm-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0 6px; }
.hm-opt { border: 1px solid var(--border); border-radius: 12px; padding: 18px; background: var(--cream); display: flex; flex-direction: column; }
.hm-opt h3 { margin: 0 0 2px; font-size: 1.1rem; }
.hm-opt .hm-price { color: var(--accent); font-weight: 700; font-size: 1.25rem; margin: 0 0 8px; }
.hm-opt ul { margin: 0 0 14px; padding-left: 18px; font-size: .92rem; line-height: 1.55; flex: 1; }
.hm-opt .btn { text-align: center; }

.hm-shop { background: var(--cream); }
.hm-tabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 28px; }
.hm-tab { border: 1px solid var(--border); background: #fff; color: var(--wood-dark); border-radius: 999px; padding: 9px 18px; font: inherit; font-weight: 600; cursor: pointer; }
.hm-tab:hover { border-color: var(--accent); }
.hm-tab.on { background: var(--wood-dark); border-color: var(--wood-dark); color: #fff; }
.hm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 24px; }
.hm-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; position: relative; transition: box-shadow .15s, transform .15s; }
.hm-card:hover { box-shadow: 0 10px 26px rgba(62,39,35,.14); transform: translateY(-2px); }
.hm-card[hidden] { display: none; }
.hm-card img { aspect-ratio: 4/3; width: 100%; object-fit: cover; background: #f1ebe2; display: block; }
.hm-card.plans img { object-fit: contain; background: #efe5d6; padding: 10px; }
.hm-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.hm-body h3 { margin: 0 0 6px; font-size: 1.12rem; }
.hm-body p { margin: 0 0 12px; color: var(--muted); font-size: .94rem; }
.hm-meta { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.hm-meta .price { color: var(--accent); font-weight: 700; }
.hm-badge { position: absolute; top: 12px; left: 12px; background: var(--accent); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }

.hm-why { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.hm-why > div { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 22px; }
.hm-why h3 { margin: 0 0 6px; font-size: 1.05rem; }
.hm-why p { margin: 0; color: var(--muted); font-size: .94rem; }

@media (max-width: 900px) {
  .hm-spot-grid { grid-template-columns: 1fr; }
  .hm-why { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .hm-hero { padding: 56px 0 44px; }
  .hm-opts, .hm-why { grid-template-columns: 1fr; }
  .hm-actions .btn { width: 100%; text-align: center; }
  .hm-tabs { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: 6px; margin-right: -16px; }
  .hm-tab { flex: 0 0 auto; }
}
