.lp-home-hero { padding: 2rem 0 4.5rem; }
.lp-home-hero-visual { margin-top: 1.5rem; }
@media (min-width: 992px) { .lp-home-hero-visual { margin-top: 0; } }
.lp-home-offers + .lp-why { margin-top: 0; }
.lp-home-hero .lp-brand-marks { max-width: 42rem; margin-bottom: 2.5rem !important; }
.lp-home-hero h1 { max-width: 13ch; margin: 0; font-size: clamp(2.45rem, 5vw, 4.85rem); line-height: 1.04; letter-spacing: -.04em; }
.lp-home-hero-copy { max-width: 48ch; margin: 1.5rem 0 0; color: var(--lp-text-muted); font-size: clamp(1.125rem, 1.6vw, 1.35rem); line-height: 1.55; }
.lp-home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.lp-home-actions .btn { min-height: 3rem; display: inline-flex; align-items: center; justify-content: center; }
.lp-home-integration-links { margin: 1rem 0 0; color: var(--lp-text-muted); font-size: .9rem; }
.lp-home-integration-links a { font-weight: 600; }
.lp-home-integration-links span { margin: 0 .45rem; color: var(--lp-text-subtle); }
.lp-home-offers, .lp-home-locations, .lp-home-faq, .lp-home-closing { padding: 5.5rem 0; }
.lp-home-offers, .lp-home-locations { background: var(--lp-bg-subtle); }
.lp-home-section-heading { max-width: 48rem; margin-bottom: 2.5rem; }
.lp-home-section-heading h2, .lp-home-faq h2, .lp-home-closing h2 { margin: 0; font-size: clamp(2rem, 3.8vw, 3.3rem); line-height: 1.1; letter-spacing: -.035em; }
.lp-home-section-heading p, .lp-home-section-copy, .lp-home-closing p { margin: .9rem 0 0; color: var(--lp-text-muted); font-size: 1.125rem; line-height: 1.55; }
/* Product cards: header, then the two ways to pay (the pricing pages' +billingOffer, compact). No
   reserved header height -- the billing block is pushed to the bottom instead, so the rule sits
   1.25rem from both the description and the prices, and equal-height cards keep their prices and
   buttons level across a row. */
.lp-home-product { display: flex; flex-direction: column; gap: 1.25rem; height: 100%; padding: 1.5rem; background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: .75rem; box-shadow: 0 .75rem 2rem var(--lp-shadow); }
.lp-home-product-top { display: flex; gap: 1rem; }
.lp-home-product-top img { width: 3.25rem; height: 3.25rem; object-fit: contain; flex: 0 0 auto; }
.lp-home-product h3 { margin: 0 0 .25rem; font-size: 1.375rem; line-height: 1.25; }
.lp-home-product h3 a { color: var(--lp-text); }
.lp-home-product-top p { margin: 0; color: var(--lp-text-muted); line-height: 1.5; }
.lp-home-billing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--lp-border); }
.lp-home-country { display: flex; align-items: center; gap: .8rem; height: 100%; min-height: 4.5rem; padding: .85rem; color: var(--lp-text); background: var(--lp-surface); border-radius: 12px; box-shadow: 0 .45rem 1.25rem var(--lp-shadow); }
.lp-home-country:hover { color: var(--lp-primary); text-decoration: none; transform: translateY(-2px); }
.lp-home-country:focus-visible, .lp-home-product a:focus-visible, .lp-home-faq a:focus-visible { outline: 2px solid var(--lp-primary); outline-offset: 3px; }
.lp-home-country img { width: 2rem; height: 1.5rem; object-fit: cover; }
.lp-home-country span { display: flex; flex-direction: column; min-width: 0; }
.lp-home-country strong { overflow-wrap: anywhere; }
.lp-home-country small { color: var(--lp-text-subtle); font-size: .77rem; font-variant-numeric: tabular-nums; }
.lp-home-location-footer { margin: 1.5rem 0 0; font-weight: 600; }
.lp-home-faq { background: var(--lp-bg); }
.lp-home-faq details { padding: 1.15rem 0; border-bottom: 1px solid var(--lp-border); }
.lp-home-faq summary { cursor: pointer; color: var(--lp-text); font-size: 1.1rem; font-weight: 600; }
.lp-home-faq summary::marker { color: var(--lp-primary); }
.lp-home-faq details p { max-width: 65ch; margin: .8rem 1.5rem 0; color: var(--lp-text-muted); line-height: 1.6; }
.lp-home-closing { background: var(--lp-bg-subtle); }
.lp-home-closing p { max-width: 42rem; margin-right: auto; margin-left: auto; }
.lp-home-closing .lp-home-actions { margin-top: 1.75rem; }
.lp-home-support { font-size: 1rem !important; }
@media (max-width: 767.98px) { .lp-home-hero { padding: .75rem 0 3.5rem; } .lp-home-hero .lp-brand-marks { margin-bottom: 1.75rem !important; } .lp-home-hero h1 { font-size: clamp(2.15rem, 11vw, 3.25rem); } .lp-home-actions { display: grid; grid-template-columns: 1fr; } .lp-home-offers, .lp-home-locations, .lp-home-faq, .lp-home-closing { padding: 4rem 0; } }
@media (max-width: 575.98px) { .lp-home-product { padding: 1.25rem; } .lp-home-billing { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: no-preference) { .lp-home-country { transition: color .18s ease-out, transform .18s ease-out; } }
/* The homepage hero introduces both billing modes; the PPG builder has its own section. */
.lp-home-hero { position:relative; isolation:isolate; overflow:hidden; padding:3rem 0 4.5rem; }
.lp-home-hero::before { content:''; position:absolute; z-index:-1; width:58rem; height:38rem; left:50%; top:-25rem; transform:translateX(-50%); background:radial-gradient(ellipse,rgba(55,125,255,.13),transparent 68%); pointer-events:none; }
.lp-home-hero-content { text-align:center; }
.lp-home-hero .lp-brand-marks { margin-left:auto; margin-right:auto; }
.lp-home-hero h1 { max-width:21ch; margin-left:auto; margin-right:auto; }
.lp-home-hero-copy { max-width:54ch; margin-left:auto; margin-right:auto; }
.lp-home-hero .lp-home-actions { justify-content:center; }
@media (max-width:767.98px) {
 .lp-home-hero { padding:1.1rem 0 3.5rem; }
 .lp-home-hero-content { text-align:left; }
 .lp-home-hero h1 { max-width:18ch; }
}
