/* Shared design system for the landing pages. rr-landing-b.css stays the engine; pages load this after it. */
.lb{--pad-y:64px;--gutter:24px;--ease:cubic-bezier(.16,.8,.24,1);--accent:#d92f35;--accent-ink:#fff}
@media(max-width:349px){.lb{--gutter:16px}}
@media(min-width:960px){.lb{--pad-y:120px;--gutter:max(40px,calc(50% - 600px))}}
.k-sec{padding:var(--pad-y) var(--gutter);position:relative;overflow:hidden}
.k-grid{display:grid;gap:16px}
@media(min-width:960px){.k-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}}
.k-eye{margin:0 0 16px;font:800 12px/1.3 var(--sans);text-transform:uppercase;letter-spacing:.14em}
.lb .k-h2{font:500 clamp(32px,8.6vw,40px)/1.08 var(--serif);letter-spacing:-.02em;margin:0;text-wrap:balance}
.k-h3{font:500 22px/1.2 var(--serif);letter-spacing:-.01em;margin:0}
.k-lead{font-size:18px;line-height:1.5;max-width:44ch;margin:16px 0 0}
.k-body{font-size:16px;line-height:1.6;max-width:62ch;margin:16px 0 0}
.k-small{font-size:14px;line-height:1.5}
.k-micro{font-size:13px;line-height:1.5}
.k-num{font-variant-numeric:lining-nums tabular-nums}
@media(min-width:960px){.k-eye{font-size:13px}.lb .k-h2{font-size:clamp(44px,4.2vw,60px)}.k-h3{font-size:26px}.k-lead{font-size:21px}.k-body{font-size:17px}}
.lb .lb-btn,.lb .lb-bar .lb-bar-go,.lb .lb-hero:has(.intro) .lb-tool .go{background:var(--accent);color:var(--accent-ink)!important;border-radius:6px;font:800 18px/1 var(--sans);transition:filter .2s}
.lb .lb-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:60px;padding:0 32px;text-decoration:none}
.lb .lb-btn:hover,.lb .lb-bar .lb-bar-go:hover,.lb .lb-hero:has(.intro) .lb-tool .go:hover{filter:brightness(1.06)}
@media(min-width:960px){.lb .lb-btn{display:inline-flex;width:auto;min-width:300px}}
.k-talk{margin:16px 0 0;font-size:14px}
.k-card{border:1px solid var(--line);border-radius:6px;padding:24px}
@media(min-width:960px){.k-card{padding:32px}}
.k-photo{display:block;overflow:hidden;border-radius:6px;margin:0}
.k-photo img{display:block;width:100%;height:100%;object-fit:cover}
.k-faq details{border-bottom:1px solid var(--line)}
.k-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 0;font-weight:700}
.k-faq summary::-webkit-details-marker{display:none}
.k-faq summary::after{content:'+';color:var(--accent);font-size:22px;line-height:1}
.k-faq details[open] summary::after{content:'\2212'}
.k-faq details p{margin:0 0 24px;max-width:62ch}
.k-stars{margin:0 0 16px;letter-spacing:.14em;font-size:20px}
.js .k-r{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:var(--d,0ms)}
.js .k-r.in{opacity:1;transform:none}
.js .k-p{overflow:hidden}
.js .k-p img{transform:scale(1.04);transition:transform .9s var(--ease)}
.js .k-p.in img{transform:none}
.lb-footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
body.is-asking .lb-bar{display:none}
@media(prefers-reduced-motion:reduce){.js .k-r,.js .k-p img{opacity:1;transform:none;transition:none}}
/* Slim one-line banner on tablets and desktop too, so it never sits on a hero button. */
@media(min-width:601px){.lb .kit-consent{padding:8px 16px}.lb .kit-consent__box{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;max-width:1040px;padding:10px 16px}.lb .kit-consent__title,.lb .kit-consent__long{display:none}.lb .kit-consent__short{display:inline}.lb .kit-consent__text{margin:0;flex:1;font-size:13px}.lb .kit-consent__options{flex-basis:100%;order:3;margin:0}.lb .kit-consent__buttons{flex:none;grid-template-columns:repeat(3,auto);gap:8px}.lb .kit-consent__buttons button{min-height:38px;padding:6px 14px}}
@media(max-width:600px){.lb .kit-consent{padding:6px}.lb .kit-consent__box{padding:8px 10px}.lb .kit-consent__text{font-size:12px;margin:0 0 6px}.lb .kit-consent__buttons button{min-height:40px;padding:4px}}
.lb .lb-bar{bottom:var(--consent-h,0px)}
/* While the banner is open on a laptop, the small print gives way so nothing is cut in half. */
@media(min-width:960px){.has-banner .lb-hero .lb-no-call{display:none}}
/* One bottom bar at a time on phones: the banner, then the quick actions. */
@media(max-width:959px){.has-banner .lb .lb-bar{display:none}}
@media(min-width:960px){.k-lead{font-size:23px}.k-body{font-size:19px}.k-small{font-size:16px}}

/* First-load hero intro. Normal styles remain the resting state. */
@media(prefers-reduced-motion:no-preference){
@keyframes hi-fade{from{opacity:0}}
@keyframes hi-rise{from{opacity:0;translate:0 var(--hi-y,12px)}}
@keyframes hi-left{from{opacity:0;translate:var(--hi-x,-20px) 0}}
@keyframes hi-zoom{from{opacity:0;scale:var(--hi-s,.96)}}
@keyframes hi-settle{from{scale:var(--hi-s,1.02)}}
@keyframes hi-veil{from{opacity:var(--hi-o,.3)}}
@keyframes hi-ring{from{opacity:.8;scale:1}to{opacity:0;scale:1.05}}
}
/* What the rate covers, right under the price on every hero. */
.lb-incl{margin:0 0 6px;font-size:14px;line-height:1.35;font-weight:700;text-align:center}
.lb-hero:has(.lb-tool .est-main .step):not(:has(.intro)) .lb-incl{display:none}
@media(prefers-reduced-motion:no-preference){.hi .lb-incl{animation:hi-fade 480ms ease-out 260ms backwards}}
