1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<title>Hurricane Removal Program â Coastline Boat Lift Covers</title> 7<meta name="description" content="Pre-book professional boat lift canopy removal and reinstallation in Southwest Florida before spots fill. Coastline handles removal and reinstall."> 8<link rel="preconnect" href="https://fonts.googleapis.com"> 9<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 10<link href="https://fonts.googleapis.com/css2?family=Albert+Sans:wght@400;600;700;800&display=swap" rel="stylesheet"> 11<!-- Tabler Icons 3.19.0 outline (jsdelivr host so it renders in preview; brief specifies cloudflare â either works in the Divi build) --> 12<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/[email protected]/dist/tabler-icons.min.css"> 13<style> 14/* ---------- Hard reset so the page is true edge-to-edge (kills theme/browser white border) ---------- */ 15html,body{margin:0!important;padding:0!important;width:100%;max-width:100%;overflow-x:hidden;background:#021E3A} 16/* ---------- Tokens ---------- */ 17#clb-hrp{ 18 --blue:#0C71C3; --blue-mid:#0A5FA3; --blue-deep:#042C53; --blue-ink:#021E3A; 19 --text:#0F172A; --text-2:#4B5563; --text-3:#9CA3AF; 20 --white:#FFFFFF; --off:#F7F8FA; --border:#E5E7EB; 21 --maxw:100%; --pad:clamp(20px,5vw,72px); 22 font-family:'Albert Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif; 23 color:var(--text); line-height:1.75; -webkit-font-smoothing:antialiased; 24 text-rendering:optimizeLegibility; 25} 26#clb-hrp *,#clb-hrp *::before,#clb-hrp *::after{box-sizing:border-box;margin:0;padding:0} 27/* Let the HubSpot guide form keep its own native spacing (exempt from the reset above) */ 28#clb-hrp img,#clb-hrp video{display:block;max-width:100%} 29 30/* ---------- Type roles ---------- */ 31#clb-hrp .h1{font-weight:800;font-size:clamp(40px,6vw,58px);letter-spacing:-0.03em;line-height:1.0} 32#clb-hrp .h2{font-weight:800;font-size:clamp(22px,3vw,34px);letter-spacing:-0.025em;line-height:1.1} 33#clb-hrp .sub{font-weight:700;font-size:16px;line-height:1.4} 34#clb-hrp .body{font-weight:400;font-size:16px;line-height:1.72;color:var(--text-2)} 35#clb-hrp .kicker{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--blue)} 36#clb-hrp .cap{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--text-3)} 37 38/* ---------- Layout helpers ---------- */ 39#clb-hrp .wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)} 40#clb-hrp .sec{padding-top:clamp(64px,9vw,112px);padding-bottom:clamp(64px,9vw,112px)} 41#clb-hrp .bg-off{background:var(--off)} 42#clb-hrp .bg-white{background:var(--white)} 43#clb-hrp .bg-deep{background:var(--blue-deep);color:var(--white)} 44#clb-hrp .bg-ink{background:var(--blue-ink);color:var(--white)} 45 46/* ---------- Buttons ---------- */ 47#clb-hrp .btn{ 48 display:inline-flex;align-items:center;gap:9px; 49 font-weight:600;font-size:14px;letter-spacing:0.03em; 50 padding:14px 26px;border-radius:8px;border:1px solid transparent; 51 cursor:pointer;text-decoration:none;transition:background 130ms ease,transform 130ms ease,border-color 130ms ease; 52} 53#clb-hrp .btn-primary{background:var(--blue);color:var(--white)} 54#clb-hrp .btn-primary:hover{background:var(--blue-mid)} 55#clb-hrp .btn:active{transform:scale(0.97)} 56#clb-hrp .btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,0.35)} 57#clb-hrp .btn-ghost:hover{border-color:rgba(255,255,255,0.7)} 58#clb-hrp .btn-light{background:var(--white);color:var(--blue-deep)} 59#clb-hrp .btn-light:hover{background:var(--off)} 60 61/* ---------- Reveal motion ---------- */ 62#clb-hrp [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity 450ms cubic-bezier(0.25,1,0.5,1),transform 450ms cubic-bezier(0.25,1,0.5,1)} 63#clb-hrp [data-reveal].in{opacity:1;transform:none} 64/* failsafe: lock final state even if a throttled compositor stalls the fade */ 65#clb-hrp [data-reveal].in.done{opacity:1 !important;transform:none !important;transition:none !important} 66 67/* ===== 1 HERO ===== */ 68#clb-hrp .hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden;background:var(--blue-ink) center/cover no-repeat} 69#clb-hrp .hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover} 70#clb-hrp .hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,30,58,0.55) 0%,rgba(2,30,58,0.25) 38%,rgba(2,30,58,0.82) 100%)} 71#clb-hrp .hero .wrap{position:relative;z-index:2;padding-bottom:clamp(56px,8vw,104px);padding-top:120px;width:100%} 72/* Top bar: transparent, sits at very top of hero, scrolls away with the page */ 73#clb-hrp .hero-topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(20px,5vw,72px)} 74#clb-hrp .hero-logo{display:inline-flex;align-items:center} 75#clb-hrp .hero-logo img{height:46px;width:auto;display:block;filter:brightness(0) invert(1);transition:opacity 130ms ease} 76#clb-hrp .hero-logo:hover img{opacity:0.8} 77#clb-hrp .hero-phone{display:inline-flex;align-items:center;gap:8px;color:var(--white);text-decoration:none;font-weight:700;font-size:15px;letter-spacing:0.01em} 78#clb-hrp .hero-phone i{font-size:18px} 79#clb-hrp .hero-phone:hover{opacity:0.82} 80/* Scroll-in sticky bar: hidden until scrolled past hero, then slides down + pins */ 81#clb-hrp .stickybar{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(2,30,58,0.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,0.08);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform 260ms ease,opacity 260ms ease} 82#clb-hrp .stickybar.show{transform:translateY(0);opacity:1;pointer-events:auto} 83#clb-hrp .stickybar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:66px;padding-top:0;padding-bottom:0} 84#clb-hrp .sb-logo{display:inline-flex;align-items:center} 85#clb-hrp .sb-logo img{height:36px;width:auto;display:block;filter:brightness(0) invert(1);transition:opacity 130ms ease} 86#clb-hrp .sb-logo:hover img{opacity:0.8} 87#clb-hrp .sb-cta{padding:9px 20px;font-size:13px} 88@media (max-width:640px){#clb-hrp .hero-logo img{height:38px}
88#clb-hrp .hero-phone span{display:none}#clb-hrp .sb-logo img{height:30px}} 89#clb-hrp .hero-inner{max-width:780px;color:var(--white)} 90#clb-hrp .hero .kicker{color:#7FBDEC;margin-bottom:18px} 91#clb-hrp .hero .h1{color:var(--white);margin-bottom:18px} 92#clb-hrp .hero .lede{font-weight:400;font-size:clamp(16px,2vw,19px);line-height:1.65;color:rgba(255,255,255,0.72);max-width:48ch;margin-bottom:30px} 93#clb-hrp .hero .actions{display:flex;flex-wrap:wrap;gap:12px} 94 95/* trust strip */ 96#clb-hrp .trust .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)} 97#clb-hrp .trust .cell{background:var(--white);display:flex;align-items:center;gap:14px;padding:26px clamp(18px,3vw,34px)} 98#clb-hrp .trust .cell i{font-size:26px;color:var(--blue);flex-shrink:0} 99#clb-hrp .trust .cell .t{font-weight:700;font-size:15px;line-height:1.2} 100#clb-hrp .trust .cell .d{font-size:13px;color:var(--text-2);line-height:1.35} 101 102/* ===== 2 SPLIT ===== */ 103#clb-hrp .split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch} 104#clb-hrp .split .media{position:relative;min-height:440px;overflow:hidden;background:var(--blue-deep)} 105#clb-hrp .split .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 600ms cubic-bezier(0.25,1,0.5,1)} 106#clb-hrp .split .media:hover img{transform:scale(1.03)} 107#clb-hrp .split .panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,84px)} 108#clb-hrp .panel-ink{background:var(--blue-ink);color:var(--white)} 109#clb-hrp .panel-ink .kicker{color:#7FBDEC} 110#clb-hrp .panel-ink .h2{color:var(--white);margin:14px 0 18px} 111#clb-hrp .panel-ink .body{color:rgba(255,255,255,0.7)} 112#clb-hrp .panel-ink .body+.body{margin-top:14px} 113#clb-hrp .panel-ink .impact-rule{height:1px;background:rgba(255,255,255,0.1);margin:22px 0} 114#clb-hrp .panel-ink .impact-sub{font-weight:700;font-size:16px;color:var(--white);margin-bottom:8px} 115#clb-hrp .panel-ink .impact-sub-body{font-size:15px;line-height:1.7;color:rgba(255,255,255,0.6)} 116 117/* ===== 3 QUOTES ===== */ 118#clb-hrp .quotes .head{max-width:60ch;margin-bottom:40px} 119#clb-hrp .quotes .head .h2{margin:12px 0 12px} 120#clb-hrp .qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px} 121#clb-hrp .qbox{display:flex;flex-direction:column;background:var(--off);border:1px solid var(--border);border-radius:14px;padding:30px 28px;transition:box-shadow 200ms ease,transform 200ms ease} 122#clb-hrp .qbox:hover{box-shadow:0 16px 40px -28px rgba(4,44,83,0.4);transform:translateY(-2px)} 123#clb-hrp .qbox .qmark{font-family:Georgia,'Times New Roman',serif;font-size:46px;line-height:0.7;color:var(--blue);opacity:0.28;margin-bottom:14px;user-select:none} 124#clb-hrp .qbox blockquote{font-size:16px;font-weight:600;line-height:1.55;letter-spacing:-0.01em;color:var(--text)} 125#clb-hrp .qbox .src{margin-top:auto;padding-top:22px;font-size:11.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-3);display:flex;align-items:center;gap:10px} 126#clb-hrp .qbox .src::before{content:'';width:22px;height:1.5px;background:var(--blue);flex-shrink:0} 127 128/* ===== 2 CLAIM-DENIED (dark, with quotes) ===== */ 129#clb-hrp .claim .claim-head{max-width:62ch;margin-bottom:46px} 130#clb-hrp .claim .ckicker{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:#7FBDEC;margin-bottom:16px} 131#clb-hrp .claim .claim-h2{font-weight:800;font-size:clamp(30px,4.8vw,54px);letter-spacing:-0.03em;line-height:1.03;color:#fff;margin-bottom:22px} 132#clb-hrp .claim .claim-lead{font-size:clamp(16px,1.7vw,19px);line-height:1.62;color:rgba(255,255,255,0.72);max-width:60ch} 133#clb-hrp .claim .claim-lead strong{color:#fff;font-weight:700} 134#clb-hrp .claim .qbox{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.14)} 135#clb-hrp .claim .qbox:hover{transform:translateY(-2px);box-shadow:0 18px 40px -28px rgba(0,0,0,0.6)} 136#clb-hrp .claim .qbox blockquote{color:rgba(255,255,255,0.94)} 137#clb-hrp .claim .qbox .qmark{color:#7FBDEC;opacity:0.55} 138#clb-hrp .claim .qbox .src{color:rgba(255,255,255,0.55)} 139#clb-hrp .claim .qbox .src::before{background:#7FBDEC} 140 141/* ===== BIG STATEMENT ===== */ 142#clb-hrp .statement{padding-top:clamp(64px,9vw,112px);padding-bottom:clamp(64px,9vw,112px);background:var(--white)} 143#clb-hrp .statement .si{max-width:1000px;margin:0 auto;text-align:center} 144#clb-hrp .statement .kicker{margin-bottom:20px} 145#clb-hrp .statement .statement-h{font-weight:800;font-size:clamp(24px,3.4vw,40px);letter-spacing:-0.028em;line-height:1.08;color:var(--blue-deep);max-width:22ch;margin:0 auto 22px;text-wrap:balance} 146#clb-hrp .statement .statement-body{font-size:clamp(16px,1.7vw,19px);line-height:1.62;color:var(--text-2);max-width:58ch;margin:0 auto 32px} 147#clb-hrp .statement .statement-cta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap} 148#clb-hrp .btn-line{background:transparent;color:var(--blue-deep);border-color:var(--border)} 149#clb-hrp .btn-line:hover{border-color:var(--blue);color:var(--blue)} 150 151/* ===== 4 OPTIONS ===== */ 152#clb-hrp .options{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px} 153#clb-hrp .opt{border:1px solid var(--border);border-radius:14px;padding:clamp(28px,4vw,40px);background:var(--white);display:flex;flex-direction:column} 154#clb-hrp .opt.feat{border-color:var(--blue);box-shadow:0 18px 48px -28px rgba(12,113,195,0.45)} 155#clb-hrp .opt .tag{align-self:flex-start;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;padding:5px 11px;border-radius:6px;margin-bottom:18px} 156#clb-hrp .opt.feat .tag{background:var(--blue);color:var(--white)} 157#clb-hrp .opt:not(.feat) .tag{background:var(--off);color:var(--text-2)} 158#clb-hrp .opt .name{font-weight:800;font-size:23px;letter-spacing:-0.02em;line-height:1.1} 159#clb-hrp .opt .desc{margin:10px 0 22px;font-size:15px;color:var(--text-2);line-height:1.6} 160#clb-hrp .opt ul{list-style:none;display:grid;gap:13px;margin-bottom:28px} 161#clb-hrp .opt li{display:flex;gap:11px;font-size:15px;line-height:1.5} 162#clb-hrp .opt li i{color:var(--blue);font-size:19px;flex-shrink:0;margin-top:1px} 163#clb-hrp .opt .foot{margin-top:auto} 164 165/* ===== 5 URGENCY ===== */ 166#clb-hrp .urgency .wrap{display:flex;align-items:center;gap:clamp(20px,4vw,48px);flex-wrap:wrap} 167#clb-hrp .urgency i.lead{font-size:54px;color:#7FBDEC;flex-shrink:0} 168#clb-hrp .urgency .txt{flex:1;min-width:260px} 169#clb-hrp .urgency .h2{color:var(--white);margin-bottom:8px} 170#clb-hrp .urgency .body{color:rgba(255,255,255,0.7);max-width:58ch} 171#clb-hrp .urgency .foot{flex-shrink:0} 172
173/* ===== 6 STRIP ===== */ 174#clb-hrp .strip{display:grid;grid-template-columns:repeat(3,1fr);gap:0} 175#clb-hrp .strip figure{position:relative;height:240px;overflow:hidden;background:var(--blue-deep)} 176#clb-hrp .strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 500ms cubic-bezier(0.25,1,0.5,1)} 177#clb-hrp .strip figure:hover img{transform:scale(1.06)} 178 179/* ===== 7 FORECAST ===== */ 180#clb-hrp .forecast .head{max-width:58ch;margin-bottom:44px} 181#clb-hrp .forecast .head .h2{margin:12px 0 14px} 182#clb-hrp .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:20px} 183#clb-hrp .stat{background:var(--white);padding:clamp(26px,3.5vw,38px)} 184#clb-hrp .stat .n{font-weight:800;font-size:clamp(34px,4.5vw,46px);letter-spacing:-0.03em;line-height:1;color:var(--blue-deep)} 185#clb-hrp .stat .l{margin-top:10px;font-size:14px;color:var(--text-2);line-height:1.4} 186#clb-hrp .noaa{display:flex;gap:14px;align-items:flex-start;max-width:70ch;margin-top:28px} 187#clb-hrp .noaa i{color:var(--blue);font-size:24px;flex-shrink:0;margin-top:3px} 188#clb-hrp .noaa .q{font-weight:700;font-size:17px;line-height:1.5;color:var(--text)} 189#clb-hrp .noaa .s{margin-top:6px;font-size:13px;color:var(--text-3);font-weight:700;letter-spacing:0.02em} 190#clb-hrp .srcline{font-size:11px;color:var(--text-3)} 191 192/* ===== 8 TRACKER ===== */ 193#clb-hrp .tracker .head{max-width:58ch;margin-bottom:34px} 194#clb-hrp .tracker .kicker{color:#7FBDEC} 195#clb-hrp .tracker .h2{color:var(--white);margin:12px 0 14px} 196#clb-hrp .tracker .body{color:rgba(255,255,255,0.7)} 197#clb-hrp .tracker .frame{border:1px solid rgba(255,255,255,0.14);border-radius:16px;overflow:hidden;background:#0a1f38;box-shadow:0 30px 70px -40px rgba(0,0,0,0.7)} 198#clb-hrp .track-wrap{position:relative;min-height:520px} 199#clb-hrp .tracker iframe{display:block;width:100%;height:520px;border:0;background:#0a1f38} 200#clb-hrp .track-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:40px;background:#0a1f38} 201#clb-hrp .track-fallback i{font-size:46px;color:#7FBDEC} 202#clb-hrp .track-fallback .tf-t{font-weight:800;font-size:20px;letter-spacing:-0.02em;color:#fff} 203#clb-hrp .track-fallback p{font-size:14px;color:rgba(255,255,255,0.62);max-width:42ch;line-height:1.6} 204#clb-hrp .track-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px 22px;background:rgba(255,255,255,0.04);border-top:1px solid rgba(255,255,255,0.1)} 205#clb-hrp .track-bar .tb-live{display:flex;align-items:center;gap:11px;font-weight:700;font-size:13px;letter-spacing:0.02em;color:#fff} 206#clb-hrp .track-bar .dot{width:9px;height:9px;border-radius:50%;background:#3FBF6A;box-shadow:0 0 0 0 rgba(63,191,106,0.6);animation:clbPulse 2s infinite} 207@keyframes clbPulse{0%{box-shadow:0 0 0 0 rgba(63,191,106,0.55)}70%{box-shadow:0 0 0 9px rgba(63,191,106,0)}100%{box-shadow:0 0 0 0 rgba(63,191,106,0)}} 208#clb-hrp .track-bar .tb-meta{font-weight:400;color:rgba(255,255,255,0.5);font-size:12.5px;letter-spacing:0} 209#clb-hrp .track-bar .tb-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:#7FBDEC;text-decoration:none;letter-spacing:0.01em} 210#clb-hrp .track-bar .tb-link:hover{color:#fff} 211#clb-hrp .tracker .attr{margin-top:14px;font-size:12px;color:rgba(255,255,255,0.5);font-weight:700;letter-spacing:0.06em;text-transform:uppercase} 212@media (prefers-reduced-motion:reduce){#clb-hrp .track-bar .dot{animation:none}} 213 214/* ===== 9 HOW ===== */ 215#clb-hrp .steps.how{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,84px)} 216#clb-hrp .how .kicker{margin-bottom:12px} 217#clb-hrp .how .h2{margin-bottom:30px} 218#clb-hrp .stepline{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--border)} 219#clb-hrp .stepline:first-of-type{border-top:0} 220#clb-hrp .stepnum{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--off);color:var(--blue-deep);font-weight:800;font-size:15px;
220display:flex;align-items:center;justify-content:center;letter-spacing:-0.02em} 221#clb-hrp .stepline .st{font-weight:700;font-size:16px;line-height:1.3} 222#clb-hrp .stepline .sb{margin-top:5px;font-size:15px;color:var(--text-2);line-height:1.55} 223 224/* ===== 10 QUIZ ===== */ 225#clb-hrp .quiz-head{max-width:56ch;margin-bottom:36px} 226#clb-hrp .quiz-head .h2{margin:12px 0 14px} 227#clb-hrp .quiz{max-width:760px;border:1px solid var(--border);border-radius:16px;background:var(--white);overflow:hidden} 228#clb-hrp .quiz .bar{height:4px;background:var(--border)} 229#clb-hrp .quiz .bar .fill{height:100%;width:0%;background:var(--blue);transition:width 250ms ease-in-out} 230#clb-hrp .quiz .stage{padding:clamp(28px,4vw,44px)} 231#clb-hrp .quiz .qnum{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--text-3);margin-bottom:12px} 232#clb-hrp .quiz .qtext{font-weight:800;font-size:clamp(20px,2.6vw,26px);letter-spacing:-0.02em;line-height:1.2;margin-bottom:26px} 233#clb-hrp .quiz .answers{display:grid;gap:12px} 234#clb-hrp .quiz .ans{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;padding:17px 20px;border:1px solid var(--border);border-radius:10px;background:var(--white);font-family:inherit;font-weight:700;font-size:16px;color:var(--text);cursor:pointer;transition:border-color 130ms ease,background 130ms ease} 235#clb-hrp .quiz .ans:hover{border-color:var(--blue);background:var(--off)} 236#clb-hrp .quiz .ans i{color:var(--text-3);font-size:20px;transition:color 130ms ease} 237#clb-hrp .quiz .ans:hover i{color:var(--blue)} 238#clb-hrp .quiz .result .badge{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:13px;letter-spacing:0.04em;padding:8px 15px;border-radius:8px;margin-bottom:18px} 239#clb-hrp .quiz .result.r-high .badge{background:#FDECEC;color:#B42318} 240#clb-hrp .quiz .result.r-mid .badge{background:#FEF6E7;color:#B25E09} 241#clb-hrp .quiz .result.r-low .badge{background:#E7F4EC;color:#1A7F45} 242#clb-hrp .quiz .result .rt{font-weight:800;font-size:clamp(20px,2.6vw,26px);letter-spacing:-0.02em;line-height:1.2;margin-bottom:12px} 243#clb-hrp .quiz .result .rb{font-size:16px;color:var(--text-2);line-height:1.6;max-width:54ch;margin-bottom:26px} 244#clb-hrp .quiz .restart{background:none;border:0;color:var(--blue);font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;padding:0;margin-left:14px} 245 246/* ===== 11 GUIDE ===== */ 247#clb-hrp .copy.guide{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,84px)} 248#clb-hrp .copy.guide .body{text-align:justify} 249#clb-hrp .guide .kicker{margin-bottom:12px} 250#clb-hrp .guide .h2{margin-bottom:16px} 251#clb-hrp .guide ul{list-style:none;display:grid;gap:12px;margin:6px 0 28px} 252#clb-hrp .guide li{display:flex;gap:11px;font-size:15px;line-height:1.5;color:var(--text-2)} 253#clb-hrp .guide li i{color:var(--blue);font-size:19px;flex-shrink:0;margin-top:1px} 254/* ===== 12 TESTIMONIALS ===== */ 255#clb-hrp .tst .head{max-width:54ch;margin-bottom:40px} 256#clb-hrp .tst .head .h2{margin-top:12px} 257#clb-hrp .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0} 258#clb-hrp .tcell{padding:clamp(26px,3vw,38px);border-left:1px solid var(--border)} 259#clb-hrp .tcell:first-child{border-left:0;padding-left:0} 260#clb-hrp .tcell:last-child{padding-right:0} 261#clb-hrp .tcell blockquote{font-weight:600;font-size:16px;font-style:italic;line-height:1.6;color:var(--text);letter-spacing:-0.01em} 262#clb-hrp .tcell .who{margin-top:16px;font-size:13px;color:var(--text-3);font-weight:700;letter-spacing:0.02em} 263#clb-hrp .tst .pending{margin-top:34px;display:flex;gap:11px;align-items:center;font-size:13px;color:var(--text-3);font-weight:700;letter-spacing:0.02em} 264#clb-hrp .tst .pending i{font-size:18px} 265 266/* ===== 13 FORM ===== */ 267#clb-hrp .form-card{max-width:900px;margin:0 auto;background:var(--white);border:1px solid var(--border);border-radius:16px;padding:clamp(28px,4vw,52px)} 268#clb-hrp .form-head{margin-bottom:30px} 269#clb-hrp .form-head .h2{margin:12px 0 12px} 270#clb-hrp .form-head .body{max-width:62ch} 271#clb-hrp .price-row{margin-top:22px;padding-top:22px;border-top:1px solid var(--border);display:flex;align-items:baseline;gap:18px;flex-wrap:wrap} 272#clb-hrp .price{display:flex;align-items:baseline;gap:9px} 273#clb-hrp .price .pn{font-weight:800;font-size:30px;letter-spacing:-0.03em;color:var(--blue-deep)} 274#clb-hrp .price .pl{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-3)} 275#clb-hrp .price-detail{font-size:14px;color:var(--text-2);line-height:1.5;flex:1;min-width:240px} 276#clb-hrp .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
277#clb-hrp .field{display:flex;flex-direction:column;gap:7px} 278#clb-hrp .field.full{grid-column:1/-1} 279#clb-hrp .field label{font-weight:700;font-size:12.5px;color:var(--text);letter-spacing:0.01em} 280#clb-hrp .field input,#clb-hrp .field select,#clb-hrp .field textarea{font-family:inherit;font-size:15px;color:var(--text);padding:13px 14px;border:1px solid var(--border);border-radius:8px;background:var(--white);transition:border-color 130ms ease,box-shadow 130ms ease} 281#clb-hrp .field input:focus,#clb-hrp .field select:focus,#clb-hrp .field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(12,113,195,0.12)} 282#clb-hrp .field textarea{resize:vertical;min-height:90px} 283#clb-hrp .field .ferr{display:none;color:#B42318;font-size:12px;font-weight:700} 284#clb-hrp .field.bad input,#clb-hrp .field.bad select{border-color:#B42318} 285#clb-hrp .field.bad .ferr{display:block} 286#clb-hrp .fset{grid-column:1/-1;border:0;margin-top:2px} 287#clb-hrp .fset legend{font-weight:700;font-size:12.5px;color:var(--text);margin-bottom:10px;line-height:1.45} 288#clb-hrp .fset.bad legend{color:#B42318} 289#clb-hrp .fopts{display:flex;flex-direction:column;gap:9px} 290#clb-hrp .fopt{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border:1px solid var(--border);border-radius:9px;cursor:pointer;font-size:14.5px;line-height:1.45;transition:border-color 130ms ease,background 130ms ease} 291#clb-hrp .fopt:hover{border-color:var(--blue);background:var(--off)} 292#clb-hrp .fopt input{margin-top:2px;accent-color:var(--blue);flex-shrink:0} 293#clb-hrp .form-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px} 294#clb-hrp .fnote{font-size:13px;color:var(--text-3);max-width:46ch} 295#clb-hrp .form-success{display:none;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:32px 10px} 296#clb-hrp .form-success.show{display:flex} 297#clb-hrp .form-success i{font-size:52px;color:var(--blue)} 298#clb-hrp .form-success .rt{font-weight:800;font-size:26px;letter-spacing:-0.02em} 299#clb-hrp .form-success p{font-size:15px;color:var(--text-2);max-width:48ch;line-height:1.6} 300 301/* ===== 14 FAQ ===== */ 302#clb-hrp .faq .head{max-width:54ch;margin-bottom:36px} 303#clb-hrp .faq .head .h2{margin-top:12px} 304#clb-hrp .faqlist{max-width:840px} 305#clb-hrp .faqitem{border-top:1px solid var(--border)} 306#clb-hrp .faqitem:last-child{border-bottom:1px solid var(--border)} 307#clb-hrp .faqq{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;padding:24px 0;font-family:inherit;font-weight:700;font-size:clamp(16px,1.9vw,18px);letter-spacing:-0.01em;color:var(--text);text-align:left;cursor:pointer} 308#clb-hrp .faqq i{font-size:22px;color:var(--blue);flex-shrink:0;transition:transform 200ms ease-out} 309#clb-hrp .faqitem.open .faqq i{transform:rotate(180deg)} 310#clb-hrp .faqa{overflow:hidden;height:0;transition:height 240ms ease-out} 311#clb-hrp .faqa .inner{padding:0 0 24px;font-size:16px;line-height:1.7;color:var(--text-2);max-width:68ch} 312 313/* footer */ 314#clb-hrp .ftr{padding:48px 0;border-top:1px solid var(--border);background:var(--white)} 315#clb-hrp .ftr .wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;flex-wrap:wrap} 316#clb-hrp .ftr .logo{height:34px;width:auto;margin-bottom:14px} 317#clb-hrp .ftr .meta{font-size:13px;color:var(--text-3);line-height:1.7} 318#clb-hrp .ftr .fcontact{font-size:14px;line-height:1.8} 319#clb-hrp .ftr .fcontact a{color:var(--text);text-decoration:none;font-weight:700} 320#clb-hrp .ftr .fcontact a:hover{color:var(--blue)} 321#clb-hrp .ftr .fcontact .lbl{display:block;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:var(--text-3);margin-bottom:6px} 322#clb-hrp .ftr .fsocials{display:flex;gap:16px;margin-top:10px} 323#clb-hrp .ftr .fsocials a{color:var(--text-2);font-size:20px;text-decoration:none} 324#clb-hrp .ftr .fsocials a:hover{color:var(--blue)} 325 326/* responsive */ 327@media (max-width:860px){ 328 #clb-hrp .split,#clb-hrp .how-split,#clb-hrp .guide-split{grid-template-columns:1fr} 329 #clb-hrp .split .media{min-height:300px;order:-1} 330 #clb-hrp .how-split .media{min-height:300px} 331 #clb-hrp .guide-split .media{min-height:300px;order:-1} 332 #clb-hrp .options{grid-template-columns:1fr} 333 #clb-hrp .qgrid{grid-template-columns:1fr} 334 #clb-hrp .trust .grid{grid-template-columns:1fr} 335 #clb-hrp .stats{grid-template-columns:1fr} 336 #clb-hrp .strip{grid-template-columns:1fr} 337 #clb-hrp .tgrid{grid-template-columns:1fr} 338 #clb-hrp .tcell{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-right:0} 339 #clb-hrp .tcell:first-child{border-top:0} 340 #clb-hrp .urgency .foot{width:100%} 341} 342@media (max-width:640px){ 343 #clb-hrp .fgrid{grid-template-columns:1fr} 344 #clb-hrp .hero .actions .btn{flex:1;justify-content:center} 345}
345 346@media (prefers-reduced-motion:reduce){ 347 #clb-hrp *,#clb-hrp *::before,#clb-hrp *::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important} 348 #clb-hrp [data-reveal]{opacity:1;transform:none} 349} 350</style> 351</head> 352<body> 353<template id="__bundler_thumbnail" data-bg-color="#021E3A"> 354 <svg viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg"> 355 <rect width="1200" height="800" fill="#021E3A"/> 356 <path d="M350 432 L600 300 L850 432 Z" fill="none" stroke="#7FBDEC" stroke-width="18" stroke-linejoin="round"/> 357 <path d="M392 432 L600 322 L808 432 Z" fill="#0C71C3" opacity="0.28"/> 358 <line x1="392" y1="432" x2="392" y2="548" stroke="#7FBDEC" stroke-width="14" stroke-linecap="round"/> 359 <line x1="808" y1="432" x2="808" y2="548" stroke="#7FBDEC" stroke-width="14" stroke-linecap="round"/> 360 <path d="M250 566 q60 -28 120 0 t120 0 t120 0 t120 0 t120 0 t120 0" fill="none" stroke="#0C71C3" stroke-width="13" stroke-linecap="round" opacity="0.85"/> 361 <path d="M250 618 q60 -28 120 0 t120 0 t120 0 t120 0 t120 0 t120 0" fill="none" stroke="#0A5FA3" stroke-width="11" stroke-linecap="round" opacity="0.6"/> 362 </svg> 363</template> 364<div id="clb-hrp"> 365 <!-- SCROLL-IN STICKY BAR (hidden until scrolled; logo left, reserve right) --> 366 <div class="stickybar" id="clbSticky"> 367 <div class="wrap"> 368 <a class="sb-logo" href="https://www.coastlineboatliftcovers.com/" aria-label="Coastline Boat Lift Covers home"> 369 <img src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/05/Coastline-Boat-Lift-Covers-in-Florida.png" alt="Coastline Boat Lift Covers"> 370 </a> 371 <a class="btn btn-primary sb-cta" href="#form">Reserve your spot<i class="ti ti-arrow-right"></i></a> 372 </div> 373 </div> 374 <!-- 1 HERO --> 375 <section class="hero" style="background-image:url('https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/06/Hurricane-Removal-Coastline-Boat-Lift-Covers-in-Fort-Myers.jpg')"> 376 <video autoplay muted loop playsinline poster="https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/06/Hurricane-Removal-Coastline-Boat-Lift-Covers-in-Fort-Myers.jpg"> 377 <source src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/06/Coastline-Reversed-1.mp4" type="video/mp4"> 378 <source src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/06/Coastline-Boatlift-Covers-Florida-1.mov"> 379 </video> 380 <div class="scrim"></div> 381 <div class="hero-topbar"> 382 <a class="hero-logo" href="https://www.coastlineboatliftcovers.com/" aria-label="Coastline Boat Lift Covers home"> 383 <img src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2025/05/Coastline-Boat-Lift-Covers-in-Florida.png" alt="Coastline Boat Lift Covers"> 384 </a> 385 <a class="hero-phone" href="tel:2399943047"><i class="ti ti-phone"></i><span>(239) 994-3047</span></a> 386 </div> 387 <div class="wrap"> 388 <div class="hero-inner"> 389 <div class="kicker">Don't wait for a named storm</div> 390 <h1 class="h1">Hurricane Removal Program</h1> 391 <p class="lede">Professional boat lift canopy removal and reinstallation for Southwest Florida owners. Secure your spot before demand spikes, spots fill, and prices go up.</p> 392 <div class="actions"> 393 <a class="btn btn-primary" href="#program">See program options<i class="ti ti-arrow-right"></i></a> 394 <a class="btn btn-ghost" href="#guide">Get the free hurricane guide</a> 395 </div> 396 </div> 397 </div> 398 </section> 399 400 <!-- TRUST STRIP --> 401 <section class="trust bg-white"> 402 <div class="grid"> 403 <div class="cell" data-reveal><i class="ti ti-shield-check"></i><div><div class="t">Protect your coverage</div><div class="d">Follow the plan your insurer expects</div></div></div> 404 <div class="cell" data-reveal><i class="ti ti-wind"></i><div><div class="t">Reduce storm damage</div><div class="d">Remove windage before the storm arrives</div></div></div> 405 <div class="cell" data-reveal><i class="ti ti-calendar-check"></i><div><div class="t">Beat the rush</div><div class="d">Early enrollment locks your spot and rate</div></div></div> 406 </div> 407 </section> 408 409 <!-- 2 CLAIM DENIED + INSURER QUOTES --> 410 <section class="sec bg-ink claim"> 411 <div class="wrap"> 412 <div class="claim-head" data-reveal> 413 <div class="ckicker">Coverage protection</div> 414 <h2 class="claim-h2">No hurricane plan?<br>Your claim can be denied.</h2> 415 <p class="claim-lead">Insurers studied post-storm data and reached one conclusion: how an owner prepares determines how much damage a boat sustains. So they began requiring written hurricane plans â and tying coverage to whether you followed one. <strong>Skip a step, and the claim can be denied â no matter how severe the storm was.</strong> Here's how the industry puts it.</p> 416 </div> 417 <div class="qgrid"> 418 <div class="qbox" data-reveal> 419 <div class="qmark" aria-hidden="true">"</div> 420 <blockquote>Damage directly resulting from a failure to follow a hurricane plan will almost always result in denial of coverage.</blockquote> 421 <div class="src">Marlin Magazine</div> 422 </div> 423 <div class="qbox" data-reveal> 424 <div class="qmark" aria-hidden="true">"</div> 425 <blockquote>The difference between a covered and a denied hurricane claim often comes down to whether you followed your policy's requirements.</blockquote> 426 <div class="src">Casey Insurance</div> 427 </div> 428 <div class="qbox" data-reveal> 429 <div class="qmark" aria-hidden="true">"</div> 430 <blockquote>This is usually the most important thing boat insurance companies look at when reviewing your hurricane plan.</blockquote> 431 <div class="src">Hanham Insurance Agency</div> 432 </div> 433 </div> 434 </div> 435 </section> 436 437 <!-- 3 BIG STATEMENT --> 438 <section class="sec statement"> 439 <div class="wrap"> 440 <div class="si" data-reveal> 441 <div class="kicker">The step that matters</div> 442 <h2 class="statement-h">Canopy removal is part of that plan.</h2> 443 <p class="statement-body">Reducing windage â taking down canvas, covers, and canopies before a storm arrives â is one of the documented preparation steps insurers and storm-prep experts expect. It's the step Coastline handles for you, start to finish.</p> 444 <div class="statement-cta"> 445 <a class="btn btn-primary" href="#program">See program options<i class="ti ti-arrow-right"></i></a> 446 <a class="btn btn-line" href="#how">How it works</a> 447 </div> 448 </div> 449 </div> 450 </section> 451 452 <!-- 4 PROGRAM OPTIONS -->
453 <section class="sec bg-off" id="program"> 454 <div class="wrap"> 455 <div class="head" data-reveal style="max-width:58ch"> 456 <div class="kicker">The program</div> 457 <h2 class="h2" style="margin:12px 0 14px">Two ways to stay covered</h2> 458 <p class="body">Both options include professional removal and reinstallation after the storm passes. You do not need to be home. We invoice after the work is complete.</p> 459 </div> 460 <div class="options"> 461 <div class="opt feat" data-reveal> 462 <span class="tag">Most chosen</span> 463 <div class="name">Annual Program</div> 464 <div class="desc">Enroll once and never think about it again. We track the season and reach out when it's time â no calls, no scheduling stress.</div> 465 <ul> 466 <li><i class="ti ti-check"></i>Priority scheduling ahead of one-time requests</li> 467 <li><i class="ti ti-check"></i>We reach out automatically when it's time</li> 468 <li><i class="ti ti-check"></i>Removal and reinstallation included</li> 469 <li><i class="ti ti-check"></i>Locked seasonal rate, no rush pricing â cancel anytime</li> 470 </ul> 471 <div class="foot"><a class="btn btn-primary" href="#form">Enroll in the annual program<i class="ti ti-arrow-right"></i></a></div> 472 </div> 473 <div class="opt" data-reveal> 474 <span class="tag">As needed</span> 475 <div class="name">One-Time Service</div> 476 <div class="desc">Request removal and reinstallation for a single season, scheduled around crew availability before the rush.</div> 477 <ul> 478 <li><i class="ti ti-check"></i>Single removal and reinstallation</li> 479 <li><i class="ti ti-check"></i>Scheduled as the season allows</li> 480 <li><i class="ti ti-check"></i>Removal and reinstall for a single season</li> 481 <li><i class="ti ti-check"></i>Invoiced after the work is done</li> 482 </ul> 483 <div class="foot"><a class="btn btn-light" style="border:1px solid var(--border)" href="#form">Request one-time service<i class="ti ti-arrow-right"></i></a></div> 484 </div> 485 </div> 486 </div> 487 </section> 488 489 <!-- 5 URGENCY --> 490 <section class="sec bg-deep urgency"> 491 <div class="wrap"> 492 <i class="ti ti-clock-exclamation lead"></i> 493 <div class="txt" data-reveal> 494 <h2 class="h2">Once a hurricane's in the forecast, removal requests spike and spots fill fast</h2> 495 <p class="body">If a storm is announced before your scheduled removal, we'll bump you to the front of the line â but we can't promise we'll reach everyone. Pricing also goes up once a named storm is headed our way. Booking early locks your spot and your rate.</p> 496 </div> 497 <div class="foot" data-reveal><a class="btn btn-light" href="#program">Lock your spot now<i class="ti ti-arrow-right"></i></a></div> 498 </div> 499 </section> 500 501 <!-- 6 PHOTO STRIP --> 502 <section class="strip" aria-hidden="true"> 503 <figure><img loading="lazy" src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2026/01/Copy-of-4M7A9006.jpg" alt=""></figure> 504 <figure><img loading="lazy" src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2026/01/Copy-of-4M7A8999.jpg" alt=""></figure> 505 <figure><img loading="lazy" src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2026/01/IMG_7711.jpg" alt=""></figure> 506 </section> 507 508 <!-- 7 FORECAST --> 509 <section class="sec bg-off forecast"> 510 <div class="wrap"> 511 <div class="head" data-reveal> 512 <div class="kicker">2026 season outlook</div> 513 <h2 class="h2">Below-normal forecast. It only takes one.</h2> 514 <p class="body">NOAA's 2026 Atlantic hurricane season outlook predicts a below-normal season. But a quiet forecast is not a safe forecast. One storm making landfall in Southwest Florida is all it takes.</p> 515 </div> 516 <div class="stats"> 517 <div class="stat" data-reveal><div class="n">8â14</div><div class="l">Named storms forecast for the 2026 Atlantic season</div></div> 518 <div class="stat" data-reveal><div class="n">3â6</div><div class="l">Expected to reach hurricane strength</div></div> 519 <div class="stat" data-reveal><div class="n">1â3</div><div class="l">Forecast to become major hurricanes (Category 3 or higher)</div></div> 520 </div> 521 <p class="srcline" data-reveal>NOAA 2026 Atlantic Hurricane Season Outlook (May 2026) · Colorado State University Tropical Meteorology Project (April 2026)</p> 522 <div class="noaa" data-reveal> 523 <i class="ti ti-alert-triangle"></i> 524 <div> 525 <div class="q">"It only takes one." A below-average season still means a damaging storm can reach the SW Florida coast.</div> 526 <div class="s">NOAA, 2026 Atlantic Hurricane Season Outlook</div> 527 </div> 528 </div> 529 </div> 530 </section> 531 532 <!-- 8 NHC TRACKER --> 533 <section class="sec bg-ink tracker"> 534 <div class="wrap"> 535 <div class="head" data-reveal> 536 <div class="kicker">Live tracking</div> 537 <h2 class="h2">Watch the tropics in real time</h2> 538 <p class="body">A live wind and storm map of the Gulf and Atlantic â pan, zoom, and watch systems develop. When something forms out here, we're already planning routes for our annual members.</p> 539 </div> 540 <div class="frame" data-reveal> 541 <div class="track-wrap"> 542 <iframe id="clbNHC" title="Live wind and tropical storm tracker â Gulf and Atlantic" loading="lazy" 543 src="https://embed.windy.com/embed2.html?lat=25.5&lon=-78&detailLat=26.64&detailLon=-81.87&width=100%25&height=520&zoom=4&level=surface&overlay=wind&product=ecmwf&menu=&message=true&marker=true&calendar=now&pressure=&type=map&location=coordinates&detail=&metricWind=mph&metricTemp=%C2%B0F&radarRange=-1"></iframe> 544 <div class="track-fallback" id="clbNHCfb"> 545 <i class="ti ti-radar-2"></i> 546 <div class="tf-t">Live tracker</div> 547 <p>The live map can't load right now. View the current Atlantic tropical outlook directly at the National Hurricane Center.</p> 548 <a class="btn btn-light" href="https://www.nhc.noaa.gov/" target="_blank" rel="noopener">Open the NHC outlook<i class="ti ti-external-link"></i></a> 549 </div> 550 </div> 551 <div class="track-bar">
552 <span class="tb-live"><span class="dot" aria-hidden="true"></span>Live · Gulf & Atlantic<span class="tb-meta"> â wind, pressure & active systems</span></span> 553 <a class="tb-link" href="https://www.nhc.noaa.gov/" target="_blank" rel="noopener">Official NHC outlook<i class="ti ti-external-link"></i></a> 554 </div> 555 </div> 556 <div class="attr">Live map: Windy.com · Authoritative outlook: National Hurricane Center, NOAA</div> 557 </div> 558 </section> 559 560 <!-- 9 HOW IT WORKS --> 561 <section class="bg-white"> 562 <div class="split how-split"> 563 <div class="steps how" data-reveal> 564 <div class="kicker">How it works</div> 565 <h2 class="h2">Four steps, none of them yours</h2> 566 <div class="stepline"><div class="stepnum">1</div><div><div class="st">You enroll or request</div><div class="sb">Pick the annual program or a one-time removal. A few details about your lift and we're set.</div></div></div> 567 <div class="stepline"><div class="stepnum">2</div><div><div class="st">We follow up to schedule</div><div class="sb">A member of our team reaches out to schedule your removal and discuss when you'd like the canopy reinstalled.</div></div></div> 568 <div class="stepline"><div class="stepnum">3</div><div><div class="st">We remove the canopy</div><div class="sb">Our crew takes the canopy down. You don't need to be home for any of it.</div></div></div> 569 <div class="stepline"><div class="stepnum">4</div><div><div class="st">We reinstall and invoice</div><div class="sb">Once it's safe, we reinstall the canopy and invoice you after the work is complete.</div></div></div> 570 </div> 571 <div class="media" data-reveal> 572 <img loading="lazy" src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2026/05/Coastline-protective-gear.jpg" alt="Coastline crew in protective gear removing a boat lift canopy in Southwest Florida"> 573 </div> 574 </div> 575 </section> 576 577 <!-- 10 QUIZ --> 578 <section class="sec bg-off"> 579 <div class="wrap"> 580 <div class="quiz-head" data-reveal> 581 <div class="kicker">Quick check</div> 582 <h2 class="h2">Is your boat ready for the season?</h2> 583 <p class="body">Three questions. A straight read on where you stand before the next system forms.</p> 584 </div> 585 <div class="quiz" data-reveal id="clb-quiz"> 586 <div class="bar"><div class="fill" id="quizFill"></div></div> 587 <div class="stage" id="quizStage"></div> 588 </div> 589 </div> 590 </section> 591 592 <!-- 11 FREE GUIDE --> 593 <section class="bg-white" id="guide"> 594 <div class="split guide-split"> 595 <div class="media" data-reveal> 596 <img loading="lazy" src="https://www.coastlineboatliftcovers.com/wp-content/uploads/2026/01/Copy-of-4M7A9011.jpg" alt="Detail of a finished Coastline boat lift canopy"> 597 </div> 598 <div class="copy guide" data-reveal> 599 <div class="kicker">Free guide</div> 600 <h2 class="h2">The Boat Hurricane Plan Guide</h2> 601 <p class="body" style="margin-bottom:6px">A plain-language walkthrough of what a responsible hurricane plan includes â the kind insurers expect to see on file.</p> 602 <ul> 603 <li><i class="ti ti-file-description"></i>What belongs in a documented plan</li> 604 <li><i class="ti ti-file-description"></i>Where canopy removal fits in the steps</li> 605 <li><i class="ti ti-file-description"></i>Questions to ask your marine insurer</li> 606 <li><i class="ti ti-file-description"></i>A fill-in checklist you can keep on hand</li> 607 </ul> 608 <p class="body" style="font-size:14px;color:var(--text-3);margin-bottom:14px">Enter your email and we'll send the guide straight over â free, no obligation.</p> 609 <div class="guide-form"> 610
610<script src="https://js.hsforms.net/forms/embed/23475116.js" defer></script>
610 611 <div class="hs-form-frame" data-region="na1" data-form-id="26377c88-6cf0-458b-b1c2-960a8c202baa" data-portal-id="23475116"></div> 612 </div> 613 </div> 614 </div> 615 </section> 616 617 <!-- 12 TESTIMONIALS --> 618 <section class="sec bg-white tst"> 619 <div class="wrap"> 620 <div class="head" data-reveal> 621 <div class="kicker">From the docks</div> 622 <h2 class="h2">What local owners say</h2> 623 </div> 624 <div class="tgrid"> 625 <div class="tcell" data-reveal> 626 <blockquote>"The purchasing process was very detailed and professional. The install was quick and thorough â they did a great job."</blockquote> 627 <div class="who">Ken · Google review</div> 628 </div> 629 <div class="tcell" data-reveal> 630 <blockquote>"Nick and his team did a fantastic job from start to finish with our boat lift cover. It looks fantastic. I would highly recommend this company."</blockquote> 631 <div class="who">John · Google review</div> 632 </div> 633 <div class="tcell" data-reveal> 634 <blockquote>"We highly recommend Coastline Boat Lift Covers. Professional, courteous staff, on time."</blockquote> 635 <div class="who">Peggy · Google review</div> 636 </div> 637 </div> 638 </div> 639 </section> 640 641 <!-- 13 FORM --> 642 <section class="sec bg-off" id="form"> 643 <div class="wrap"> 644 <div class="form-card" data-reveal> 645 <div class="form-head" id="clbFormHead"> 646 <div class="kicker">Get started</div> 647 <h2 class="h2">Reserve your removal for the season</h2> 648 <p class="body">Tell us about your lift and we'll follow up with scheduling details once we receive your request. You don't need to be home â we invoice after each visit.</p> 649 <div class="price-row"> 650 <div class="price"><span class="pn">$600</span><span class="pl">for the program</span></div> 651 <div class="price-detail">$300 for removal · $300 to reinstall after the storm passes. Invoiced after each visit. Bungee replacement, if needed, is $100 with re-install.</div> 652 </div> 653 </div> 654 <form id="clbForm" novalidate> 655 <div class="fgrid"> 656 <div class="field full"><label for="cf-name">First & last name *</label><input id="cf-name" name="name" type="text" autocomplete="name"><span class="ferr">Please enter your name.</span></div> 657 <div class="field"><label for="cf-email">Email *</label><input id="cf-email" name="email" type="email" autocomplete="email"><span class="ferr">Please enter a valid email.</span></div> 658 <div class="field"><label for="cf-phone">Phone number *</label><input id="cf-phone" name="phone" type="tel" autocomplete="tel"><span class="ferr">Please enter your phone.</span></div> 659 <div class="field full"><label for="cf-address">Service address *</label><input id="cf-address" name="address" type="text" placeholder="Street, community, or dock location"><span class="ferr">Please enter your service address.</span></div> 660 <div class="field full"><label for="cf-window">Scheduling window *</label> 661 <select id="cf-window" name="window"><option value="">Selectâ¦</option><option value="June Removal --> October/November Re-Install">June Removal â October/November Re-Install</option><option value="July Removal --> October/November Re-Install">July Removal â October/November Re-Install</option><option value="August Removal --> October/November Re-Install">August Removal â October/November Re-Install</option><option value="September Removal --> October/November Re-Install">September Removal â October/November Re-Install</option></select> 662 <span class="ferr">Please choose a scheduling window.</span> 663 </div> 664 <fieldset class="fset" id="fs-bungee"> 665 <legend>Have your bungees been replaced in the past 18 months? If no, we recommend replacement to protect your canopy â $100 with re-install. *</legend> 666 <div class="fopts"> 667 <label class="fopt"><input type="radio" name="bungee" value="Yes"><span>Yes</span></label> 668 <label class="fopt"><input type="radio" name="bungee" value="No"><span>No â please replace them ($100 with re-install).</span></label> 669 <label class="fopt"><input type="radio" name="bungee" value="Not Interested"><span>Not interested</span></label> 670 </div>
671 <span class="ferr" style="margin-top:8px">Please pick one.</span> 672 </fieldset> 673 <fieldset class="fset" id="fs-auto"> 674 <legend>Would you like to opt into our hurricane removal program on an annual basis? If yes, we'll make sure your canopy gets taken down and put back up every year. *</legend> 675 <div class="fopts"> 676 <label class="fopt"><input type="radio" name="auto" value="Yes"><span>Yes</span></label> 677 <label class="fopt"><input type="radio" name="auto" value="No"><span>No</span></label> 678 </div> 679 <span class="ferr" style="margin-top:8px">Please pick one.</span> 680 </fieldset> 681 <div class="form-actions"> 682 <button class="btn btn-primary" type="submit">Reserve my spot<i class="ti ti-arrow-right"></i></button> 683 <p class="fnote" id="clbFormNote">No charge today. Our team follows up to confirm scheduling.</p> 684 </div> 685 </div> 686 </form> 687 <div class="form-success" id="clbSuccess"> 688 <i class="ti ti-circle-check"></i> 689 <div class="rt">You're on the list.</div> 690 <p>Thanks â we've got your request. A member of our Southwest Florida team will reach out to confirm scheduling and reinstall timing. Nothing's due today.</p> 691 </div> 692 </div> 693 </div> 694 <iframe name="clb-gform-sink" id="clb-gform-sink" style="display:none" title="form sink" aria-hidden="true"></iframe> 695 </section> 696 697 <!-- 14 FAQ --> 698 <section class="sec bg-white faq"> 699 <div class="wrap"> 700 <div class="head" data-reveal> 701 <div class="kicker">Good to know</div> 702 <h2 class="h2">Frequently asked questions about hurricane canopy removal</h2> 703 </div> 704 <div class="faqlist" id="clb-faq"> 705 <div class="faqitem"> 706 <button class="faqq"><span>When should I book hurricane boat lift cover removal?</span><i class="ti ti-chevron-down"></i></button> 707 <div class="faqa"><div class="inner">Book before a named storm whenever possible. Removal requests spike once a hurricane is in the forecast, and reserving early helps secure your spot before availability becomes limited.</div></div> 708 </div> 709 <div class="faqitem"> 710 <button class="faqq"><span>Does early booking help avoid emergency surcharges?</span><i class="ti ti-chevron-down"></i></button> 711 <div class="faqa"><div class="inner">Yes. Last-minute removals may incur additional fees, while booking early locks in standard pricing before storm-related demand increases.</div></div> 712 </div> 713 <div class="faqitem"> 714 <button class="faqq"><span>Will Coastline reinstall my canopy after removal?</span><i class="ti ti-chevron-down"></i></button> 715 <div class="faqa"><div class="inner">Yes. After you sign up, a Coastline team member will contact you to schedule removal and discuss when you would like your canopy reinstalled.</div></div> 716 </div> 717 <div class="faqitem"> 718 <button class="faqq"><span>What happens if I'm not home when the work is completed?</span><i class="ti ti-chevron-down"></i></button> 719 <div class="faqa"><div class="inner">No worries. Coastline can complete the job and invoice you after the work is done â most removals happen while owners are out of town.</div></div> 720 </div> 721 <div class="faqitem"> 722 <button class="faqq"><span>Does canopy removal affect my insurance claim?</span><i class="ti ti-chevron-down"></i></button> 723 <div class="faqa"><div class="inner">Canopy removal is part of a responsible hurricane plan â the kind insurers expect to see followed. For the specific requirements on your policy, check with your marine insurance agent.</div></div> 724 </div> 725 </div> 726 </div> 727 </section> 728 729 <!-- FOOTER --> 730 <footer class="ftr"> 731 <div class="wrap"> 732 <div> 733 <div class="meta">Custom boat lift canopies, built and serviced in Southwest Florida since 2010.<br>Serving Charlotte, Lee, and Collier Counties.</div> 734 <div class="fsocials"> 735 <a href="https://www.facebook.com/CoastLineBoatLiftCovers" target="_blank" rel="noopener" aria-label="Facebook"><i class="ti ti-brand-facebook"></i></a> 736 <a href="https://www.youtube.com/@coastlineboatliftcovers" target="_blank" rel="noopener" aria-label="YouTube"><i class="ti ti-brand-youtube"></i></a> 737 <a href="https://maps.app.goo.gl/hk2o1Jbv8DvXDLar9" target="_blank" rel="noopener" aria-label="Google"><i class="ti ti-brand-google"></i></a> 738 <a href="https://www.yelp.com/biz/coastline-boatlift-covers-fort-myers" target="_blank" rel="noopener" aria-label="Yelp"><i class="ti ti-brand-yelp"></i></a> 739 </div> 740 </div> 741 <div class="fcontact">
742 <span class="lbl">Call us</span> 743 <a href="tel:2399943047">(239) 994-3047</a> 744 <div style="margin-top:18px"><span class="lbl">Visit</span> 745 <a href="https://maps.app.goo.gl/hk2o1Jbv8DvXDLar9" target="_blank" rel="noopener">6201 Arc Way<br>Fort Myers, FL 33966</a> 746 </div> 747 </div> 748 </div> 749 </footer> 750</div>
751<script> 752(function(){ 753 var root = document.getElementById('clb-hrp'); 754 if(!root) return; 755 var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 756 757 /* ---- Scroll reveal (scroll-position based; IO can stall in embedded iframes) ---- */ 758 var revealEls = Array.prototype.slice.call(root.querySelectorAll('[data-reveal]')); 759 if(reduce){ 760 revealEls.forEach(function(el){ el.classList.add('in','done'); }); 761 } else { 762 var check = function(){ 763 var trig = window.innerHeight * 0.92, newly = []; 764 revealEls.forEach(function(el){ 765 if(el.classList.contains('in')) return; 766 if(el.getBoundingClientRect().top < trig) newly.push(el); 767 }); 768 if(!newly.length) return; 769 var byParent = new Map(); 770 newly.forEach(function(el){ var p=el.parentNode; if(!byParent.has(p)) byParent.set(p,[]); byParent.get(p).push(el); }); 771 byParent.forEach(function(els){ 772 els.forEach(function(el,i){ 773 setTimeout(function(){ el.classList.add('in'); setTimeout(function(){ el.classList.add('done'); }, 700); }, i*80); 774 }); 775 }); 776 }; 777 var ticking=false, onScroll=function(){ if(ticking) return; ticking=true; requestAnimationFrame(function(){ check(); ticking=false; }); }; 778 window.addEventListener('scroll', onScroll, {passive:true}); 779 window.addEventListener('resize', onScroll, {passive:true}); 780 window.addEventListener('load', check); 781 check(); setTimeout(check, 300); 782 } 783 784 /* ---- Sticky bar: slide in after the top bar has scrolled out of view ---- */ 785 var sticky = document.getElementById('clbSticky'); 786 if(sticky){ 787 var syncSticky = function(){ sticky.classList.toggle('show', window.scrollY > 140); }; 788 window.addEventListener('scroll', syncSticky, {passive:true}); 789 syncSticky(); 790 } 791 792 /* ---- Live tracker fallback (iframe) ---- */ 793 var nhc = document.getElementById('clbNHC'), nhcfb = document.getElementById('clbNHCfb'); 794 if(nhc && nhcfb){ 795 nhcfb.style.display = 'none'; // assume the embed works; only show on failure 796 var nhcLoaded = false; 797 nhc.addEventListener('load', function(){ nhcLoaded = true; nhcfb.style.display = 'none'; }); 798 nhc.addEventListener('error', function(){ nhcfb.style.display = 'flex'; }); 799 setTimeout(function(){ if(!nhcLoaded){ nhcfb.style.display = 'flex'; } }, 6000); 800 } 801 802 /* ---- FAQ accordion ---- */ 803 var faq = document.getElementById('clb-faq'); 804 if(faq){ 805 faq.querySelectorAll('.faqitem').forEach(function(item){ 806 var btn = item.querySelector('.faqq'), ans = item.querySelector('.faqa'); 807 btn.addEventListener('click', function(){ 808 var isOpen = item.classList.contains('open'); 809 faq.querySelectorAll('.faqitem.open').forEach(function(o){ o.classList.remove('open'); o.querySelector('.faqa').style.height='0px'; }); 810 if(!isOpen){ item.classList.add('open'); ans.style.height = ans.firstElementChild.offsetHeight + 'px'; } 811 }); 812 }); 813 } 814 815 /* ---- Quiz ---- */ 816 var quizData = [ 817 { q:'Do you have a hurricane plan documented for your boat?', 818 a:[ {t:'No, nothing written down', s:2}, {t:'Sort of, but not documented', s:1}, {t:'Yes, on file with my insurer', s:0} ] }, 819 { q:'When a storm is named, who removes your lift canopy?', 820 a:[ {t:'No plan for that yet', s:2}, {t:'I do it myself, if I am in town', s:1}, {t:'A service handles it for me', s:0} ] }, 821 { q:'How confident are you a claim would be paid after a storm?', 822 a:[ {t:'Not confident at all', s:2}, {t:'Somewhat, I think so', s:1}, {t:'Confident, I follow my policy', s:0} ] } 823 ]; 824 var results = { 825 high:{ cls:'r-high', icon:'ti-alert-circle', badge:'Exposed', t:'There are real gaps to close before the next system.', 826 b:'Without a documented plan and a removal arrangement, a storm could put both your canopy and a future claim at risk. The annual program covers both in one step.' }, 827 mid:{ cls:'r-mid', icon:'ti-alert-triangle', badge:'Partly ready', t:'You are thinking ahead, but a few pieces are loose.', 828 b:'You have some habits in place, yet they depend on you being available. Letting us handle removal removes the weak links.' }, 829 low:{ cls:'r-low', icon:'ti-shield-check', badge:'Well prepared', t:'You are in good shape for the season.', 830 b:'You are doing the right things. If you would rather not handle removal yourself every time, the annual program keeps the same outcome without the effort.' } 831 }; 832 var stage = document.getElementById('quizStage'), fill = document.getElementById('quizFill'), step=0, score=0; 833 function renderQ(){ 834 var item = quizData[step]; 835 fill.style.width = (step / quizData.length * 100) + '%'; 836 var h = '<div class="qnum">Question '+(step+1)+' of '+quizData.length+'</div><div class="qtext">'+item.q+'</div><div class="answers">'; 837 item.a.forEach(function(a){ h += '<button class="ans" data-score="'+a.s+'">'+a.t+'<i class="ti ti-arrow-right"></i></button>'; }); 838 h += '</div>'; 839 stage.innerHTML = h; 840 stage.querySelectorAll('.ans').forEach(function(b){ 841 b.addEventListener('click', function(){ score += parseInt(b.getAttribute('data-score'),10); step++; (step<quizData.length)?renderQ():renderResult(); }); 842 }); 843 } 844 function renderResult(){ 845 fill.style.width = '100%'; 846 var r = score>=4 ? results.high : (score>=2 ? results.mid : results.low); 847 stage.innerHTML = '<div class="result '+r.cls+'"><span class="badge"><i class="ti '+r.icon+'"></i>'+r.badge+'</span>'+ 848 '<div class="rt">'+r.t+'</div><div class="rb">'+r.b+'</div>'+ 849 '<a class="btn btn-primary" href="#form">Reserve my spot<i class="ti ti-arrow-right"></i></a>'+ 850 '<button class="restart" type="button">Start over</button></div>'; 851 stage.querySelector('.restart').addEventListener('click', function(){ step=0; score=0; renderQ(); }); 852 } 853 if(stage) renderQ(); 854
855 /* ---- Reserve form: posts silently into the Coastline Canopy Hurricane Removal Request form ---- */ 856 var GFORM = { 857 configured: true, 858 action: 'https://docs.google.com/forms/d/e/1FAIpQLSciJaChYwJqb2v2AH4CaqOkrnMQozq3nrvn7yA_Oisuy1oWqg/formResponse', 859 viewform: 'https://docs.google.com/forms/d/e/1FAIpQLSciJaChYwJqb2v2AH4CaqOkrnMQozq3nrvn7yA_Oisuy1oWqg/viewform', 860 entries: { 861 name:'entry.1963190921', email:'entry.573398266', phone:'entry.596950075', 862 address:'entry.1080847523', window:'entry.1853128253', 863 bungee:'entry.850179927', auto:'entry.1437107518' 864 } 865 }; 866 var form = document.getElementById('clbForm'); 867 if(form){ 868 var note = document.getElementById('clbFormNote'); 869 var clearBad = function(el){ var f = el.closest('.field, .fset'); if(f) f.classList.remove('bad'); }; 870 form.querySelectorAll('input, select, textarea').forEach(function(el){ 871 el.addEventListener('input', function(){ clearBad(el); }); 872 el.addEventListener('change', function(){ clearBad(el); }); 873 }); 874 function val(n){ var el = form.elements[n]; if(!el) return ''; if(el.length && el[0] && el[0].type==='radio'){ var c=form.querySelector('[name="'+n+'"]:checked'); return c?c.value:''; } return (el.value||'').trim(); } 875 function validate(){ 876 var ok = true; 877 var checks = [ 878 ['#cf-name', val('name').length >= 2], 879 ['#cf-email', /^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(val('email'))], 880 ['#cf-phone', val('phone').replace(/[^\d]/g,'').length >= 7], 881 ['#cf-address', val('address').length >= 3], 882 ['#cf-window', val('window') !== ''] 883 ]; 884 checks.forEach(function(c){ var f = form.querySelector(c[0]).closest('.field'); if(c[1]) f.classList.remove('bad'); else { f.classList.add('bad'); ok=false; } }); 885 [['fs-bungee','bungee'],['fs-auto','auto']].forEach(function(p){ 886 var fs = document.getElementById(p[0]); if(val(p[1])!==''){ fs.classList.remove('bad'); } else { fs.classList.add('bad'); ok=false; } 887 }); 888 return ok; 889 } 890 function postToGoogle(){ 891 var hidden = document.createElement('form'); 892 hidden.action = GFORM.action; hidden.method = 'POST'; hidden.target = 'clb-gform-sink'; hidden.style.display = 'none'; 893 Object.keys(GFORM.entries).forEach(function(k){ 894 var i = document.createElement('input'); i.type='hidden'; i.name = GFORM.entries[k]; i.value = val(k); hidden.appendChild(i); 895 }); 896 document.body.appendChild(hidden); hidden.submit(); setTimeout(function(){ hidden.remove(); }, 1200); 897 } 898 function showSuccess(){ 899 var formSection = document.getElementById('form'); 900 document.getElementById('clbFormHead').style.display = 'none'; 901 form.style.display = 'none'; 902 var success = document.getElementById('clbSuccess'); 903 success.classList.add('show'); 904 /* Direct page (served as index.html, no iframe): scroll the window to the top of the 905 form section so the confirmation is front and centre. Done after layout settles. */ 906 requestAnimationFrame(function(){ 907 setTimeout(function(){ 908 var y = formSection.getBoundingClientRect().top + window.pageYOffset - 80; 909 try{ window.scrollTo({ top:y, behavior:'smooth' }); }catch(e){ window.scrollTo(0, y); } 910 }, 50); 911 }); 912 } 913 form.addEventListener('submit', function(e){ 914 e.preventDefault(); 915 if(!validate()){ 916 var first = form.querySelector('.field.bad input, .field.bad select, .fset.bad input'); 917 if(first) first.focus(); 918 return; 919 } 920 if(GFORM.configured){ 921 postToGoogle(); 922 showSuccess(); 923 } else { 924 // Not yet wired to the live form â open it so the request still goes through. 925 window.open(GFORM.viewform, '_blank', 'noopener'); 926 if(note){ note.textContent = "We've opened the reservation form in a new tab â finish there and you're all set."; note.style.color = 'var(--blue)'; } 927 } 928 }); 929 } 930 931 /* ---- Auto-resize the parent iframe (same-origin: works with NO script in WordPress) ---- */ 932 function postHeight(){ 933 var h = document.documentElement.scrollHeight; 934 /* Same-origin direct resize: find our own <iframe> in the parent and set its height. */ 935 try{ 936 if(window.frameElement){ window.frameElement.style.height = h + 'px'; } 937 }catch(e){} 938 /* Fallback for cross-origin parents that DO have a listener. */ 939 if(window.parent && window.parent !== window){
940 try{ window.parent.postMessage({ clbHeight: h }, '*'); }catch(e){} 941 } 942 } 943 window.addEventListener('load', postHeight); 944 window.addEventListener('resize', postHeight); 945})(); 946</script>
946 947</body> 948</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.