.weather-page{padding-top:34px;padding-bottom:50px}.weather-page>h1{font-size:clamp(34px,3.5vw,51px);letter-spacing:-1.4px;line-height:1.12;color:var(--blue);margin:12px 0 17px}.weather-intro{font-size:17px;line-height:1.7;color:#627284;max-width:1000px;margin:0 0 25px}.weather-selector{display:flex;align-items:center;gap:19px;padding:18px 21px;background:#f1f5fa;border-top:3px solid var(--blue);margin:26px 0 0}.weather-selector>label{font-size:10px;line-height:1.4;letter-spacing:.7px;font-weight:bold;color:#46617c}.weather-selector select{font:700 15px Arial,Helvetica,sans-serif;color:var(--blue);padding:11px 35px 11px 13px;background:white;border:1px solid #bfccda;border-radius:3px;min-width:225px}.weather-selector>a{margin-left:auto;color:var(--blue);font-size:12px;font-weight:bold}.weather-city-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:27px 0 38px}.weather-city-grid>a{position:relative;padding:24px 20px;background:#f6f8fb;border:1px solid #dce4ed;border-bottom:3px solid #d2ddeb;border-radius:3px;color:var(--blue)}.weather-city-grid>a:hover{background:#edf3fc;border-bottom-color:var(--red);text-decoration:none}.weather-city-grid strong{display:block;font-size:21px;letter-spacing:-.4px;line-height:1.25;padding-right:14px}.weather-city-grid span{display:block;margin-top:9px;font-size:12px;color:#62778d}.weather-city-grid b{position:absolute;right:18px;top:25px;color:var(--red)}.weather-method{border-top:2px solid var(--blue);padding-top:18px;color:#627284;font-size:15px;line-height:1.8}.weather-method h2{color:var(--blue);font-size:26px;letter-spacing:-.6px;line-height:1.25}.weather-city-links{display:flex;flex-wrap:wrap;gap:7px 17px;padding:17px 0 22px;margin-bottom:8px;border-bottom:1px solid #dce4ed}.weather-city-links a{font-size:11px;color:#5f7489}.weather-city-links a[aria-current=page]{color:var(--blue);font-weight:bold;text-decoration:underline;text-underline-offset:4px}.weather-current{background:linear-gradient(115deg,#012d7d,#073b83);color:white;padding:25px 29px;border-radius:4px;min-height:180px;margin-bottom:34px}.current-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.current-header .eyebrow{color:#c5dcff;font-size:11px}.weather-badge{font-size:9px;letter-spacing:.6px;color:#c4d9f5}.current-reading{display:flex;align-items:baseline;flex-wrap:wrap;gap:22px;margin-top:17px}.current-temperature{font-size:68px;font-weight:800;letter-spacing:-3px;line-height:1.1}.temperature-missing{font-size:29px;line-height:1.3;letter-spacing:-.7px}.current-description{font-size:22px;line-height:1.35}.current-facts{font-size:13px;color:#dae7fa;margin:11px 0 18px}.weather-source{font-size:11px;line-height:1.6;color:#6a7d91;margin:0}.weather-current .weather-source{color:#d1e1f7;margin-top:16px}.weather-note{font-size:12px;line-height:1.7;color:#697e93;margin:10px 0 17px}.weather-current .weather-note{font-size:10px;color:#bed3ef;margin:7px 0 0}.weather-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-bottom:2px solid var(--blue);padding-bottom:13px;margin-bottom:13px}.weather-section-title h2{font-size:29px;line-height:1.2;color:var(--blue);letter-spacing:-.7px;margin:6px 0 0}.weather-section-title>a{font-size:11px;font-weight:bold;color:var(--blue)}.weather-section-title>.weather-source{max-width:470px;text-align:right}.weather-forecast-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:35px}.forecast-day{position:relative;border:1px solid #d8e2ed;border-top:3px solid #cad7e9;border-radius:3px;background:#fff;padding:16px 14px;min-width:0}.forecast-day:first-child{border-top-color:var(--red);background:#fafcff}.forecast-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:7px}.forecast-day-heading h3{font-size:19px;line-height:1.2;margin:0;color:var(--blue)}.forecast-day-heading>span{font-size:10px;color:#6b7f93}.forecast-label{display:block;font-size:8px;color:var(--red);font-weight:800;letter-spacing:.8px;margin-top:6px;min-height:12px}.forecast-symbol{display:block;font-size:41px;line-height:1.2;color:#335e98;margin:19px 0 12px}.forecast-symbol.sun,.forecast-symbol.partly{color:#b87a06}.forecast-symbol.storm{color:#87620c}.forecast-temperatures{display:flex;align-items:baseline;gap:13px}.forecast-temperatures>strong{font-size:32px;line-height:1;color:#152f50;letter-spacing:-1px}.forecast-temperatures>span{font-size:24px;line-height:1;color:#75899e;letter-spacing:-.8px}.temperature-key{font-size:8px;line-height:1.5;color:#74879a;margin:7px 0 14px}.forecast-summary{font-size:13px;font-weight:bold;line-height:1.5;color:#395671;min-height:40px;margin:0 0 13px}.forecast-detail{font-size:10px;color:#667d94;line-height:1.65;margin:7px 0}.forecast-more{margin-top:15px;border-top:1px solid #e1e7ef;padding-top:12px;font-size:11px}.forecast-more summary{cursor:pointer;color:var(--blue);font-weight:bold}.forecast-more p{font-size:11px;line-height:1.7;color:#5b7289}.weather-empty{font-size:15px;color:#647b92;padding:24px;background:#f4f7fb;grid-column:1/-1}.weather-alert-section{margin:34px 0;padding:23px 26px;background:#f5f8fc;border-left:3px solid #5378ab}.weather-alert-section .weather-section-title{border-bottom:1px solid #cfdaea}.weather-alert-section p{font-size:13px;line-height:1.8;color:#54708b}.official-alert{padding:17px 0;border-bottom:1px solid #cfdaea}.official-alert h3{font-size:17px;color:#9f1a2c;line-height:1.35;margin:0 0 12px}.official-alert p{white-space:pre-line}.official-alert small{font-size:11px}.weather-tides{padding-top:12px;margin-top:34px}.weather-next-tides{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:740px;margin:22px 0}.next-tide{padding:21px 24px;border:1px solid #d3dfed;background:#f5f8fc;border-radius:3px}.next-tide strong{display:block;font-size:29px;line-height:1.2;letter-spacing:-.7px;color:var(--blue);margin:10px 0 7px}.next-tide>span:last-child{font-size:12px;color:#627c95}.weather-tide-chart{max-width:1000px;margin:15px 0 12px}.weather-tide-chart svg{display:block;width:100%;height:auto;background:#fbfcfe;border:1px solid #e0e7f0;border-radius:3px}.tide-grid-line{stroke:#dce5f0;stroke-width:1}.tide-axis{font:11px Arial,Helvetica,sans-serif;fill:#6a7f94}.tide-high-point{fill:#012d7d}.tide-low-point{fill:#ce0119}.weather-table-scroll{overflow-x:auto;border:1px solid #dce4ed;border-radius:3px;margin-top:23px}.weather-tide-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.weather-tide-table caption{text-align:left;font-size:12px;color:#526c85;padding:13px 17px;background:#f5f8fc}.weather-tide-table th{text-align:left;background:#edf3fa;color:#2c5177;font-size:11px;padding:12px 17px}.weather-tide-table td{padding:12px 17px;border-top:1px solid #e2e9f1}.weather-tide-table tbody tr:nth-child(even){background:#fafcff}.weather-footnote{margin-top:30px;font-size:12px;line-height:1.85;color:#738599}.weather-footnote a{color:var(--blue);text-decoration:underline}
@media(max-width:1100px){.weather-city-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-forecast-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.forecast-day{padding:18px}.forecast-summary{min-height:0}.forecast-symbol{margin-top:15px}.forecast-detail{font-size:11px}}
@media(max-width:700px){.weather-page{padding-top:26px;padding-bottom:35px}.weather-page>h1{font-size:36px;line-height:1.1;letter-spacing:-1px;margin-top:13px}.weather-intro{font-size:15px;line-height:1.7}.weather-selector{padding:16px;flex-wrap:wrap;gap:10px}.weather-selector>label{width:100%;font-size:9px}.weather-selector select{width:100%;min-width:0;font-size:15px}.weather-selector>a{margin:4px 0 0;font-size:11px}.weather-city-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:22px}.weather-city-grid>a{padding:20px 15px}.weather-city-grid strong{font-size:19px}.weather-city-grid span{font-size:10px;line-height:1.5}.weather-city-grid b{right:12px;top:21px}.weather-city-links{gap:7px 13px;padding:15px 0 19px}.weather-city-links a{font-size:10px}.weather-current{padding:22px 21px;margin-bottom:28px}.weather-badge{font-size:8px;letter-spacing:0;text-align:right}.current-temperature{font-size:59px}.current-description{font-size:19px}.temperature-missing{font-size:25px}.current-reading{gap:10px 18px}.weather-section-title{display:block}.weather-section-title h2{font-size:26px;letter-spacing:-.6px}.weather-section-title>.weather-source{text-align:left;margin-top:12px;font-size:10px}.weather-section-title>a{display:inline-block;margin-top:11px}.weather-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.forecast-day{padding:15px 13px}.forecast-day-heading h3{font-size:19px}.forecast-day-heading>span{font-size:9px}.forecast-detail{font-size:10px}.forecast-temperatures{gap:10px}.weather-alert-section{padding:20px 18px}.weather-next-tides{gap:12px}.next-tide{padding:17px 15px}.next-tide strong{font-size:25px}.next-tide>span:last-child{font-size:10px}.weather-tide-table{font-size:12px}.weather-tide-table th,.weather-tide-table td{padding:11px 13px}.weather-note{font-size:11px}.tide-axis{font-size:10px}.weather-footnote{font-size:11px}}
/* Current observation: light, open panel with the newsroom palette. */
.weather-current{background:linear-gradient(115deg,#f8fbff,#eef5fc);color:#132e51;border:1px solid #d7e4f1;border-top:3px solid #7fa5ce;box-shadow:0 5px 18px rgba(23,58,99,.04);min-height:0;padding:24px 28px}.current-header .eyebrow{color:#355c84}.weather-badge{color:#657d94}.current-temperature{color:#012d7d}.current-description{color:#244b73}.current-facts{color:#4f6c87}.weather-current .weather-source{color:#466681}.weather-current .weather-note{color:#5c738a}.current-reading{margin-top:14px}.weather-current .weather-source{margin-top:12px}@media(max-width:700px){.weather-current{padding:20px}.weather-badge{max-width:110px}}
