/* HitMo Core — checkout, pricing, account commerce. Uses hitmo-child tokens with fallbacks. */
.hm-checkout, .hm-pricing { padding-block: 2rem; }
.hm-checkout h2, .hm-pricing h2 { font-size: 1.25rem; }
.hm-checkout__grid { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
@media (min-width: 900px) { .hm-checkout__grid { grid-template-columns: 1fr 1fr; align-items: start; } }
.hm-checkout__summary, .hm-checkout__pay { border: 1px solid var(--hm-grey-200, #e5e5e5); border-radius: var(--hm-radius-lg, 14px); padding: 1.5rem; background: #fff; }
.hm-checkout__summary { background: var(--hm-grey-50, #f5f5f5); }
.hm-checkout__product { font-weight: 700; font-size: 1.125rem; }
.hm-checkout__lines { margin: 0 0 1rem; }
.hm-checkout__lines > div { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--hm-grey-200, #e5e5e5); }
.hm-checkout__lines dt { font-weight: 400; }
.hm-checkout__lines dd { margin: 0; font-weight: 700; text-align: right; }
.hm-checkout__total { font-size: 1.125rem; border-bottom: 0 !important; }
.hm-checkout__coupon label { font-weight: 700; font-size: .9375rem; display: block; margin-bottom: .25rem; }
.hm-checkout__coupon-row { display: flex; gap: .5rem; }
.hm-checkout__coupon-row input { flex: 1; min-height: 48px; padding: 0 1rem; border: 1px solid #8a8a8a; border-radius: var(--hm-radius, 8px); font-size: 1rem; text-transform: uppercase; min-width: 0; }
.hm-trust { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .25rem; font-size: .9375rem; color: var(--hm-grey-600, #6b6b6b); }
.hm-thanks { max-width: 720px; }

.hm-pricing__head { text-align: center; max-width: 720px; margin: 0 auto 2rem; }
.hm-plans { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .hm-plans { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .hm-plans { grid-template-columns: repeat(4, 1fr); } }
.hm-plan { position: relative; display: flex; flex-direction: column; border: 1px solid var(--hm-grey-200, #e5e5e5); border-radius: var(--hm-radius-lg, 14px); padding: 1.5rem; background: #fff; }
.hm-plan ul { padding-left: 1.1rem; margin: 0 0 1.5rem; flex: 1; }
.hm-plan li { margin-bottom: .4rem; }
.hm-plan--featured { border: 2px solid var(--hm-red, #df2c2a); }
.hm-plan__badge { position: absolute; top: -.85rem; left: 1.5rem; margin: 0; background: var(--hm-red, #df2c2a); color: #fff; font-weight: 700; font-size: .8125rem; padding: .15rem .75rem; border-radius: 999px; }
.hm-plan__tag { font-size: .8125rem; font-weight: 700; color: var(--hm-grey-600, #6b6b6b); }
.hm-plan__price { font-size: 2rem; font-weight: 700; margin: .25rem 0; line-height: 1.2; }
.hm-plan__price small { font-size: 1rem; font-weight: 400; color: var(--hm-grey-600, #6b6b6b); }

.hm-compare, .hm-faq { max-width: 900px; margin: 3rem auto 0; }
.hm-table-wrap { overflow-x: auto; }
.hm-table-wrap table { width: 100%; border-collapse: collapse; min-width: 520px; }
.hm-table-wrap th, .hm-table-wrap td { padding: .75rem; border-bottom: 1px solid var(--hm-grey-200, #e5e5e5); text-align: left; vertical-align: top; }
.hm-table-wrap thead th { font-size: .9375rem; }
.hm-faq details { border-bottom: 1px solid var(--hm-grey-200, #e5e5e5); padding: .25rem 0; }
.hm-faq summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.hm-faq details p { margin: 0 0 1rem; }

/* ==========================================================================
   Pricing page (full width)
   ========================================================================== */
.hm-pr { --pr-ink: #0f0f10; padding-bottom: 2rem; }
.hm-pr-hero { color: #fff; text-align: center; padding: 4.5rem 0 11rem; background: radial-gradient(55% 70% at 50% 0%, rgba(223,44,42,.45) 0%, rgba(223,44,42,0) 70%), radial-gradient(40% 60% at 100% 100%, rgba(223,44,42,.15) 0%, rgba(223,44,42,0) 70%), var(--pr-ink); }
.hm-pr-hero__inner { max-width: 860px; }
.hm-pr-hero h1 { color: #fff; font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4rem); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 1.25rem; }
.hm-pr-hero .hm-eyebrow { color: #ff8a88; }
.hm-pr-hero__lead { font-size: 1.1875rem; color: rgba(255,255,255,.8); max-width: 620px; margin: 0 auto .5rem; }
.hm-pr-hero__pa { color: rgba(255,255,255,.65); margin: 0 auto 2rem; }

.hm-pr-switch { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15); }
.hm-pr-switch label { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1.375rem; border-radius: 999px; cursor: pointer; font: 700 .9375rem var(--hm-font-latin, sans-serif); color: rgba(255,255,255,.8); transition: background .2s, color .2s; }
.hm-pr-save { background: #e8f6ec; color: #14532a; border-radius: 999px; padding: 2px 8px; font-size: .75rem; }
#hm-bill-year:checked ~ .hm-pr-hero label[for="hm-bill-year"],
#hm-bill-month:checked ~ .hm-pr-hero label[for="hm-bill-month"] { background: #fff; color: var(--pr-ink); }
#hm-bill-year:focus-visible ~ .hm-pr-hero label[for="hm-bill-year"],
#hm-bill-month:focus-visible ~ .hm-pr-hero label[for="hm-bill-month"] { box-shadow: 0 0 0 3px var(--pr-ink), 0 0 0 5px #fff; }
#hm-bill-year:checked ~ * .hm-pr-when-month,
#hm-bill-month:checked ~ * .hm-pr-when-year { display: none; }

.hm-pr-plans { position: relative; margin-top: -8rem; display: grid; gap: 1.25rem; align-items: stretch; }
@media (min-width: 900px) { .hm-pr-plans { grid-template-columns: 1fr 1.12fr 1fr; gap: 1.5rem; align-items: center; } }
.hm-pr-card { position: relative; display: flex; flex-direction: column; gap: 1.5rem; background: #fff; border: 1px solid var(--hm-grey-200, #e5e5e5); border-radius: 24px; padding: 2rem; box-shadow: 0 20px 50px rgba(15,15,16,.12); }
.hm-pr-card h2 { font-size: 1.5rem; margin: 0 0 .375rem; }
.hm-pr-card__desc { color: var(--hm-grey-600, #6b6b6b); margin: 0 0 1.25rem; font-size: 1rem; }
.hm-pr-card--pro { background: var(--pr-ink); color: #fff; border: 1px solid rgba(223,44,42,.6); box-shadow: 0 30px 80px rgba(223,44,42,.28), 0 20px 50px rgba(15,15,16,.35); padding: 2.5rem 2rem; }
@media (min-width: 900px) { .hm-pr-card--pro { padding: 3rem 2.25rem; } }
.hm-pr-card--pro h2 { color: #fff; }
.hm-pr-card--pro .hm-pr-card__desc, .hm-pr-card--pro .hm-pr-price__per, .hm-pr-card--pro .hm-pr-price__note, .hm-pr-card--pro .hm-pr-price__fx { color: rgba(255,255,255,.7); }
.hm-pr-badge { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); margin: 0; background: var(--hm-red, #df2c2a); color: #fff; border-radius: 999px; padding: .375rem 1rem; font: 700 .8125rem var(--hm-font-latin, sans-serif); letter-spacing: .04em; white-space: nowrap; box-shadow: 0 6px 18px rgba(223,44,42,.4); }
.hm-pr-price { display: flex; align-items: baseline; gap: .5rem; margin: 0; }
.hm-pr-price__num { font-size: 3rem; font-weight: 700; line-height: 1; letter-spacing: -.02em; }
.hm-pr-price__num--sm { font-size: 2rem; }
.hm-pr-price__per { color: var(--hm-grey-600, #6b6b6b); font: 1rem var(--hm-font-latin, sans-serif); }
.hm-pr-price__note { margin: .5rem 0 0; font: .9375rem var(--hm-font-latin, sans-serif); color: var(--hm-grey-600, #6b6b6b); }
.hm-pr-price__fx { margin: .25rem 0 0; font: .8125rem var(--hm-font-latin, sans-serif); color: var(--hm-grey-600, #6b6b6b); min-height: 1.2em; }
.hm-pr-everything { margin: 0; font: 700 .875rem var(--hm-font-latin, sans-serif); text-transform: uppercase; letter-spacing: .06em; color: #ff8a88; }
.hm-pr-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .875rem; }
.hm-pr-list li { display: grid; grid-template-columns: 20px 1fr; gap: .75rem; align-items: start; line-height: 1.45; }
.hm-pr-list svg { color: var(--hm-red, #df2c2a); margin-top: 2px; }
.hm-pr-card--pro .hm-pr-list svg { color: #ff8a88; }
.hm-pr-card .hm-btn--block { width: 100%; }

.hm-pr-trust { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-top: 3.5rem; padding: 1.5rem; border-radius: 20px; background: var(--hm-grey-50, #f5f5f5); }
.hm-pr-trust div { display: grid; gap: .25rem; padding: .5rem; }
.hm-pr-trust strong { font-size: 1.0625rem; }
.hm-pr-trust span { color: var(--hm-grey-600, #6b6b6b); font: .9375rem var(--hm-font-latin, sans-serif); }

.hm-pr-head { text-align: center; max-width: 720px; margin: 0 auto 2rem; }
.hm-pr-head h2 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); margin: 0; }
.hm-pr-compare, .hm-pr-faq { padding-top: 5rem; }
.hm-pr-table-wrap { overflow-x: auto; border: 1px solid var(--hm-grey-200, #e5e5e5); border-radius: 20px; }
.hm-pr-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.hm-pr-table th, .hm-pr-table td { padding: 1.125rem 1.25rem; border-bottom: 1px solid var(--hm-grey-200, #e5e5e5); text-align: center; font-size: 1rem; }
.hm-pr-table tbody th { text-align: left; font-weight: 400; }
.hm-pr-table thead th { font-size: 1.125rem; background: var(--hm-grey-50, #f5f5f5); }
.hm-pr-table tr:last-child th, .hm-pr-table tr:last-child td { border-bottom: 0; }
.hm-pr-table .is-pro { background: #fff5f5; font-weight: 700; }
.hm-pr-table thead .is-pro { background: var(--hm-red, #df2c2a); color: #fff; }
.hm-pr-yes { color: var(--hm-red, #df2c2a); display: inline-flex; }
.hm-pr-no { color: #b5b5b5; }

.hm-pr-faq .hm-faq { max-width: none; margin: 0; }
.hm-pr-faq__grid { display: grid; gap: 0 3rem; }
@media (min-width: 900px) { .hm-pr-faq__grid { grid-template-columns: 1fr 1fr; } }
.hm-pr-faq__grid details { padding: .25rem 0; }
.hm-pr-faq__grid summary { min-height: 64px; font-size: 1.0625rem; }

.hm-pr-final { padding-top: 5rem; }
