:root { color-scheme: light; --navy: #080773; --purple: #6100b9; --aqua: #00cee5; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 20px; }
body { margin: 0; color: var(--navy); background: #fff; font-family: Georgia, 'Times New Roman', serif; }
a { color: inherit; }
.page { width: 100%; margin: 0; overflow: hidden; background: #fff; }
.shell { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 50; top: 10px; left: 10px; padding: 12px 18px; border-radius: 5px; background: #fff; color: var(--navy); transform: translateY(-180%); font: 600 16px Arial,sans-serif; }
.skip-link:focus { transform: translateY(0); }
[hidden] { display:none !important; }
.design-preview-note { padding:6px 20px; background:#ede9f7; color:#494360; font:12px/1.5 Arial,sans-serif; text-align:center; }
.hero { position:relative; width:100%; height:clamp(560px,43vw,650px); overflow:hidden; background:linear-gradient(120deg,#a9add6,#8887c3 50%,#4c47a9); }
.hero-scene { position:absolute; top:0; right:0; display:block; width:100%; height:100%; object-fit:cover; object-position:right center; }
.hero::before { content:''; position:absolute; z-index:1; left:0; bottom:56px; width:min(100%,max(660px,calc((100% - 1370px)/2 + 690px))); height:400px; pointer-events:none; background:linear-gradient(90deg,#f5fbfff5 0%,#f5fbffe3 58%,#f5fbff00 100%); -webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 90%,transparent); mask-image:linear-gradient(180deg,transparent,#000 22%,#000 90%,transparent); }
.hero::after { content:''; position:absolute; z-index:0; top:0; right:0; width:100%; height:190px; pointer-events:none; background:linear-gradient(180deg,#20155c4a,transparent); }
.hero-logo { position:absolute; z-index:1; top:20px; left:max(4.3%,calc((100% - 1370px)/2)); width:clamp(220px,22vw,280px); height:auto; overflow:visible; }
.hero-contacts { position:absolute; z-index:2; top:25px; right:max(4%,calc((100% - 1370px)/2)); display:grid; gap:8px; padding:7px 12px; border-radius:9px; background:transparent; color:#fff; }
.hero-contacts a { display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; text-shadow:0 1px 3px #09083780; }
.hero-contacts a:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.hero-phone { font:700 clamp(28px,2.8vw,39px)/1.15 'Arial Narrow',Arial,sans-serif; letter-spacing:.01em; }
.hero-email { font:18px/1.2 'Arial Narrow',Arial,sans-serif; }
.contact-icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border:1px solid #ddffff; border-radius:50%; }
.contact-icon svg { width:21px; height:21px; fill:#fff; }
.phone-icon { background:linear-gradient(145deg,#00dfef,#088fae); }
.email-icon { background:linear-gradient(145deg,#9822e9,#6209ab); }
.hero-copy { position:absolute; z-index:1; left:max(4.3%,calc((100% - 1370px)/2)); bottom:87px; width:500px; max-width:45%; }
.hero-copy::before { content:none; }
.flood-label { width:max-content; max-width:100%; margin:0 0 11px; padding:0 0 8px; border-bottom:2px solid #1bc6dc; color:#7907a8; font:14px/1.2 Arial,sans-serif; letter-spacing:.36em; }
.hero-copy h1 { margin:0 0 12px; color:#080773; font:700 clamp(48px,4.7vw,66px)/.98 'Times New Roman',Georgia,serif; letter-spacing:-.025em; }
.hero-description { margin:0; color:#080773; font:clamp(21px,2.15vw,29px)/1.13 'Times New Roman',Georgia,serif; }
.hero-waves { position:absolute; z-index:3; bottom:0; left:0; display:block; width:100%; height:81px; }
.coverage { padding: 0 0 26px; background: linear-gradient(130deg, #fff 36%, #fafcff 82%, #e3fcff); }
.coverage h2 { display: flex; align-items: center; gap: 20px; margin: 0 0 18px; min-height: 51px; color: var(--purple); font-family: 'Times New Roman',serif; font-size: 48px; font-weight: 700; line-height: 1.05; text-align: center; white-space: nowrap; }
.coverage h2::before, .coverage h2::after { content: ''; height: 2px; flex: 1; min-width: 20px; background: #9624f8; }
.coverage-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.coverage-card { position: relative; display: flex; flex-direction: column; align-items: center; height: 266px; padding: 18px 8px 26px; overflow: hidden; border: 1px solid #d8f4ff; border-radius: 18px; color: var(--navy); background: linear-gradient(145deg, #fff, #fefeff); box-shadow: 0 1px 13px #27c6ff31, 0 4px 14px #6685e314; text-decoration: none; transition: box-shadow .18s ease, border-color .18s ease; }
.coverage-card:hover, .coverage-card:focus-visible { border-color: #6844ee; outline: none; box-shadow: 0 1px 13px #8300eb35, 0 4px 14px #36cddd45; }
.coverage-icon { display: block; flex: 0 0 auto; width: 170px; height: 89px; }
.coverage-card h3 { z-index: 1; margin: -1px 0 5px; font-family: 'Times New Roman',serif; font-size: 35px; line-height: 1; white-space: nowrap; }
.aqua-rule { z-index: 1; width: 51px; height: 4px; background: var(--aqua); }
.coverage-card p { z-index: 1; margin: 9px 0 0; font-family: 'Times New Roman',serif; font-size: 23px; line-height: 1.01; text-align: center; }
.card-waves { position: absolute; bottom: 0; left: 0; width: 100%; height: 57px; }
.quote-section { padding: 0; background: linear-gradient(110deg,#acf0ff,#c0b0ff); }
.quote-inner { display: grid; width:100%; margin:0; grid-template-columns: 60.6% 39.4%; align-items: stretch; min-height: 381px; }
.preparation { position: relative; min-width: 0; overflow: hidden; }
.preparation-scene { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.preparation-copy { position:relative; z-index:1; margin:28px 0 0 clamp(28px,8vw,150px); width:max-content; max-width:calc(100% - 56px); color:var(--navy); }
.preparation-copy h2 { margin:0; font:700 clamp(38px,3.5vw,56px)/1.02 'Times New Roman',Georgia,serif; letter-spacing:-.02em; text-shadow:0 1px 3px #ffffffb3; }
.preparation-copy .aqua-rule { display:block; width:75px; margin:14px 0; }
.preparation-copy p { margin:0; font:clamp(21px,1.8vw,28px)/1.13 'Times New Roman',Georgia,serif; text-shadow:0 1px 3px #ffffffb3; }
.states-badge { position:absolute; z-index:1; left:clamp(28px,8vw,150px); bottom:26px; display:block; width:clamp(310px,38vw,560px); max-width:calc(100% - 56px); height:auto; }
.form-column { display: flex; align-items: center; min-width:0; padding: 24px 24px 24px 18px; }
.quote-card { width: 100%; padding: 18px 24px 20px; border-radius: 16px; background: #fff; box-shadow: 0 3px 20px #ffffff42; }
.quote-card h2 { margin: 0 0 15px; color: var(--purple); font-family: 'Times New Roman',serif; font-size: 33px; font-weight: 700; line-height: 1.1; text-align: center; white-space: nowrap; }
form { display: flex; flex-direction: column; gap: 9px; scroll-margin-top: 30px; }
.field { position: relative; flex: 1; min-width: 0; }
.field > svg { position: absolute; z-index: 1; left: 12px; top: 13px; width: 17px; height: 17px; fill: #7e8fb0; pointer-events: none; }
.field input, .field select { display: block; width: 100%; min-width: 0; height: 45px; padding: 10px 9px 10px 45px; border: 1px solid #d2dcf0; border-radius: 5px; outline: none; color: #242256; background: #fff; font: 16px/1.2 Arial,Helvetica,sans-serif; box-shadow: 0 1px 2px #aec4e20a; }
.field input::placeholder { color: #909fca; opacity: 1; }
.field select { padding-right: 24px; appearance: none; }
.field select:has(option[value='']:checked) { color: #909fca; }
.field input:focus, .field select:focus { border-color: #6500d9; box-shadow: 0 0 0 2px #7400dd20; }
.select-field::after { content: ''; position: absolute; right: 12px; top: 16px; width: 8px; height: 8px; border: solid #7e8fb0; border-width: 0 2px 2px 0; transform: rotate(45deg); pointer-events: none; }
.field-row { display: flex; gap: 11px; }
.field-row .field { width: calc(50% - 5.5px); }
button[type='submit'] { display: block; width: 100%; min-height: 48px; margin-top: 3px; padding: 7px 4px; border: 0; border-radius: 7px; color: #fff; background: linear-gradient(180deg,#9525ff 0%,#6800dd 43%,#4900ad 100%); box-shadow: inset 0 1px 0 #bf70ff; font: 20px/1.2 Arial,Helvetica,sans-serif; cursor: pointer; }
button[type='submit']:hover { background: linear-gradient(180deg,#a03cff,#5d00c9,#40008f); }
button[type='submit']:focus-visible { outline: 3px solid #02cce8; outline-offset: 3px; }
button[type='submit']:disabled { cursor: wait; opacity: .75; }
.form-status { margin: 5px 0 0; font: 14px/1.4 Arial,Helvetica,sans-serif; color: #332e65; }
.form-status.error { color: #a12342; }
.form-status a { font-weight: 700; text-decoration: underline; }
.honeypot, .svg-definitions { position: absolute; width: 0; height: 0; overflow: hidden; opacity: 0; pointer-events: none; }
.noscript-note { margin: 4px 0 0; font: 14px/1.4 Arial,sans-serif; }
.footer { position: relative; isolation: isolate; min-height: 129px; padding: 2px 25px 4px; border-top: 4px solid #13d6f2; overflow: hidden; color: #fff; background-color:#0024bb; background-image:linear-gradient(#00197959,#00197959),url('footer-water-palms.png'); background-position:center; background-size:cover; background-repeat:no-repeat; text-align: center; text-shadow:0 1px 2px #00116e; }
.company-name { margin: 0; font-family: 'Times New Roman',serif; font-size: clamp(28px,3vw,45px); line-height: 1; font-weight: 700; }
.website { display: flex; justify-content: center; align-items: center; gap: 18px; margin: 2px 0 4px; font-family: 'Times New Roman',serif; font-size: clamp(22px,1.5vw,24px); line-height: 1.1; letter-spacing: 1px; }
.website::before, .website::after { content: ''; width: 125px; height: 2px; background: #00d7f0; }
.website a { text-decoration: none; }
.website a:hover { text-decoration: underline; }
.website a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.disclaimer { max-width: 1520px; margin: 0 auto; font: 700 clamp(15px,.9vw,17px)/1.2 'Arial Narrow',Arial,Helvetica,sans-serif; color: #fff; }
.disclaimer strong { font-weight: 700; }
@media (max-width: 1150px) { .shell { width: calc(100% - 48px); } }
@media (min-width: 851px) and (max-width: 1150px) {
  .coverage h2 { font-size: clamp(34px,4.69vw,48px); gap: 1.95vw; }
  .coverage-card h3 { font-size: 3.42vw; }
  .coverage-card p { font-size: 2.24vw; }
  .coverage-icon { width: 16.6vw; height: 8.69vw; }
  .quote-card { padding-inline: 1.8vw; }
  .quote-card h2 { font-size: clamp(22px,2.6vw,30px); }
  .field-row input, .field-row select { padding-left: 35px; }
  .field-row .field > svg { left: 10px; }
}
@media (max-width: 850px) {
  .coverage { padding: 4px 0 20px; }
  .coverage h2 { margin: 0 0 14px; font-size: clamp(26px,4.7vw,40px); gap: 14px; white-space: normal; }
  .coverage h2::before, .coverage h2::after { min-width: 15px; }
  .coverage-grid { gap: 12px; }
  .coverage-card { height: 230px; padding: 11px 5px 20px; }
  .coverage-card h3 { font-size: clamp(23px,3.4vw,30px); }
  .coverage-card p { font-size: clamp(16px,2.4vw,20px); line-height: 1.08; }
  .coverage-icon { width: 142px; height: 75px; }
  .quote-section { padding: 0; }
  .quote-inner { width: 100%; grid-template-columns: 1fr; }
  .preparation { aspect-ratio: 621 / 381; }
  .preparation-copy { margin:28px 0 0 14.5%; max-width:80%; }
  .preparation-copy h2 { font-size:clamp(31px,5.4vw,48px); }
  .preparation-copy p { font-size:clamp(18px,3.6vw,25px); }
  .states-badge { left:18.5%; bottom:26px; width:75%; max-width:75%; }
  .form-column { padding: 20px; background: linear-gradient(130deg,#90eeff,#d2baff); justify-content: center; }
  .quote-card { max-width: 480px; padding: 18px 24px 20px; }
  .quote-card h2 { font-size: 33px; margin-bottom: 15px; }
  form { gap: 9px; }
  .field input, .field select { height: 44px; font-size: 16px; }
  .field > svg { top: 13px; }
  .select-field::after { top: 16px; }
  button[type='submit'] { min-height: 48px; margin-top: 3px; }
  .footer { padding: 14px 18px 18px; }
  .disclaimer { font-size: 13px; line-height: 1.4; }
}
@media (max-width: 560px) {
  .coverage { padding: 2px 0 20px; }
  .coverage h2 { margin-bottom: 15px; font-size: 30px; line-height: 1.02; }
  .coverage h2::before, .coverage h2::after { min-width: 12px; }
  .coverage-grid { grid-template-columns: 1fr; gap: 12px; }
  .coverage-card { height: 233px; padding-top: 9px; }
  .coverage-icon { width: 170px; height: 89px; }
  .coverage-card h3 { font-size: 34px; }
  .coverage-card p { font-size: 22px; line-height: 1.02; }
  .card-waves { height: 52px; }
  .preparation-copy { margin-top:clamp(12px,3vw,18px); }
  .preparation-copy h2 { font-size:clamp(26px,5.8vw,32px); }
  .preparation-copy .aqua-rule { width:45px; margin:7px 0; }
  .preparation-copy p { font-size:clamp(16px,3.6vw,20px); }
  .states-badge { bottom:12px; }
  .form-column { padding: 16px 14px 22px; }
  .quote-card { padding-inline: 18px; }
  .quote-card h2 { font-size: clamp(23px,6.5vw,31px); }
  .field-row { gap: 8px; }
  .field-row input, .field-row select { padding-left: 35px; }
  .field-row .field > svg { left: 10px; }
  .company-name { font-size: 22px; }
  .website { font-size: 18px; gap: 10px; }
  .website::before, .website::after { width: 35px; }
}
@media (max-width: 760px) { .shell { width: calc(100% - 32px); } .quote-inner { width: 100%; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

.analytics-settings { margin-top:13px; padding:0; border:0; background:none; color:#fff; font-size:11px; text-decoration:underline; cursor:pointer; }
.analytics-consent { position:fixed; z-index:40; right:20px; bottom:20px; left:20px; display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:950px; margin:auto; padding:19px 22px; border:1px solid #dadce7; border-radius:10px; background:#fff; box-shadow:0 7px 35px #11104f26; }
.analytics-consent h2 { margin:0 0 4px; font:700 15px/1.4 Arial,sans-serif; letter-spacing:0; }
.analytics-consent p { max-width:490px; margin:0; color:var(--ink); font-size:12px; line-height:1.6; }
.consent-actions { display:flex; gap:8px; flex-shrink:0; }
.consent-actions .button { min-height:40px; padding:8px 12px; font-size:12px; }

.analytics-settings { font-family:Arial,sans-serif; color:#fff; }
.analytics-consent h2 { color:#11104f; }
.analytics-consent p { color:#424b65; font-family:Arial,sans-serif; }
.consent-actions .button { padding:10px 14px; min-height:40px; border:1px solid #cfd7e5; border-radius:5px; font:700 12px/1.3 Arial,sans-serif; cursor:pointer; }
.consent-actions .primary { border-color:#6100b9; background:#6100b9; color:#fff; }
.consent-actions .secondary { background:#fff; color:#11104f; }
@media (max-width:850px) { .hero { height:540px; } .hero::before { width:100%; height:320px; bottom:52px; } .hero-logo { width:215px; left:24px; } .hero-contacts { right:24px; top:23px; gap:7px; } .hero-phone { font-size:26px; } .hero-email { font-size:14px; } .contact-icon { width:32px; height:32px; flex-basis:32px; } .contact-icon svg { width:18px; height:18px; } .hero-contacts a { gap:9px; } .hero-copy { left:28px; width:390px; max-width:49%; bottom:82px; } .hero-copy h1 { font-size:48px; } .hero-description { font-size:23px; } .flood-label { font-size:12px; } }
@media (max-width:600px) { .hero { height:515px; } .hero-scene { height:100%; width:100%; object-position:right center; } .hero-logo { top:13px; left:14px; width:180px; } .hero-contacts { top:22px; right:13px; padding:5px 7px; gap:8px; } .hero-contacts a { gap:7px; } .hero-phone { font-size:23px; } .hero-email { font-size:12px; } .contact-icon { width:28px; height:28px; flex-basis:28px; } .contact-icon svg { width:16px; height:16px; } .hero-copy { left:22px; bottom:72px; width:285px; max-width:60%; } .hero-copy h1 { font-size:41px; } .hero-description { font-size:21px; } .flood-label { font-size:10px; letter-spacing:.27em; padding-bottom:6px; margin-bottom:10px; } .desktop-break { display:none; } .hero-waves { height:59px; } .analytics-consent { left:12px; right:12px; bottom:12px; align-items:stretch; flex-direction:column; gap:12px; padding:17px; } }
@media (max-width:430px) { .hero-logo { top:11px; left:12px; width:150px; } .hero-contacts { top:21px; right:10px; padding:4px 5px; gap:9px; } .hero-contacts a { gap:5px; } .hero-phone { font-size:20px; } .hero-email { font-size:10px; } .contact-icon { width:24px; height:24px; flex-basis:24px; } .contact-icon svg { width:14px; height:14px; } .hero-copy { left:19px; max-width:65%; } .hero-copy h1 { font-size:38px; } .hero-description { font-size:20px; } }
@media (max-width:360px) { .hero-logo { width:125px; } .hero-phone { font-size:18px; } .hero-email { font-size:9px; } .hero-copy h1 { font-size:34px; } .hero-description { font-size:18px; } }
