/* Odyssey OceanMap v1.0.8 — translucent bottom forecast dock. */
.om-root,.om-root * { box-sizing: border-box; }
.om-root { --om-navy:#061c28;--om-ink:#eafaff;--om-muted:#94b5c4;--om-line:rgba(184,224,238,.22);--om-glass:rgba(4,23,34,.87);--om-accent:#49c8dc;position:relative;isolation:isolate;display:block;width:100vw!important;max-width:none!important;min-width:0;left:50%;transform:translateX(-50%);height:calc(100svh - 96px);min-height:640px;max-height:none;margin:0 auto!important;border:0;background:#0b2b3e;color:var(--om-ink);font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;overflow:hidden;font-size:14px;line-height:1.4;letter-spacing:0;box-shadow:0 10px 35px rgba(0,0,0,.14); }
.om-root p,.om-root h3,.om-root strong,.om-root small {margin:0;padding:0;color:inherit;}
.om-root button,.om-root input {font:inherit;}
.om-root button {cursor:pointer;color:var(--om-ink);border:0;transition:background .2s,border-color .2s,opacity .2s;}
.om-root button:focus-visible,.om-root input:focus-visible {outline:2px solid #67dce8;outline-offset:2px;}
.om-root .om-map {position:absolute;inset:0;background:radial-gradient(ellipse at 28% 55%,#1e738c,#12465f 40%,#0d314b 80%);z-index:0;}
.om-root .om-swell-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1;pointer-events:none;}
.om-root .om-swell-canvas[hidden]{display:none!important;}
.om-root .om-map.om-no-map:after {content:"MAP KEY REQUIRED";position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);color:#8bd1da;letter-spacing:.28em;font-size:clamp(15px,2vw,26px);font-weight:800;text-align:center;}
.om-root .maplibregl-control-container .maplibregl-ctrl-bottom-left,.om-root .maplibregl-control-container .maplibregl-ctrl-bottom-right{bottom:4px!important;}
.om-root .maplibregl-ctrl-attrib,.om-root .maplibregl-ctrl-attrib a{font:9px/1.35 system-ui,sans-serif!important;color:#254958!important;text-shadow:none!important;}
.om-root .maplibregl-ctrl-attrib{background:rgba(255,255,255,.76)!important;border-radius:6px!important;}
.om-root .om-header {position:absolute;top:0;left:0;right:0;z-index:6;min-height:72px;padding:11px clamp(16px,2vw,34px);display:flex;align-items:center;gap:clamp(16px,3vw,42px);background:linear-gradient(90deg,rgba(5,24,39,.96),rgba(4,26,39,.92));border-bottom:1px solid rgba(193,230,243,.16);backdrop-filter:blur(18px);}
.om-root .om-brand {display:flex;align-items:center;gap:11px;min-width:200px;flex-shrink:0;}
.om-root .om-logo{width:48px;height:48px;border:1.5px solid #6dd8e2;border-radius:50% 30% 50% 30%;display:grid;place-items:center;color:#6bd8e3;font-size:46px;line-height:1;transform:rotate(-9deg);font-family:Georgia,serif;}
.om-root .om-brand strong {display:block;font-size:18px;letter-spacing:.23em;line-height:1.1;font-weight:750;}
.om-root .om-brand small {display:block;font-size:10px;letter-spacing:.48em;color:#8ed9e1;margin-top:5px;font-weight:700;}
.om-root .om-mainnav {display:flex;align-items:center;gap:25px;min-width:0;white-space:nowrap;}
.om-root .om-tab {font-size:13px;color:#c0d3dc;font-weight:600;letter-spacing:.03em;}
.om-root .om-tab.om-active {color:#fff;padding-bottom:8px;border-bottom:2px solid var(--om-accent);}
.om-root .om-tab.om-desktop{font-size:10px;letter-spacing:.17em;color:#89a8b5;}
.om-root .om-searchbox{margin-left:auto;position:relative;display:flex;align-items:center;min-width:230px;width:min(28vw,390px);height:42px;border:1px solid rgba(200,230,238,.24);background:rgba(230,244,248,.08);border-radius:23px;}
.om-root .om-searchbox input {background:transparent;border:0;outline:0;color:white;width:100%;min-width:0;height:100%;padding:0 8px 0 18px;font-size:13px;}
.om-root .om-searchbox input::placeholder{color:#a0b4c1;opacity:1;}
.om-root .om-searchbtn{font-size:28px;line-height:1;width:42px;height:40px;flex:0 0 auto;border-radius:50%;background:transparent;color:#ccebf2;}
.om-root .om-suggestions {position:absolute;top:48px;left:0;right:0;padding:7px;background:rgba(5,25,37,.97);border:1px solid var(--om-line);border-radius:13px;box-shadow:0 12px 30px rgba(0,0,0,.3);}
.om-root .om-suggestions[hidden],.om-root .om-legend[hidden] {display:none!important;}
.om-root .om-suggestions button{background:transparent;display:block;text-align:left;padding:13px 10px;width:100%;color:white;border-radius:8px;font-size:12px;}
.om-root .om-suggestions button:hover{background:rgba(110,200,220,.15);}
.om-root .om-suggestions p{font-size:12px;padding:12px;}
.om-root .om-map-tools{position:absolute;top:91px;left:24px;z-index:4;display:flex;flex-direction:column;width:46px;gap:5px;}
.om-root .om-map-tools button{width:46px;height:46px;background:var(--om-glass);border:1px solid var(--om-line);backdrop-filter:blur(10px);font-size:26px;line-height:1;border-radius:8px;box-shadow:0 4px 14px #0719244d;}
.om-root .om-map-tools button:hover{background:#1f4b63;}
.om-root .om-map-tools .om-reset{margin-top:6px;font-size:27px;}
.om-root .om-status{position:absolute;top:90px;left:84px;z-index:5;padding:13px 17px;max-width:min(510px,calc(100% - 390px));border-radius:9px;background:#092735e8;border:1px solid var(--om-line);color:#d8f8ff;box-shadow:0 8px 30px #0004;}
.om-root .om-status[hidden]{display:none;}
.om-root .om-layers{position:absolute;z-index:4;top:92px;right:23px;width:209px;max-height:calc(100% - 122px);overflow:auto;scrollbar-width:thin;padding:14px 10px;background:var(--om-glass);border:1px solid var(--om-line);border-radius:14px;box-shadow:0 8px 30px #02172373;backdrop-filter:blur(18px);}
.om-root .om-panel-title{color:#96b7c6;font-size:10px;font-weight:800;letter-spacing:.18em;padding:4px 10px 13px;}
.om-root .om-layer{display:flex;gap:11px;align-items:center;text-align:left;width:100%;padding:10px 9px;margin:1px 0;border:1px solid transparent;border-radius:9px;background:transparent;font-size:13px;font-weight:650;}
.om-root .om-layer:hover{background:rgba(145,222,239,.11);}
.om-root .om-layer.om-selected{background:linear-gradient(110deg,rgba(24,99,131,.72),rgba(42,128,157,.2));border-color:rgba(114,211,239,.44);}
.om-root .om-layer-icon{height:36px;width:36px;flex:0 0 auto;border-radius:50%;background:#177ca3;display:grid;place-items:center;font-size:24px;font-weight:400;color:#d9faff;}
.om-root .om-layer span:nth-child(2){display:block;min-width:0;}
.om-root .om-layer small{display:block;font-size:10px;line-height:1.3;color:#a6b9c5;font-weight:400;margin-top:3px;}
.om-root .om-layer-note{margin:13px 6px 2px;border-top:1px solid var(--om-line);padding:13px 4px 1px;color:#96b1bd;font-size:10px;line-height:1.6;}
.om-root .om-layer-mobile-toggle{display:none;}
.om-root .om-conditions{position:absolute;z-index:4;left:24px;bottom:24px;width:min(445px,calc(100% - 290px));background:var(--om-glass);border-radius:14px;border:1px solid var(--om-line);padding:18px 20px 14px;box-shadow:0 8px 35px rgba(0,0,0,.32);backdrop-filter:blur(20px);}
.om-root .om-condition-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--om-line);padding-bottom:12px;}
.om-root .om-condition-heading small{color:#9fbec9;font-size:9px;font-weight:750;letter-spacing:.18em;}
.om-root .om-condition-heading h3{font-size:20px;line-height:1.3;font-weight:700;margin:3px 0;color:white;}
.om-root .om-condition-heading .om-coords{font-size:11px;color:#9ac7d3;}
.om-root .om-live-indicator{display:inline-block;border:1px solid #2b9fab;border-radius:30px;background:#043743;color:#86ebed;padding:5px 9px;white-space:nowrap;font-size:9px;letter-spacing:.12em;font-weight:750;}
.om-root .om-conditions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 3px;padding:14px 0 8px;}
.om-root .om-conditions-grid>div{min-width:0;padding:0 5px 0 9px;border-left:1px solid rgba(144,207,228,.2);}
.om-root .om-conditions-grid>div:nth-child(3n+1){border-left:0;padding-left:0;}
.om-root .om-conditions-grid label{font-size:9px;font-weight:750;letter-spacing:.16em;display:block;color:#98b8c6;margin-bottom:4px;}
.om-root .om-conditions-grid strong{font-size:19px;font-weight:720;color:#e8fcff;display:block;line-height:1.22;white-space:nowrap;}
.om-root .om-conditions-grid small{font-size:10px;color:#94bdc9;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-root .om-conditions-grid .om-wind-direction,.om-root .om-conditions-grid .om-swell-dir{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;overflow-wrap:normal;}
.om-root .om-conditions[data-focus="swell"] .om-conditions-grid>div:nth-child(3),.om-root .om-conditions[data-focus="waves"] .om-conditions-grid>div:nth-child(5),.om-root .om-conditions[data-focus="period"] .om-conditions-grid>div:nth-child(4),.om-root .om-conditions[data-focus="tide"] .om-conditions-grid>div:nth-child(6),.om-root .om-conditions[data-focus="wind"] .om-conditions-grid>div:nth-child(1){background:rgba(45,150,172,.2);border-radius:6px;}
.om-root .om-tide-times{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0;}
.om-root .om-tide-times span{border-radius:6px;color:#a6dbe2;background:#092f3e;padding:4px 6px;font-size:9px;}
.om-root .om-conditions-state{font-size:10px;color:#a7c1cd;border-top:1px solid var(--om-line);padding-top:9px;}
.om-root .om-credits{font-size:9px;line-height:1.4;color:#789eaf;margin-top:6px;max-height:42px;overflow:auto;}
.om-root .om-legend{position:absolute;z-index:4;bottom:34px;right:24px;width:min(300px,calc(100% - 510px));border:1px solid var(--om-line);background:var(--om-glass);border-radius:10px;padding:10px 13px;backdrop-filter:blur(16px);}
.om-root .om-legend-title{display:block;font-size:11px;font-weight:650;margin-bottom:6px;color:#d8f0fa;}
.om-root .om-gradient{height:10px;border-radius:10px;background:linear-gradient(90deg,#164abb 0%,#0d88e6 19%,#22bea7 40%,#bce148 59%,#f4aa24 73%,#ef5142 88%,#cd31c7 100%);}
.om-root .om-legend-numbers{display:flex;justify-content:space-between;font-size:10px;margin-top:4px;color:#c0dbe8;}
.om-root .om-legend .om-legend-detail{display:block;color:#a2bfcb;font-size:9px;line-height:1.3;margin-top:6px;}
.om-root .om-legend.om-swell-legend .om-gradient{background:linear-gradient(90deg,#2a97ec 0%,#1ecbbd 22%,#6edb63 45%,#ffc340 69%,#fc773c 85%,#f24450 100%);}
.om-root .om-selected-pin{width:23px;height:23px;border-radius:50%;background:#46e2ee;box-shadow:0 0 0 5px #49dbe23a,0 0 0 11px #49dbe21d,0 4px 18px #0009;border:3px solid white;cursor:crosshair;}
@media (max-width:1100px){
 .om-root .om-tab.om-desktop{display:none;}
 .om-root .om-brand{min-width:190px;}
 .om-root .om-layers{width:185px;right:12px;}
 .om-root .om-layer{gap:6px;}
 .om-root .om-conditions{width:360px;left:12px;}
 .om-root .om-legend{width:230px;right:12px;}
 .om-root .om-map-tools{left:12px;}
}
@media(max-width:720px){
 .om-root{height:calc(100svh - 70px);min-height:670px;max-height:none;}
 .om-root .om-header{height:68px;min-height:68px;padding:10px 12px;gap:8px;}
 .om-root .om-brand{min-width:0;flex-shrink:0;gap:7px;}
 .om-root .om-logo{width:33px;height:34px;font-size:32px;}
 .om-root .om-brand strong{font-size:12px;letter-spacing:.16em;}
 .om-root .om-brand small{font-size:8px;letter-spacing:.32em;margin-top:2px;}
 .om-root .om-mainnav{display:none;}
 .om-root .om-searchbox{min-width:0;max-width:none;width:100%;height:39px;margin-left:auto;}
 .om-root .om-searchbox input{font-size:12px;padding-left:10px;}
 .om-root .om-searchbox input::placeholder{color:#99b4bf;}
 .om-root .om-searchbtn{width:34px;height:34px;}
 .om-root .om-map-tools{top:83px;left:12px;width:39px;}
 .om-root .om-map-tools button{height:40px;width:40px;font-size:21px;}
 .om-root .om-layer-mobile-toggle{display:block;position:absolute;top:85px;right:12px;z-index:5;border-radius:9px;font-size:12px;background:var(--om-glass);padding:11px 15px;border:1px solid var(--om-line);}
 .om-root .om-layers{display:none;top:135px;right:12px;width:210px;max-height:38%;z-index:8;}
 .om-root .om-layers.om-open{display:block;}
 .om-root .om-status{left:60px;top:135px;max-width:calc(100% - 74px);font-size:12px;}
 .om-root .om-conditions{left:9px;right:9px;width:auto;bottom:14px;padding:13px 14px 10px;}
 .om-root .om-condition-heading{padding-bottom:8px;}
 .om-root .om-condition-heading h3{font-size:16px;}
 .om-root .om-condition-heading .om-coords{font-size:10px;}
 .om-root .om-live-indicator{font-size:8px;}
 .om-root .om-conditions-grid{gap:6px 2px;padding:9px 0 5px;}
 .om-root .om-conditions-grid strong{font-size:15px;}
 .om-root .om-conditions-grid label{font-size:8px;}
 .om-root .om-conditions-grid small{font-size:9px;}
 .om-root .om-conditions-state,.om-root .om-credits{font-size:9px;}
 .om-root .om-tide-times{display:none;}
 .om-root .om-legend{width:190px;left:59px;right:auto;top:84px;bottom:auto;padding:7px 10px;}
 .om-root .om-legend-title,.om-root .om-legend-numbers{font-size:9px;}
 .om-root .om-gradient{height:7px;}
 .om-root .maplibregl-control-container .maplibregl-ctrl-bottom-left,.om-root .maplibregl-control-container .maplibregl-ctrl-bottom-right{bottom:3px!important;}
}
@media(max-width:370px){
 .om-root .om-brand strong{font-size:10px;}
 .om-root .om-brand small{font-size:7px;}
 .om-root .om-logo{width:29px;height:30px;font-size:27px;}
 .om-root .om-searchbox input{font-size:10px;}
 .om-root .om-condition-heading h3{font-size:14px;}
 .om-root .om-live-indicator{padding:3px 5px;}
}
@media(prefers-reduced-motion:reduce){.om-root button{transition:none;}}

/* Full-bleed shortcode: keep any surrounding Gutenberg shortcode margin from creating a gap.
   The JS adjusts to documentElement.clientWidth and exact viewport origin to avoid scrollbar overflow. */
.wp-block-shortcode:has(> .om-root) { margin-block:0!important; overflow:visible!important; }

/* Keep the map visible all the way to the bottom. Attribution stays on-map
   (MapTiler/OSM license requirement), while all timeline chrome is gone. */
.om-root .om-map, .om-root .om-swell-canvas { bottom:0; }
.om-root .maplibregl-ctrl-bottom-right { z-index:2; }

/* Oceanmap geographical labels: solid near-black lettering with a subtle
   white halo for legibility on colored forecast overlays and bathymetry. */
.om-root .om-island-name {
  display: block;
  pointer-events: none !important;
  user-select: none;
  white-space: nowrap;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: 0.005em;
  color: #07131c !important;
  -webkit-text-stroke: 0.45px rgba(255,255,255,.94);
  text-shadow: -1px -1px 0 rgba(255,255,255,.98), 1px -1px 0 rgba(255,255,255,.98), -1px 1px 0 rgba(255,255,255,.98), 1px 1px 0 rgba(255,255,255,.98), 0 0 5px rgba(255,255,255,.85);
}
.om-root .om-island-name[hidden] { display:none !important; }
@media(max-width:720px) {
  .om-root .om-island-name { font-size: 12px; font-weight: 800; }
}

/* v1.0.8 — surf-forecast-inspired glass dock on the map, with bottom mode controls. */
.om-root{--om-dock-offset:260px;}
.om-root .om-bottom-dock{position:absolute;z-index:7;left:clamp(10px,1.3vw,22px);right:clamp(10px,1.3vw,22px);bottom:clamp(10px,1.2vw,18px);min-width:0;max-height:calc(100% - 116px);display:flex;flex-direction:column;overflow:hidden;border-radius:20px;border:1px solid rgba(219,251,255,.30);background:rgba(5,26,40,.50);-webkit-backdrop-filter:blur(15px) saturate(125%) brightness(.82);backdrop-filter:blur(15px) saturate(125%) brightness(.82);box-shadow:0 14px 35px rgba(0,0,0,.28);color:#effbff;padding:12px clamp(12px,1.4vw,20px) 10px;}
.om-root .om-dock-header{display:flex;align-items:center;gap:16px;justify-content:space-between;min-height:40px;padding:0 1px 10px;border-bottom:1px solid rgba(235,255,255,.18);}
.om-root .om-dock-location{flex:1;min-width:0;}
.om-root .om-dock-eyebrow,.om-root .om-mode-eyebrow{display:flex;align-items:center;gap:8px;color:#b2d6e2;font-size:10px;font-weight:800;letter-spacing:.16em;}
.om-root .om-dock-live-dot{height:6px;width:6px;border-radius:100%;background:#42daaa;box-shadow:0 0 0 3px rgba(66,218,170,.13);}
.om-root .om-dock-place-line{display:flex;align-items:baseline;gap:14px;min-width:0;flex-wrap:wrap;}
.om-root .om-dock-place-line h3{font-weight:780;letter-spacing:-.025em;color:#fff;font-size:clamp(18px,1.55vw,26px);line-height:1.3;}
.om-root .om-dock-place-line .om-coords{color:#bbd7de;font-size:11px;}
.om-root .om-live-indicator{flex:0 0 auto;font-size:9px;letter-spacing:.1em;background:rgba(0,65,74,.46);color:#bcf7f5;border-color:rgba(83,220,223,.65);}
.om-root .om-dock-toggle{display:flex;align-items:center;gap:7px;flex:0 0 auto;white-space:nowrap;min-height:36px;font-size:11px;font-weight:650;border:1px solid rgba(207,247,255,.30);border-radius:9px;padding:5px 12px;background:rgba(7,48,67,.32);color:#e3f6f8;}
.om-root .om-dock-toggle:hover{background:rgba(28,109,138,.4);}
.om-root .om-toggle-chevron{font-size:17px;transform:rotate(180deg);line-height:1;display:inline-block;transition:transform .2s;}
.om-root.om-collapsed .om-toggle-chevron{transform:none;}
.om-root .om-dock-details{min-height:0;overflow-y:auto;scrollbar-width:thin;}
.om-root .om-dock-details[hidden]{display:none!important;}
.om-root .om-conditions{position:static;inset:auto;width:auto;max-width:none;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;}
.om-root .om-conditions-grid{display:grid;grid-template-columns:1.13fr 1.13fr .9fr 1fr;gap:10px;padding:12px 0 8px;}
.om-root .om-conditions-grid > .om-weather-card{display:flex;flex-direction:column;min-width:0;min-height:106px;padding:11px clamp(11px,1.25vw,20px) 10px;border:1px solid rgba(222,248,255,.24);border-radius:13px;background:rgba(3,32,49,.40);box-shadow:inset 0 1px 0 rgba(250,255,255,.08);}
.om-root .om-conditions-grid > .om-weather-card:nth-child(n){border-left:1px solid rgba(222,248,255,.24);padding-left:clamp(11px,1.25vw,20px);}
.om-root .om-weather-card label{color:#b8d2df;font-size:10px;letter-spacing:.14em;font-weight:800;margin-bottom:4px;}
.om-root .om-weather-card > strong{font-size:clamp(22px,2.1vw,35px);letter-spacing:-.025em;font-weight:800;line-height:1.1;color:white;}
.om-root .om-weather-card > small{display:block;font-size:11px;color:#d6e8ee;line-height:1.4;margin-top:3px;white-space:normal;overflow:visible;}
.om-root .om-weather-sub{margin-top:auto;padding-top:6px;display:flex;gap:8px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;font-size:11px;color:#bdd9e2;line-height:1.2;}
.om-root .om-weather-sub strong{font-size:14px;white-space:nowrap;color:#f7feff;font-weight:760;}
.om-root .om-conditions-grid .om-weather-unit{font-size:12px;letter-spacing:0;color:#c9e6ed;}
.om-root .om-tide-times{display:flex;flex-wrap:wrap;gap:4px;max-height:45px;overflow:auto;margin-top:auto;padding-top:6px;}
.om-root .om-tide-times span{font-size:9px;background:rgba(2,30,45,.46);border:1px solid rgba(198,230,241,.11);color:#ddfaff;}
.om-root .om-conditions[data-focus="wind"] .om-weather-wind,.om-root .om-conditions[data-focus="swell"] .om-weather-swell{border-color:rgba(91,218,242,.84)!important;background:rgba(10,94,121,.48)!important;}
.om-root .om-conditions[data-focus="wind"] .om-conditions-grid>div:nth-child(1),.om-root .om-conditions[data-focus="swell"] .om-conditions-grid>div:nth-child(3){background:inherit;}
.om-root .om-dock-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 9px;min-height:39px;}
.om-root .om-dock-status{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1;}
.om-root .om-conditions-state{font-size:10px;line-height:1.3;color:#e1f5f9;border:0;padding:0;}
.om-root .om-credits{font-size:9px;color:#b9d1da;margin:0;max-height:none;overflow:visible;line-height:1.2;}
.om-root .om-legend{position:static;inset:auto;display:block;flex:0 0 auto;width:clamp(160px,20vw,265px);padding:2px 0;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none;}
.om-root .om-legend-title{font-size:10px;line-height:1.15;margin-bottom:4px;}
.om-root .om-gradient{height:7px;}
.om-root .om-legend-numbers{font-size:9px;line-height:1;margin-top:3px;}
.om-root .om-legend .om-legend-detail{display:none;}
.om-root .om-mode-row{display:flex;align-items:center;justify-content:center;min-width:0;gap:13px;padding-top:9px;border-top:1px solid rgba(238,255,255,.20);}
.om-root .om-layers{position:static;inset:auto;z-index:auto;flex:0 0 auto;display:flex;align-items:stretch;gap:6px;width:auto;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;}
.om-root .om-layer{display:flex;align-items:center;justify-content:center;gap:8px;min-width:105px;min-height:39px;margin:0;padding:6px 15px;text-align:center;border-radius:10px;background:rgba(7,42,58,.48);border:1px solid rgba(235,255,255,.23);font-size:13px;font-weight:750;}
.om-root .om-layer:hover{background:rgba(29,113,144,.5);}
.om-root .om-layer.om-selected{background:rgba(29,138,174,.72);border-color:rgba(136,236,247,.87);box-shadow:inset 0 0 0 1px rgba(118,211,231,.19);}
.om-root .om-layer-icon{height:24px;width:24px;border-radius:100%;background:rgba(15,179,217,.39);font-size:18px;}
.om-root .om-layer-note{flex:1;min-width:0;max-width:460px;margin:0;border:0;padding:0;font-size:10px;line-height:1.35;color:#c6dce4;}
.om-root .om-layer-mobile-toggle{display:none!important;}
.om-root .om-map-tools{z-index:5;}
.om-root .om-status{z-index:8;}
.om-root .maplibregl-control-container .maplibregl-ctrl-bottom-left,.om-root .maplibregl-control-container .maplibregl-ctrl-bottom-right{bottom:var(--om-dock-offset,260px)!important;}
@media(max-width:1050px){
 .om-root .om-conditions-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
 .om-root .om-weather-card > strong{font-size:24px;}
 .om-root .om-weather-sub{font-size:10px;}
 .om-root .om-dock-meta{gap:8px;}
}
@media(max-width:720px){
 .om-root .om-bottom-dock{left:8px;right:8px;bottom:9px;border-radius:17px;padding:10px 10px 9px;max-height:calc(100% - 155px);}
 .om-root .om-dock-header{gap:7px;min-height:39px;padding-bottom:8px;}
 .om-root .om-dock-eyebrow{font-size:8px;}
 .om-root .om-dock-place-line{gap:4px;flex-direction:column;}
 .om-root .om-dock-place-line h3{font-size:17px;}
 .om-root .om-dock-place-line .om-coords{font-size:9px;}
 .om-root .om-live-indicator{display:none;}
 .om-root .om-dock-toggle{padding:4px 8px;min-height:32px;font-size:10px;}
 .om-root .om-conditions-grid{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:8px;padding:10px 0 9px;scrollbar-width:thin;}
 .om-root .om-conditions-grid>.om-weather-card{flex:0 0 170px;min-height:117px;scroll-snap-align:start;padding:10px 12px;}
 .om-root .om-conditions-grid>.om-weather-card:nth-child(n){padding-left:12px;}
 .om-root .om-weather-card>strong{font-size:25px;}
 .om-root .om-weather-card>small{font-size:10px;}
 .om-root .om-dock-meta{align-items:stretch;gap:8px;padding:0 0 8px;}
 .om-root .om-dock-status{flex:1;}
 .om-root .om-conditions-state{font-size:9px;}
 .om-root .om-credits{font-size:8px;}
 .om-root .om-legend{left:auto;top:auto;bottom:auto;width:115px;padding-top:2px;}
 .om-root .om-legend-title{font-size:9px;}
 .om-root .om-legend-numbers{font-size:8px;}
 .om-root .om-mode-row{justify-content:center;gap:6px;padding-top:8px;}
 .om-root .om-mode-eyebrow,.om-root .om-layer-note{display:none;}
 .om-root .om-layers{display:flex!important;position:static;top:auto;right:auto;width:auto;max-height:none;background:transparent;border:0;padding:0;gap:7px;}
 .om-root .om-layer{min-height:40px;min-width:117px;font-size:13px;}
 .om-root .om-map-tools{top:83px;}
}
@media(max-width:370px){
 .om-root .om-bottom-dock{left:5px;right:5px;padding:8px 8px;}
 .om-root .om-conditions-grid>.om-weather-card{flex-basis:150px;}
 .om-root .om-legend{width:95px;}
 .om-root .om-layer{min-width:102px;}
}
@media(prefers-reduced-motion:reduce){.om-root .om-toggle-chevron{transition:none;}}

/* v1.0.9 — only five clickable offshore surf-forecast region pins. */
.om-root .om-region-pin {
  display:flex; align-items:center; gap:7px; width:max-content; max-width:158px;
  min-height:40px; padding:5px 11px 5px 6px; border:1.5px solid rgba(239,255,255,.96);
  border-radius:24px; background:rgba(5,34,51,.86); backdrop-filter:blur(11px);
  color:#fff!important; font:750 12px/1.12 Inter,'Segoe UI',system-ui,sans-serif;
  letter-spacing:.005em; white-space:nowrap; cursor:pointer; pointer-events:auto;
  box-shadow:0 3px 14px rgba(0,0,0,.38),0 0 0 5px rgba(9,65,88,.08);
  transition:transform .15s,border-color .15s,background .15s;
}
.om-root .om-region-pin:hover,.om-root .om-region-pin:focus-visible{background:rgba(7,74,101,.98);transform:scale(1.04);border-color:#67e9f6;}
.om-root .om-region-pin.om-active{border-color:#65eff4;background:rgba(3,91,121,.95);box-shadow:0 4px 18px rgba(0,0,0,.42),0 0 0 6px rgba(34,205,227,.19);}
.om-root .om-region-number{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:50%;font-weight:850;background:#0e8daf;color:#fff;}
.om-root .om-region-pin.om-active .om-region-number{background:#55e0e6;color:#073243;}
.om-root .om-region-label{display:block;text-align:left;min-width:0;text-shadow:0 1px 2px #071926;}
.om-root .om-breaks{display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(238,255,255,.14);padding:10px 2px 3px;min-width:0;}
.om-root .om-breaks-heading{flex:0 0 auto;color:#b1d6e1;font-size:9px;font-weight:800;letter-spacing:.12em;}
.om-root .om-breaks-list{display:flex;align-items:center;gap:5px;flex:1;min-width:0;overflow-x:auto;padding:2px 2px 7px;scrollbar-width:thin;}
.om-root .om-break-chip{flex:0 0 auto;display:inline-flex;align-items:center;min-height:25px;border:1px solid rgba(161,227,240,.33);border-radius:30px;background:rgba(36,112,139,.25);padding:4px 9px;white-space:nowrap;font-size:10px;font-weight:650;color:#effaff;}
.om-root .om-bottom-dock {max-height:calc(100% - 108px);}
@media(max-width:720px){
  .om-root .om-region-pin{gap:4px;min-height:38px;padding:4px 7px 4px 4px;font-size:10px;max-width:118px;}
  .om-root .om-region-number{width:24px;height:24px;flex-basis:24px;font-size:11px;}
  .om-root .om-breaks{display:block;padding:7px 1px 2px;}
  .om-root .om-breaks-heading{display:block;margin-bottom:4px;}
  .om-root .om-breaks-list{padding-bottom:5px;}
  .om-root .om-break-chip{font-size:9px;min-height:24px;}
  .om-root .om-bottom-dock{max-height:calc(100% - 145px);}
}

/* v1.0.10 — half-height compact glass forecast dock. Keep map unobscured. */
.om-root .om-bottom-dock {
  padding: 7px clamp(10px,1.3vw,18px) 7px;
  background: rgba(5,26,40,.49);
  -webkit-backdrop-filter: blur(15px) saturate(120%);
  backdrop-filter: blur(15px) saturate(120%);
  border-radius: 15px;
}
.om-root .om-dock-header {min-height:35px;padding:0 0 5px;gap:9px;}
.om-root .om-dock-eyebrow {font-size:8px;letter-spacing:.13em;}
.om-root .om-dock-place-line {gap:8px;flex-wrap:nowrap;}
.om-root .om-dock-place-line h3 {font-size:clamp(15px,1.1vw,20px);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-root .om-dock-place-line .om-coords {font-size:9px;white-space:nowrap;}
.om-root .om-live-indicator {font-size:8px;padding:3px 7px;}
.om-root .om-dock-toggle {min-height:30px;font-size:10px;padding:3px 9px;}
.om-root .om-breaks {gap:9px;padding:2px 1px 0;border-bottom:0;}
.om-root .om-breaks-heading {font-size:8px;}
.om-root .om-breaks-list {gap:4px;padding:1px 1px 2px;}
.om-root .om-break-chip {min-height:19px;padding:2px 7px;font-size:9px;line-height:1;}
.om-root .om-conditions-grid,.om-root .om-conditions-grid:nth-child(n) {gap:8px;padding:5px 0 6px;}
.om-root .om-conditions-grid > .om-weather-card,
.om-root .om-conditions-grid > .om-weather-card:nth-child(n) {
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:'heading main' 'direction direction' 'detail detail';
  grid-template-rows:18px 16px 16px;
  gap:0 7px;
  min-height:0;height:67px;padding:7px 10px;
  border-radius:10px;
}
.om-root .om-weather-card label {grid-area:heading;align-self:center;margin:0;font-size:9px;letter-spacing:.11em;}
.om-root .om-weather-card > strong {grid-area:main;font-size:clamp(17px,1.25vw,22px);line-height:1.05;text-align:right;}
.om-root .om-weather-card > small {grid-area:direction;align-self:center;margin:0;font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-root .om-weather-sub {grid-area:detail;align-self:end;justify-content:flex-start;gap:8px;flex-wrap:nowrap;margin:0;padding:0;line-height:1.15;font-size:10px;}
.om-root .om-weather-sub strong {font-size:11px;}
.om-root .om-tide-times {display:none;}
.om-root .om-mode-row {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(120px,18%);align-items:center;gap:13px;padding-top:6px;border-top:1px solid rgba(238,255,255,.2);min-height:40px;}
.om-root .om-dock-status {min-width:0;max-width:100%;overflow:hidden;}
.om-root .om-conditions-state {font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.om-root .om-credits {font-size:8px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.om-root .om-layer {min-height:33px;min-width:96px;padding:4px 11px;gap:6px;font-size:12px;border-radius:9px;}
.om-root .om-layer-icon {width:22px;height:22px;font-size:15px;}
.om-root .om-legend {width:100%;padding:0;min-width:0;}
.om-root .om-legend-title {font-size:9px;margin-bottom:3px;}
.om-root .om-gradient {height:6px;}
.om-root .om-legend-numbers {font-size:8px;}
.om-root .om-layer-note {position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;padding:0!important;}
.om-root .om-mode-eyebrow{display:none;}
@media (max-width: 960px) and (min-width:721px) {
  .om-root .om-dock-place-line .om-coords{display:none;}
  .om-root .om-mode-row{grid-template-columns:minmax(0,1fr) auto minmax(110px,22%);gap:8px;}
  .om-root .om-weather-card > strong {font-size:20px;}
}
@media (max-width:720px) {
  .om-root .om-bottom-dock{padding:8px 9px 7px;left:6px;right:6px;bottom:8px;}
  .om-root .om-dock-header{min-height:35px;padding-bottom:5px;}
  .om-root .om-dock-place-line{flex-direction:column;gap:0;}
  .om-root .om-dock-place-line h3{font-size:15px;max-width:calc(100vw - 125px);}
  .om-root .om-dock-place-line .om-coords{font-size:8px;}
  .om-root .om-dock-toggle{min-height:30px;}
  .om-root .om-breaks{display:flex;align-items:center;padding:4px 1px 0;gap:7px;}
  .om-root .om-breaks-heading{white-space:nowrap;font-size:7px;max-width:68px;line-height:1.25;}
  .om-root .om-breaks-list{padding:0 0 2px;}
  .om-root .om-break-chip{min-height:19px;font-size:9px;}
  .om-root .om-conditions-grid{gap:6px;padding:5px 0 6px;}
  .om-root .om-conditions-grid > .om-weather-card,
  .om-root .om-conditions-grid > .om-weather-card:nth-child(n){flex:0 0 146px;width:146px;min-height:0;height:67px;padding:6px 9px;}
  .om-root .om-weather-card > strong {font-size:18px;}
  .om-root .om-weather-card > small {font-size:9px;}
  .om-root .om-mode-row {grid-template-columns:minmax(0,1fr) auto;gap:6px;padding-top:5px;}
  .om-root .om-layers{gap:4px;}
  .om-root .om-layer{min-height:32px;min-width:72px;padding:3px 5px;font-size:11px;}
  .om-root .om-layer-icon{width:19px;height:19px;font-size:14px;}
  .om-root .om-legend {display:none;}
  .om-root .om-conditions-state {font-size:9px;}
  .om-root .om-credits{display:none;}
}
@media (max-width:370px){
  .om-root .om-dock-header{gap:3px;}
  .om-root .om-dock-toggle{font-size:9px;padding:3px 6px;}
  .om-root .om-dock-place-line h3{font-size:14px;}
  .om-root .om-layer{min-width:67px;}
}

/* v1.0.11 — readable, prominent Wind + Swell readings in the compact dock.
   The larger typography is accommodated with only ~20px more card height. */
.om-root .om-conditions-grid > .om-weather-card,
.om-root .om-conditions-grid > .om-weather-card:nth-child(n) {
  height: 88px;
  grid-template-rows: 30px 23px 21px;
  padding: 7px 11px;
  align-content: center;
}
.om-root .om-weather-wind label,
.om-root .om-weather-swell label {
  font-size: clamp(14px, 1.15vw, 18px);
  font-weight: 850;
  letter-spacing: .04em;
  color: #e4f7fd;
}
.om-root .om-weather-wind > strong,
.om-root .om-weather-swell > strong {
  font-size: clamp(25px, 1.85vw, 32px);
  font-weight: 850;
  white-space: nowrap;
  letter-spacing: -.04em;
}
.om-root .om-weather-wind > small,
.om-root .om-weather-swell > small {
  font-size: clamp(15px, 1.05vw, 18px);
  font-weight: 700;
  color: #f0fbff;
  line-height: 1.15;
}
.om-root .om-weather-wind .om-weather-sub,
.om-root .om-weather-swell .om-weather-sub {
  align-self: center;
  font-size: clamp(15px, 1.05vw, 18px);
  gap: 10px;
  font-weight: 650;
  line-height: 1.1;
}
.om-root .om-weather-wind .om-weather-sub strong,
.om-root .om-weather-swell .om-weather-sub strong {
  font-size: clamp(18px, 1.30vw, 22px);
  font-weight: 850;
}
@media (max-width: 1050px) {
  .om-root .om-weather-wind > small,
  .om-root .om-weather-swell > small {font-size: 15px;}
  .om-root .om-weather-wind .om-weather-sub,
  .om-root .om-weather-swell .om-weather-sub {font-size: 15px;}
  .om-root .om-weather-wind .om-weather-sub strong,
  .om-root .om-weather-swell .om-weather-sub strong {font-size: 18px;}
}
@media (max-width: 720px) {
  /* Let visitors swipe through genuinely legible cards, instead of
     squeezing the larger numbers into 146px-wide panels. */
  .om-root .om-conditions-grid > .om-weather-card,
  .om-root .om-conditions-grid > .om-weather-card:nth-child(n) {
    flex: 0 0 205px;
    width: 205px;
    height: 88px;
    padding: 7px 11px;
    grid-template-rows: 30px 23px 21px;
  }
  .om-root .om-weather-wind label,
  .om-root .om-weather-swell label {font-size: 15px;}
  .om-root .om-weather-wind > strong,
  .om-root .om-weather-swell > strong {font-size: 27px;}
  .om-root .om-weather-wind > small,
  .om-root .om-weather-swell > small {font-size: 15px;}
  .om-root .om-weather-wind .om-weather-sub,
  .om-root .om-weather-swell .om-weather-sub {font-size: 15px;}
  .om-root .om-weather-wind .om-weather-sub strong,
  .om-root .om-weather-swell .om-weather-sub strong {font-size: 19px;}
}


/* v1.0.12: Use the site's Odyssey navigation only; full-bleed map to its edge. */
.om-root {box-shadow:none!important;border:0!important;border-radius:0!important;min-height:420px!important;}
.om-root .om-map-tools {top:22px!important;}
.om-root .om-status {top:23px!important;}
@media (max-width:720px) {
  .om-root .om-map-tools {top:14px!important;}
  .om-root .om-status {top:64px!important;}
}
/* Scoped to this page: remove theme block padding/margins and white surrounds,
   never touching the header, navigation, footer or other WordPress pages. */
body.om-page-with-oceanmap {overflow-x:clip!important;}
body.om-page-with-oceanmap .om-map-layout-parent {
  padding-block:0!important;margin-block:0!important;
  border-block:0!important;border-radius:0!important;
  box-shadow:none!important;
  background-color:transparent!important;
}
body.om-page-with-oceanmap .om-map-layout-parent.wp-block-shortcode,
body.om-page-with-oceanmap .om-map-layout-parent.wp-block-post-content,
body.om-page-with-oceanmap .om-map-layout-parent.entry-content,
body.om-page-with-oceanmap .om-map-layout-parent.is-layout-constrained {
  padding-inline:0!important;margin-inline:0!important;max-width:none!important;
}
body.om-page-with-oceanmap .om-map-layout-parent > .wp-block-spacer:has(+ .wp-block-shortcode > .om-root){display:none!important;}


/* v1.0.13: The map uses a viewport overlay below the existing Odyssey header.
   Page-specific scroll lock prevents a template footer or white margins from
   appearing outside the map; other WordPress pages are not affected. */
html.om-oceanmap-display,body.om-page-with-oceanmap {
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.om-page-with-oceanmap>.om-root {
  position:fixed!important;
  inset:auto 0 0 0;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  box-shadow:none!important;
  border:0!important;
  border-radius:0!important;
  background:#0d3550;
}


/* v1.0.15: Floating archipelago switcher, site nav remains the only header. */
.om-root .om-area-switch{position:absolute;top:clamp(10px,1.3vw,20px);left:50%;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:5px;padding:5px 6px;border:1px solid rgba(230,251,255,.30);border-radius:100px;background:rgba(5,27,40,.48);-webkit-backdrop-filter:blur(15px) saturate(130%);backdrop-filter:blur(15px) saturate(130%);box-shadow:0 6px 22px rgba(0,0,0,.20);white-space:nowrap;max-width:calc(100% - 110px);}
.om-root .om-area-button{position:relative;min-height:43px;padding:10px clamp(14px,2vw,29px);border:0!important;border-radius:100px;background:transparent!important;color:#fff!important;font:800 clamp(13px,1.12vw,17px)/1.15 system-ui,-apple-system,sans-serif!important;letter-spacing:.03em;cursor:pointer;text-shadow:0 1px 5px rgba(0,0,0,.55);transition:background-color .22s ease,box-shadow .22s ease,transform .22s ease,text-shadow .22s ease;}
.om-root .om-area-button::after{content:'';position:absolute;bottom:6px;left:28%;right:28%;height:2px;border-radius:9px;background:#76eff3;transform:scaleX(0);opacity:0;transition:transform .2s ease,opacity .2s ease,left .2s ease,right .2s ease;}
.om-root .om-area-button.om-area-active{background:rgba(20,103,127,.65)!important;box-shadow:inset 0 0 0 1px rgba(114,239,246,.5),0 0 16px rgba(30,214,223,.15);}
.om-root .om-area-button.om-area-active::after{opacity:1;transform:scaleX(1);}
.om-root .om-area-divider{height:18px;width:1px;background:rgba(207,236,240,.35);flex:none;}
@media(hover:hover) and (pointer:fine){.om-root .om-area-button:hover{background:rgba(26,143,168,.43)!important;transform:translateY(-1px);text-shadow:0 0 11px rgba(126,249,249,.8);}.om-root .om-area-button:hover::after{opacity:1;transform:scaleX(1);left:15%;right:15%;}}
.om-root .om-area-button:focus-visible{outline:2px solid #bdf9fa!important;outline-offset:2px;}
.om-root .om-telo-break-pin{max-width:136px;border:1px solid rgba(230,252,253,.66);border-radius:100px;background:rgba(1,45,59,.84);color:#fff;font:700 10px/1.1 system-ui,sans-serif;text-shadow:0 1px 2px #002a37;padding:5px 9px;box-shadow:0 4px 11px #0006;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-root .om-telo-break-pin:hover,.om-root .om-telo-break-pin:focus-visible{border-color:#84ffff;background:#0e6582;outline:2px solid #58d8e6;outline-offset:2px;}
@media(max-width:720px){.om-root .om-area-switch{top:10px;left:50%;gap:2px;padding:4px;max-width:calc(100% - 120px)}.om-root .om-area-button{font-size:12px!important;padding:9px 10px;min-height:38px;}.om-root .om-area-divider{height:15px;}.om-root .om-map-tools{top:64px!important;}}
@media(prefers-reduced-motion:reduce){.om-root .om-area-button,.om-root .om-area-button::after{transition:none;}}
