/* Cedromare Carta Nautica map. Author RZ. */
.cm-map-widget { --map-blue:#1b3a80; --map-gold:#e3b325; color:#263751; }
.cm-map-widget [hidden] { display:none !important; }
.cm-map-widget a,.cm-map-widget a:hover,.cm-map-widget a:focus { text-decoration:none; }
.cm-map-controls { display:grid; gap:14px; padding:18px; background:#fffaf0; border:1px solid #b9c1ca; border-bottom:0; }
.cm-map-views { display:flex; flex-wrap:wrap; gap:8px; }
.cm-map-widget button { appearance:none; min-height:46px; padding:11px 16px; border:1px solid var(--map-blue); border-radius:2px; background:#fffaf0; color:var(--map-blue); font:600 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; cursor:pointer; }
.cm-map-widget button:hover { background:#f4d97a; }
.cm-map-widget button[aria-pressed="true"] { background:var(--map-blue); color:#fffaf0; }
.cm-map-widget button:disabled { opacity:.45; cursor:default; }
.cm-map-fields { display:grid; gap:16px; }
.cm-map-fields label { display:grid; gap:6px; font-size:12px; font-weight:700; }
.cm-map-fields select { width:100%; min-height:46px; padding:10px 34px 10px 12px; border:1px solid #8e9ab0; border-radius:2px; background:#fffaf0; color:#122457; font:400 15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
.cm-map-help { padding:12px 0 0; font-size:14px; }
.cm-map-canvas { position:relative; border:2px solid var(--map-blue); background:#b9dbd8; }
.cm-map-svg { display:block; width:100%; height:auto; aspect-ratio:9/7; min-height:330px; max-height:660px; overflow:hidden; touch-action:none; cursor:grab; }
.cm-map-canvas { touch-action:none; }
.cm-map-svg[data-map-dragging] { cursor:grabbing; user-select:none; }
.cm-map-home-edge { position:absolute; z-index:3; display:flex; align-items:center; gap:6px; width:176px; max-width:calc(100% - 16px); min-height:48px; padding:5px 8px; border:1px solid #1b3a80; border-radius:4px; background:#fffaf0; box-shadow:0 2px 6px #12245726; color:#122457; font:600 11px/1.2 Arial,sans-serif; text-align:left; cursor:pointer; }
.cm-map-home-edge[hidden] { display:none !important; }
.cm-map-home-edge > svg { flex:0 0 26px; width:26px; height:26px; }
.cm-map-home-edge circle { fill:#e3b325; stroke:#1b3a80; }
.cm-map-home-edge path { fill:#1b3a80; }
.cm-map-home-edge-arrow { flex:0 0 20px; font-size:22px; line-height:1; }
.cm-map-home-edge:focus-visible { outline:3px solid #e3b325; outline-offset:2px; }
.cm-map-sea { fill:#b9dbd8; }
.cm-map-land { fill:#f7f0de; stroke:none; }
.cm-map-coastline { fill:none; stroke:#638e9a; stroke-width:1; vector-effect:non-scaling-stroke; }
.cm-map-road { fill:none; stroke:#a2a5a8; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; pointer-events:none; }
.cm-map-road--motorway,.cm-map-road--trunk { stroke:#868d93; stroke-width:3; }
.cm-map-road--primary { stroke:#93999e; stroke-width:2.4; }
.cm-map-road--secondary { stroke:#a1a5a9; stroke-width:1.8; }
.cm-map-road--tertiary { stroke:#aeb2b5; stroke-width:1.3; }
.cm-map-road--residential,.cm-map-road--unclassified,.cm-map-road--living_street { stroke:#b5b8ba; stroke-width:1; }
.cm-map-road--service { stroke:#bfc1c1; stroke-width:.8; }
.cm-map-road--link { stroke-width:1.2; }
.cm-map-road--tunnel { stroke-dasharray:3 3; opacity:.75; }
.cm-map-river { fill:none; stroke:#72a4b1; stroke-width:1.4; vector-effect:non-scaling-stroke; }
.cm-map-protected { fill:#8eaf89; fill-opacity:.14; stroke:#6c9270; stroke-width:1; stroke-dasharray:4 3; pointer-events:none; }
.cm-map-protected path { vector-effect:non-scaling-stroke; }
.cm-map-protected--argentino { fill:#679f96; stroke:#51877e; fill-opacity:.2; }
.cm-map-protected--lao { fill:#aec187; stroke:#879958; fill-opacity:.23; }
.cm-map-protected--abatemarco { fill:#c6b888; stroke:#a8945d; fill-opacity:.22; stroke-dasharray:2 3; }
.cm-map-place-labels { pointer-events:none; }
.cm-map-place circle { fill:#6e7f8d; stroke:#fffaf0; stroke-width:.7; }
.cm-map-place-leader { stroke:#81949e; stroke-width:.7; stroke-dasharray:2 2; }
.cm-map-place text { fill:#243b61; stroke:#fffaf0; stroke-width:3; stroke-linejoin:round; paint-order:stroke; font:600 12px/1.2 Arial,sans-serif; }
[data-map-layer="peaks"] .cm-map-place text { fill:#62735c; font-size:11px; font-style:italic; }
[data-map-layer="peaks"] .cm-map-place circle { display:none; }
[data-map-layer="road-labels"] .cm-map-place circle { display:none; }
[data-map-layer="road-labels"] .cm-map-place text { fill:#737a80; font-size:11px; font-weight:600; }
.cm-map-sea-name { fill:#5c929c; font:italic 15px Georgia,serif; text-anchor:middle; letter-spacing:1.8px; pointer-events:none; }
.cm-map-legend { margin:12px 0; padding:10px 13px; background:#fffaf0; border:1px solid #c3c9be; font-size:13px; }
.cm-map-legend summary { color:#1b3a80; cursor:pointer; min-height:44px; display:list-item; align-content:center; font-weight:600; }
.cm-map-legend p { font-size:13px; margin:8px 0; }
.cm-map-legend ul { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px; }
.cm-map-legend li { position:relative; padding-left:27px; }
.cm-map-legend small { display:block; color:#52625a; }
.cm-map-key { position:absolute; left:0; top:6px; width:17px; height:11px; background:#8eaf8930; border:1px dashed #6c9270; }
.cm-map-key--argentino { background:#679f9633; border-color:#51877e; }
.cm-map-key--lao { background:#aec18744; border-color:#879958; }
.cm-map-key--abatemarco { background:#c6b88844; border-color:#a8945d; }
.cm-map-graticule { stroke:#1b3a80; stroke-width:.6; stroke-opacity:.15; fill:none; }
.cm-map-graticule path { vector-effect:non-scaling-stroke; }
.cm-map-hit { fill:transparent; pointer-events:all; }
.cm-map-dot { fill:#1b3a80; stroke:#fffaf0; stroke-width:1.5; }
.cm-map-number { fill:#fffaf0; font:700 13px Arial,sans-serif; pointer-events:none; }
.cm-map-label,.cm-map-home-label { fill:#122457; stroke:#fffaf0; stroke-width:4px; stroke-linejoin:round; paint-order:stroke; font:700 13px Arial,sans-serif; pointer-events:none; }
.cm-map-label { display:none; }
.cm-map-point:hover .cm-map-label,.cm-map-point:focus .cm-map-label { display:block; }
.cm-map-point:hover .cm-map-dot,.cm-map-point:focus .cm-map-dot { fill:#e3b325; stroke:#122457; stroke-width:2; }
.cm-map-point:hover .cm-map-number,.cm-map-point:focus .cm-map-number { fill:#122457; }
.cm-map-point[data-selected] .cm-map-dot { fill:#e3b325; stroke:#122457; stroke-width:2; }
.cm-map-point[data-selected] .cm-map-number { fill:#122457; }
.cm-map-cluster { cursor:zoom-in; }
.cm-map-cluster-dot { fill:#fff; stroke:#1b3a80; stroke-width:3; }
.cm-map-cluster-number { fill:#1b3a80; font:700 14px Arial,sans-serif; pointer-events:none; }
.cm-map-cluster:hover .cm-map-cluster-dot,.cm-map-cluster:focus .cm-map-cluster-dot { fill:#fff3c8; stroke-width:4; }
.cm-map-cluster:focus-visible { outline:none; }
.cm-map-cluster:focus-visible .cm-map-cluster-dot { stroke:#1b3a80; stroke-width:5; }
.cm-map-leaders { pointer-events:none; }
.cm-map-leaders line { stroke:#1b3a80; stroke-width:1; stroke-opacity:.65; vector-effect:non-scaling-stroke; }
.cm-map-point:focus-visible,.cm-map-home:focus-visible { outline:none; }
.cm-map-point:focus-visible .cm-map-dot,.cm-map-home:focus-visible > circle:not(.cm-map-hit) { stroke:#e3b325; stroke-width:5; }
.cm-map-north { position:absolute; top:12px; right:15px; color:#1b3a80; font:700 15px/1.2 Georgia,serif; text-align:center; pointer-events:none; }
.cm-map-tools { display:flex; flex-wrap:wrap; gap:6px; padding:10px; border-top:1px solid #aeb9c5; background:#fffaf0; }
.cm-map-tools button { min-width:46px; padding:10px 12px; }
.cm-map-tools button[data-map-action="in"],.cm-map-tools button[data-map-action="out"] { background:#1b3a80; color:#fffaf0; font-size:20px; }
.cm-map-status { margin-top:15px; font-size:14px; font-weight:600; color:#1b3a80; }
.cm-map-empty { padding:22px; border-left:3px solid #e3b325; background:#fffaf0; }
.cm-map-empty button { display:block; margin-top:12px; }
.cm-map-selection { margin-block:18px 24px; padding:22px; border:2px solid #1b3a80; border-top:5px solid #e3b325; background:#fffaf0; scroll-margin-block:20px; }
.cm-map-selection-top { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; }
.cm-page .cm-map-selection h2 { flex:1 1 180px; margin:0 0 12px; font-size:clamp(25px,4vw,32px); overflow-wrap:anywhere; }
.cm-map-selection-close { flex:0 0 auto; }
.cm-page .cm-map-selection-topic { margin-block:0 14px; color:#536078; font-size:13px; font-weight:600; }
.cm-map-selection > p { font-size:15px; }
.cm-map-selection .cm-map-route-note { padding:12px; border-left:3px solid #e3b325; background:#f4ebd3; font-size:13px; }
.cm-map-selection-actions { display:flex; flex-wrap:wrap; gap:12px; }
.cm-map-selection:focus-visible { outline:3px solid #1b3a80; outline-offset:4px; }
.cm-map-attribution { margin-block:14px 24px; font-size:11px; line-height:1.6; color:#536078; }
.cm-page .cm-map-list { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; margin:24px 0 0; padding:0; list-style:none; }
.cm-page .cm-map-card { padding:24px; margin:0; border:1px solid #b9c1ca; border-top:3px solid #1b3a80; background:#fffaf0; }
.cm-map-card-heading { display:flex; align-items:flex-start; gap:12px; }
.cm-map-card-heading h3 { margin:0 0 12px; font-size:25px; }
.cm-map-card-number { display:flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; background:#1b3a80; color:#fffaf0; font-size:12px; font-weight:700; }
.cm-map-card p { font-size:14px; }
.cm-map-card .cm-map-route-note { padding:12px; background:#f4ebd3; border-left:3px solid #e3b325; font-size:12px; }
.cm-map-card-actions { display:flex; flex-wrap:wrap; gap:6px 22px; }
.cm-map-card-actions a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; text-decoration:none; }
.cm-map-widget :is(button,select,a):focus-visible { outline:3px solid #1b3a80; outline-offset:4px; }
@media(min-width:600px) { .cm-map-fields { grid-template-columns:1fr 1fr; } .cm-page .cm-map-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1000px) { .cm-map-controls { grid-template-columns:1fr 1.2fr; align-items:end; } .cm-map-svg { min-height:500px; } .cm-page .cm-map-list { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:359px) { .cm-map-controls,.cm-map-selection { padding:16px; } .cm-map-views { flex-direction:column; } .cm-map-tools { gap:5px; padding:8px; } .cm-map-tools button { padding-inline:10px; } .cm-map-selection-actions > a { width:100%; } }
@media print { .cm-map-controls,.cm-map-tools,.cm-map-canvas,.cm-map-selection { display:none !important; } .cm-map-card[hidden] { display:block !important; } .cm-page .cm-map-list { display:block; } .cm-map-card { break-inside:avoid; } }
