:root {
	--wf-ink:#071a3b;
	--wf-muted:#52627a;
	--wf-blue:#1769ee;
	--wf-blue-dark:#0c52ce;
	--wf-surface:#ffffff;
	--wf-soft:#f4f7fb;
	--wf-line:rgba(7,26,59,.1);
	--wf-shadow:0 24px 70px rgba(29,65,109,.16);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:#f6f8fb; }
body.wf-landing { min-width:320px; margin:0; overflow-x:hidden; background:#f6f8fb; color:var(--wf-ink); font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }
.wf-landing img { display:block; max-width:100%; }
.wf-landing a { color:inherit; }
.wf-skip { position:fixed; z-index:100; top:12px; left:12px; padding:10px 16px; transform:translateY(-160%); border-radius:12px; background:#fff; box-shadow:var(--wf-shadow); }
.wf-skip:focus { transform:none; }

.wf-hero { position:relative; min-height:760px; isolation:isolate; background-image:var(--wf-hero-bg); background-position:center; background-size:cover; }
.wf-hero:before { position:absolute; z-index:-1; inset:0; content:""; background:rgba(255,255,255,.52); }
.wf-hero-inner { display:grid; grid-template-columns:minmax(0,.82fr) minmax(460px,1.18fr); align-items:center; gap:56px; width:min(1460px,calc(100% - 72px)); min-height:760px; margin:0 auto; padding:66px 0; }
.wf-hero-copy { position:relative; z-index:2; max-width:570px; }
.wf-brand { display:inline-flex; align-items:center; gap:12px; margin-bottom:58px; color:var(--wf-ink); font-size:17px; font-weight:760; text-decoration:none; }
.wf-brand img { width:46px; height:46px; border-radius:13px; box-shadow:0 10px 26px rgba(7,26,59,.18); }
.wf-eyebrow,.wf-section-kicker { margin:0 0 12px; color:var(--wf-blue); font-size:13px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.wf-hero h1 { margin:0; color:var(--wf-ink); font-size:clamp(64px,7vw,112px); font-weight:820; letter-spacing:-.065em; line-height:.88; }
.wf-tagline { max-width:500px; margin:28px 0 0; color:var(--wf-ink); font-size:clamp(24px,3vw,42px); font-weight:740; letter-spacing:-.035em; line-height:1.08; }
.wf-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:42px; }
.wf-button { display:inline-flex; min-height:68px; align-items:center; justify-content:center; padding:0 32px; border:0; border-radius:18px; font-size:20px; font-weight:780; line-height:1.1; text-align:center; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease; }
.wf-button-primary { background:var(--wf-blue); color:#fff !important; box-shadow:0 14px 32px rgba(23,105,238,.28); }
.wf-button:hover,.wf-button:focus-visible { transform:translateY(-2px); }
.wf-button-primary:hover,.wf-button-primary:focus-visible { background:var(--wf-blue-dark); box-shadow:0 18px 38px rgba(23,105,238,.36); }
.wf-actions > .wf-button,.wf-actions > .wf-play-badge { width:240px; max-width:100%; height:80px; }
.wf-play-badge { display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:12px; transition:transform .2s ease; }
.wf-play-badge:hover,.wf-play-badge:focus-visible { transform:translateY(-2px); }
.wf-play-badge img { width:100%; height:100%; object-fit:contain; }
.wf-trust { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.wf-trust span { display:inline-flex; min-height:48px; align-items:center; padding:0 20px; border:1px solid rgba(7,26,59,.12); border-radius:14px; background:rgba(255,255,255,.78); color:var(--wf-ink); font-size:15px; font-weight:750; box-shadow:0 10px 30px rgba(39,76,117,.08); backdrop-filter:blur(12px); }
.wf-product { position:relative; display:grid; grid-template-areas:"left product right"; grid-template-columns:minmax(130px,.43fr) minmax(360px,1fr) minmax(130px,.43fr); align-items:center; gap:12px; width:100%; min-height:650px; perspective:1200px; }
.wf-product-core { position:relative; z-index:3; display:flex; grid-area:product; width:100%; max-width:460px; max-height:660px; align-items:center; justify-content:center; justify-self:center; overflow:hidden; border-radius:46px; background:#000; box-shadow:0 34px 90px rgba(5,25,52,.34); }
.wf-product-image { width:100%; max-height:660px; object-fit:contain; background:#000; transition:transform .16s ease-out; will-change:transform; }
.wf-hero-banner-rail { position:relative; z-index:2; display:flex; min-width:0; height:650px; flex-direction:column; justify-content:center; gap:64px; padding:0; }
.wf-hero-banner-rail-left { grid-area:left; align-items:flex-end; }
.wf-hero-banner-rail-right { grid-area:right; align-items:flex-start; }
.wf-hero-banner { width:100%; max-width:190px; aspect-ratio:3/2; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.68); border-radius:22px; background:#020914; box-shadow:0 18px 42px rgba(7,26,59,.24); animation:wf-banner-float 6s ease-in-out infinite; }
.wf-hero-banner img { width:100%; height:100%; object-fit:cover; }
.wf-hero-banner-2 { animation-delay:-2s; }
.wf-hero-banner-3 { animation-delay:-4s; }

.wf-promos { width:min(1360px,calc(100% - 56px)); margin:84px auto 0; }
.wf-promo-track { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:36px; background:#e8eef7; box-shadow:var(--wf-shadow); }
.wf-promo-item { position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .55s ease,visibility 0s linear .55s; }
.wf-promo-item.is-selected { opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.wf-promo-item img { width:100%; height:100%; object-fit:contain; margin:0 auto; background:#e8eef7; }
.wf-promo-controls { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; margin-top:22px; }
.wf-promo-controls > button { min-height:48px; padding:0 20px; border:1px solid var(--wf-line); border-radius:14px; background:#fff; color:var(--wf-ink); font:750 15px/1 Inter,"Segoe UI",sans-serif; cursor:pointer; }
.wf-promo-controls > button:hover,.wf-promo-controls > button:focus-visible { border-color:var(--wf-blue); color:var(--wf-blue); }
.wf-promo-dots { display:flex; justify-content:center; gap:10px; }
.wf-promo-dot { width:42px; height:10px; padding:0; overflow:hidden; border:0; border-radius:8px; background:#cbd5e4; cursor:pointer; }
.wf-promo-dot span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.wf-promo-dot.is-selected { background:var(--wf-blue); }

.wf-section { width:min(1360px,calc(100% - 56px)); margin:0 auto; padding:84px 0; }
.wf-section-heading { max-width:760px; margin:0 auto 44px; text-align:center; }
.wf-section h2 { margin:0; color:var(--wf-ink); font-size:clamp(38px,5vw,68px); font-weight:820; letter-spacing:-.055em; line-height:1.02; }
.wf-copy { padding-bottom:0; }
.wf-copy-inner { max-width:980px; margin:0 auto; padding:48px 56px; border:1px solid var(--wf-line); border-radius:30px; background:#fff; box-shadow:0 12px 38px rgba(40,70,110,.07); color:var(--wf-muted); font-size:18px; line-height:1.7; }
.wf-copy-inner h2 { margin:0 0 28px; font-size:clamp(34px,4vw,52px); }
.wf-copy-inner h3 { margin:36px 0 16px; color:var(--wf-ink); font-size:28px; line-height:1.2; }
.wf-copy-inner p,.wf-copy-inner ul,.wf-copy-inner ol,.wf-copy-inner blockquote { margin:0 0 20px; }
.wf-copy-inner > :last-child { margin-bottom:0; }
.wf-install { padding-top:86px; }
.wf-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:0; padding:0; list-style:none; }
.wf-steps li { display:flex; min-height:180px; gap:24px; align-items:center; padding:34px 40px; border:1px solid var(--wf-line); border-radius:26px; background:#fff; box-shadow:0 12px 38px rgba(40,70,110,.07); }
.wf-steps li > span { display:flex; flex:0 0 48px; width:48px; height:48px; align-items:center; justify-content:center; border-radius:15px; background:var(--wf-blue); color:#fff; font-size:19px; font-weight:850; }
.wf-steps h3 { margin:2px 0 10px; color:var(--wf-ink); font-size:26px; line-height:1.1; }
.wf-steps p { margin:0; color:var(--wf-muted); font-size:17px; }
.wf-premium { display:block; overflow:hidden; width:min(1360px,calc(100% - 56px)); padding:72px; border-radius:40px; background:#dceafb url(../images/landing/weather-plus-editorial-sky.jpg) center/cover no-repeat; box-shadow:var(--wf-shadow); }
.wf-premium-copy { position:relative; z-index:2; max-width:780px; margin:0 auto; text-align:center; }
.wf-premium-copy:before { position:absolute; z-index:-1; inset:-30px; content:""; border-radius:30px; background:rgba(255,255,255,.78); backdrop-filter:blur(10px); }
.wf-premium h2 { font-size:clamp(40px,5vw,66px); }
.wf-premium-copy > p:not(.wf-section-kicker) { margin:24px 0 30px; color:var(--wf-muted); font-size:18px; }

.wf-footer { display:flex; width:min(1360px,calc(100% - 56px)); align-items:center; justify-content:space-between; gap:20px; margin:0 auto; padding:34px 0 80px; border-top:1px solid var(--wf-line); color:var(--wf-muted); font-size:14px; }
.wf-footer a { color:var(--wf-blue); font-weight:780; text-decoration:none; }
.wf-sticky-cta { position:fixed; z-index:20; right:10px; bottom:10px; left:10px; display:none; max-width:760px; align-items:center; justify-content:space-between; gap:10px; margin:0 auto; padding:10px 10px 10px 16px; transform:translateY(160%); border:1px solid rgba(7,26,59,.1); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:0 22px 70px rgba(7,26,59,.28); backdrop-filter:blur(18px); transition:transform .35s ease; }
.wf-sticky-cta.is-visible { transform:none; }
.wf-sticky-cta > div { display:flex; min-width:0; flex-direction:column; }
.wf-sticky-cta strong { overflow:hidden; color:var(--wf-ink); text-overflow:ellipsis; white-space:nowrap; }
.wf-sticky-cta span { color:var(--wf-muted); font-size:12px; }
.wf-sticky-cta .wf-button { min-height:50px; padding:0 22px; font-size:15px; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes wf-banner-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

@media (max-width:980px) {
	.wf-hero-inner { grid-template-columns:1fr 1fr; width:min(100% - 40px,900px); gap:18px; }
	.wf-brand { margin-bottom:48px; }
	.wf-product { min-height:520px; }
	.wf-hero-banner-rail { display:none; }
	.wf-product { grid-template-areas:"product"; grid-template-columns:1fr; }
	.wf-steps { grid-template-columns:1fr; }
	.wf-steps li { min-height:0; }
}

@media (max-width:720px) {
	.wf-hero { min-height:auto; background-position:64% center; }
	.wf-hero:before { background:rgba(255,255,255,.68); }
	.wf-hero-inner { grid-template-columns:1fr; min-height:auto; padding:26px 0 54px; }
	.wf-hero-copy { max-width:none; text-align:center; }
	.wf-brand { margin-right:auto; margin-bottom:34px; margin-left:auto; }
	.wf-hero h1 { font-size:clamp(56px,19vw,86px); }
	.wf-tagline { margin:20px auto 0; font-size:clamp(24px,8vw,36px); }
	.wf-actions,.wf-trust { justify-content:center; }
	.wf-button { min-height:62px; padding:0 30px; font-size:18px; }
	.wf-product { order:-1; min-height:360px; margin-bottom:6px; }
	.wf-product-core { width:min(320px,78vw); max-height:380px; border-radius:34px; }
	.wf-product-image { width:100%; max-height:380px; }
	.wf-promos { width:calc(100% - 28px); margin-top:54px; }
	.wf-promo-track { border-radius:24px; }
	.wf-promo-item img { max-height:none; }
	.wf-promo-controls { grid-template-columns:1fr; margin-top:18px; }
	.wf-promo-controls > button { display:none; }
	.wf-section { width:min(100% - 28px,660px); padding:64px 0; }
	.wf-section-heading { margin-bottom:30px; }
	.wf-copy { padding-bottom:0; }
	.wf-copy-inner { padding:32px 24px; border-radius:24px; font-size:17px; }
	.wf-install { padding-top:64px; }
	.wf-steps { gap:12px; }
	.wf-steps li { padding:28px; }
	.wf-premium { width:min(100% - 28px,660px); padding:48px 24px; border-radius:28px; }
	.wf-premium-copy:before { inset:-18px; }
	.wf-footer { width:calc(100% - 32px); padding-bottom:116px; }
	.wf-sticky-cta { display:flex; }
}

@media (max-width:460px) {
	.wf-hero-inner { width:calc(100% - 28px); }
	.wf-brand { font-size:14px; }
	.wf-actions { flex-direction:column; }
	.wf-actions > .wf-button,.wf-actions > .wf-play-badge { width:240px; max-width:100%; height:80px; }
	.wf-premium .wf-button-primary { width:100%; }
	.wf-trust span { font-size:12px; }
	.wf-footer span,.wf-sticky-cta > div { display:none; }
	.wf-sticky-cta .wf-button { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
	html { scroll-behavior:auto; }
	*,*:before,*:after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
	.reveal { opacity:1; transform:none; }
}