/* Where-to-cruise-by-month pages (v247). Sits on top of sj-river.css (shared section system). */
.mo-page{--mo1:#16324F;--mo2:#F2C46E}
.mo-hero-art{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.mo-hero-art .seg{opacity:0;animation:mo-seg .7s cubic-bezier(.2,.8,.2,1) forwards}
.mo-hero-art .seg.on{filter:drop-shadow(0 0 18px color-mix(in srgb,var(--mo2) 70%,transparent))}
.mo-hero-art .seg.on path{animation:mo-glow 3.6s ease-in-out 1.6s infinite}
.mo-hero-art .orbit{transform-origin:var(--ox) var(--oy);animation:mo-turn 140s linear infinite}
@keyframes mo-seg{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes mo-glow{0%,100%{opacity:1}50%{opacity:.72}}
@keyframes mo-turn{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.mo-hero-art .seg{animation:none;opacity:1}.mo-hero-art .orbit,.mo-hero-art .seg.on path{animation:none}}

/* month strip */
.mo-strip{background:#0E1520;border-bottom:1px solid rgba(255,255,255,.06)}
.mo-strip-in{max-width:1180px;margin:0 auto;padding:14px 28px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.mo-strip-in::-webkit-scrollbar{display:none}
.mo-strip a{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:62px;padding:10px 8px 9px;border-radius:12px;color:#C9C2B6;text-decoration:none;font:600 12.5px/1 var(--ui);letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.mo-strip a:hover{background:rgba(255,255,255,.06);color:#fff}
.mo-strip a[aria-current]{background:var(--mo2);color:#14110C;border-color:var(--mo2)}
.mo-strip a i{display:block;width:30px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--g) calc(var(--p)*1%),rgba(255,255,255,.14) 0)}
.mo-strip a[aria-current] i{background:linear-gradient(90deg,#14110C calc(var(--p)*1%),rgba(20,17,12,.25) 0)}

/* map */
.mo-pan{display:none}
.mo-map{position:relative;border-radius:22px;overflow:hidden;background:radial-gradient(900px 420px at 50% 0%,color-mix(in srgb,var(--mo1) 70%,#0B1622),#0A121C);border:1px solid rgba(233,207,148,.16);box-shadow:0 40px 80px -50px rgba(0,0,0,.8)}
.mo-map svg{display:block;width:100%;height:auto}
.mo-map .land{fill:rgba(233,224,206,.10);stroke:rgba(233,224,206,.22);stroke-width:.6}
.mo-map .grat{stroke:rgba(255,255,255,.05);stroke-width:.6;fill:none}
.mo-map .b{cursor:pointer;transition:transform .25s;transform-box:fill-box;transform-origin:center}
.mo-map .b:hover,.mo-map .b:focus{transform:scale(1.12);outline:none}
.mo-map .b.peak circle.c{fill:var(--mo2);fill-opacity:.9;stroke:#fff;stroke-width:1.2}
.mo-map .b.open circle.c{fill:#7FC8BD;fill-opacity:.75;stroke:#E3F4F0;stroke-width:1}
.mo-map .b.closed circle.c{fill:none;stroke:rgba(233,224,206,.35);stroke-width:1;stroke-dasharray:2 2.5}
.mo-map .b.peak circle.h{fill:none;stroke:var(--mo2);stroke-width:1.5;opacity:0;animation:mo-ping 2.8s ease-out infinite;animation-delay:var(--d,0s)}
@keyframes mo-ping{0%{opacity:.8;r:var(--r0)}100%{opacity:0;r:calc(var(--r0) * 2.1)}}
.mo-map .lbl{font:600 12px var(--ui);fill:#F6EFE2;paint-order:stroke;stroke:#0A121C;stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.mo-map .lbl.closed{fill:rgba(233,224,206,.45);font-weight:500;font-size:10.5px}
.mo-map .b{opacity:0;animation:mo-in .6s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 60ms + .2s)}
@keyframes mo-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.mo-map .b{animation:none;opacity:1}.mo-map .b.peak circle.h{display:none}}
.mo-tip{position:absolute;pointer-events:none;z-index:3;max-width:260px;padding:10px 12px;border-radius:12px;background:#FFF8EC;color:#1B1510;font:500 13.5px/1.4 var(--ui);box-shadow:0 18px 40px -18px rgba(0,0,0,.7);transform:translate(-50%,calc(-100% - 14px));opacity:0;transition:opacity .15s}
.mo-tip.on{opacity:1}
.mo-tip b{display:block;font-size:14.5px;margin-bottom:2px}
.mo-tip span{color:#6B5B45}
.mo-legend{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin:16px 4px 0;font:500 13.5px var(--ui);color:#CBBFB0}
.mo-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:-1px}
.mo-legend .lp{background:var(--mo2)}
.mo-legend .lo{background:#7FC8BD}
.mo-legend .lc{border:1px dashed rgba(233,224,206,.5)}
.mo-legend a{margin-left:auto;color:var(--gold2);font-weight:600}

/* region cards */
.mo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.mo-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px 24px 20px;border-radius:18px;background:#fff;border:1px solid #E8E0CF;box-shadow:0 24px 50px -40px rgba(18,14,21,.8);scroll-margin-top:120px;transition:transform .3s,box-shadow .3s}
.mo-card:hover{transform:translateY(-3px);box-shadow:0 30px 60px -40px rgba(18,14,21,.9)}
.mo-card.peak{background:linear-gradient(180deg,color-mix(in srgb,var(--mo2) 14%,#fff),#fff 55%);border-color:color-mix(in srgb,var(--mo2) 55%,#E8E0CF)}
.mo-card:target{box-shadow:0 0 0 3px var(--mo2),0 30px 60px -40px rgba(18,14,21,.9)}
.mo-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font:700 11px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase}
.mo-badge.peak{background:#1B1510;color:var(--mo2)}
.mo-badge.open{background:#E3F2EE;color:#1F5C55}
.mo-badge.peak:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mo2);box-shadow:0 0 0 3px color-mix(in srgb,var(--mo2) 35%,transparent)}
.mo-card h3{margin:2px 0 0;font:600 30px/1.05 var(--serif);color:#14110C}
.mo-card .se{margin:0;font:600 13px/1.4 var(--ui);color:#8A6A2F;letter-spacing:.02em}
.mo-card .why{margin:0;font-size:16.5px;line-height:1.55;color:#3B342C}
.mo-card .hl{margin:0;font:500 13.5px/1.5 var(--ui);color:#6B6155}
.mo-yr{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;margin:4px 0 2px}
.mo-yr span{height:7px;border-radius:2px;background:#EDE6D6}
.mo-yr span.o{background:#9FD3CA}
.mo-yr span.p{background:#D2A64D}
.mo-yr span.now{outline:2px solid #14110C;outline-offset:1px}
.mo-yrk{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;font:600 9.5px/1 var(--ui);color:#9A8F80;text-align:center;letter-spacing:.04em}
.mo-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}
.mo-acts a{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;font:600 13.5px var(--ui);text-decoration:none;border:1px solid #D9CFBA;color:#2A241C}
.mo-acts a:first-child{background:#14110C;border-color:#14110C;color:#FFF8EC}
.mo-acts a:hover{border-color:#14110C}
.mo-also{margin-top:46px}
.mo-also h3.rv-h3{margin-bottom:16px}
.mo-cards.sm .mo-card{padding:20px}
.mo-cards.sm .mo-card h3{font-size:25px}

/* rivers */
.mo-rivers{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.mo-river{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;border-radius:16px;background:rgba(255,248,236,.05);border:1px solid rgba(233,207,148,.2);color:#EFE7DA;text-decoration:none;transition:background .25s,border-color .25s}
.mo-river:hover{background:rgba(255,248,236,.09);border-color:rgba(233,207,148,.45)}
.mo-river b{font:600 23px/1.1 var(--serif);color:#FFF8EC}
.mo-river small{font:600 11px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--gold2)}
.mo-river small.o{color:#9FD3CA}
.mo-river span{font-size:14.5px;line-height:1.5;color:#CBBFB0}
.mo-river .mo-yr span{background:rgba(255,255,255,.1)}
.mo-river .mo-yr span.o{background:#5FA79C}
.mo-river .mo-yr span.p{background:#D2A64D}
.mo-river .mo-yr span.now{outline-color:#FFF8EC}

/* season calendar */
.mo-cal-wrap{overflow-x:auto;border-radius:16px;border:1px solid #E5DCC9;background:#fff;-webkit-overflow-scrolling:touch}
.mo-cal{border-collapse:separate;border-spacing:0;width:100%;min-width:760px;font:500 14px var(--ui)}
.mo-cal th,.mo-cal td{padding:0;text-align:center;border-bottom:1px solid #F0EADD}
.mo-cal thead th{padding:12px 4px;font:700 11.5px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:#8E8474;position:sticky;top:0;background:#fff}
.mo-cal thead th a{color:inherit;text-decoration:none;display:block;padding:4px 0;border-radius:8px}
.mo-cal thead th a:hover{background:#F3EDE0;color:#14110C}
.mo-cal thead th.now a{background:#14110C;color:var(--mo2)}
.mo-cal tbody th{position:sticky;left:0;z-index:1;background:#fff;text-align:left;padding:10px 14px;font:600 14.5px var(--ui);color:#2A241C;white-space:nowrap;min-width:190px}
.mo-cal tbody th a{color:inherit;text-decoration:none}
.mo-cal tbody th a:hover{text-decoration:underline}
.mo-cal tbody tr.rv th{color:#5C5246;font-weight:500}
.mo-cal td i{display:block;height:22px;margin:6px 2px;border-radius:5px;background:#F2ECDF}
.mo-cal td.o i{background:#A9D8CF}
.mo-cal td.p i{background:#D6AC55}
.mo-cal td.now{background:color-mix(in srgb,var(--mo2) 16%,#fff)}
.mo-cal tbody tr:hover th,.mo-cal tbody tr:hover td{background:#FBF7EE}
.mo-cal tbody tr:hover td.now{background:color-mix(in srgb,var(--mo2) 26%,#fff)}
.mo-cal tr.sep th{padding:14px 14px 6px;font:700 11px/1 var(--ui);letter-spacing:.16em;text-transform:uppercase;color:#9A7A3F;background:#FBF8F1}
.mo-cal-key{display:flex;flex-wrap:wrap;gap:16px;margin:14px 2px 0;font:500 13.5px var(--ui);color:#6B6155}
.mo-cal-key i{display:inline-block;width:18px;height:10px;border-radius:3px;margin-right:7px;vertical-align:0}

/* next month */
.mo-next-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:20px 22px;border-radius:16px;background:#14110C;color:#FFF8EC;text-decoration:none;transition:transform .25s}
.mo-next-card:hover{transform:translateX(4px)}
.mo-next-card b{font:600 26px/1.1 var(--serif)}
.mo-next-card span{font:600 13px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--mo2)}

@media (max-width:760px){
 .mo-strip-in{padding:12px 16px}
 .mo-cards{grid-template-columns:1fr}
 .mo-legend a{margin-left:0}
 .mo-card h3{font-size:27px}
 .mo-map{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
 .mo-map::-webkit-scrollbar{display:none}
 .mo-map svg{width:820px;max-width:none}
 .mo-map .lbl{font-size:13px}
 .mo-pan{display:block;margin:10px 4px 0;font:500 12.5px var(--ui);color:#A99B86}
}
.mo-cal tr.sep th{position:sticky;left:0}
@media (max-width:760px){.mo-cal tbody th{min-width:148px;padding:10px 10px;font-size:13.5px}}

/* v248: direct answer, sub-areas, ports, filters, comparer */
.mo-answer{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0 10px}
.mo-answer-col{padding:18px 18px 14px;border-radius:16px;background:#fff;border:1px solid #E8E0CF}
.mo-answer-col.peak{background:linear-gradient(180deg,color-mix(in srgb,var(--mo2) 18%,#fff),#fff);border-color:color-mix(in srgb,var(--mo2) 60%,#E8E0CF)}
.mo-answer-col.river{background:#F3F7F6;border-color:#CFE3DE}
.mo-answer-col h3{margin:0 0 10px;font:700 11.5px/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#6B5B45}
.mo-answer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mo-answer-col li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font:500 15px/1.35 var(--ui)}
.mo-answer-col li a{color:#14110C;text-decoration:none;border-bottom:1px solid rgba(20,17,12,.25)}
.mo-answer-col li a:hover{border-color:#14110C}
.mo-answer-col li span{font:500 12px/1.2 var(--ui);color:#8A6A2F}
.mo-answer-col p{margin:0;font:400 14.5px/1.5 var(--ui);color:#5C5246}
.mo-asof{margin:14px 0 0!important;font:500 13.5px/1.5 var(--ui)!important;color:#8E8474!important}
.mo-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mo-tag{font:600 12px/1 var(--ui);letter-spacing:.04em;color:#3B342C;padding:6px 10px;border-radius:999px;background:#F2ECDF}
.mo-subs{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:6px}
.mo-subs li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;padding:8px 10px;border-radius:10px;background:#F8F4EA;font:400 13.5px/1.4 var(--ui);color:#4A4237;border-left:3px solid #D9CFBA}
.mo-subs li.peak{border-left-color:#D2A64D;background:color-mix(in srgb,var(--mo2) 16%,#fff)}
.mo-subs li.open{border-left-color:#8FCFC4}
.mo-subs li.closed{opacity:.6}
.mo-subs li b{font:600 13.5px/1.3 var(--ui);color:#14110C}
.mo-subs li span{flex:1 1 160px;min-width:0}
.mo-subs li b:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:7px;vertical-align:1px;background:#CFC6B3}
.mo-subs li.peak b:after{background:#D2A64D}
.mo-subs li.open b:after{background:#5FA79C}
.mo-ports{margin:0;font:400 13.5px/1.6 var(--ui);color:#4A4237}
.mo-ports .k{display:inline-block;margin-right:8px;font:700 10.5px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#9A7A3F;vertical-align:1px}
.mo-ports a{color:#14110C;text-decoration:none;border-bottom:1px solid rgba(20,17,12,.2)}
.mo-ports a:hover{border-color:#14110C}
.mo-acts a.aff{border-style:dashed;color:#6B5B45;gap:6px}
.mo-acts a.aff svg{width:11px;height:11px}
.mo-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #E8E0CF}
.mo-filter-k{font:700 11px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#9A7A3F;margin-right:4px}
.mo-filter button{appearance:none;border:1px solid #D9CFBA;background:#fff;color:#2A241C;font:600 13px var(--ui);padding:8px 13px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.mo-filter button:hover{border-color:#14110C}
.mo-filter button.on{background:#14110C;border-color:#14110C;color:#FFF8EC}
.mo-card.hide{display:none}
.mo-cards.sm.empty:after{content:"Nothing in this view. Clear the filter above.";font:500 14px var(--ui);color:#8E8474}
.mo-cmp{margin-top:34px;padding:24px;border-radius:18px;background:#14110C;color:#EFE7DA}
.mo-cmp-h{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:14px}
.mo-cmp-h .rv-kicker{margin:0;color:var(--mo2);flex:0 0 100%}
.mo-cmp-h h3{margin:0;font:600 26px/1.1 var(--serif);color:#FFF8EC;flex:1 1 auto}
.mo-cmp-h label{font:500 14px var(--ui);color:#CBBFB0}
.mo-cmp-h select{appearance:none;background:#FFF8EC;color:#14110C;border:0;border-radius:999px;padding:9px 36px 9px 14px;font:600 14px var(--ui);background-image:linear-gradient(45deg,transparent 50%,#14110C 50%),linear-gradient(135deg,#14110C 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.mo-cmp-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.mo-cmp-out div{padding:14px 16px;border-radius:12px;background:rgba(255,248,236,.06);border:1px solid rgba(233,207,148,.18)}
.mo-cmp-out h4{margin:0 0 8px;font:700 11px/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--mo2)}
.mo-cmp-out ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;font:500 14px/1.4 var(--ui);color:#EFE7DA}
.mo-cmp-out p{margin:0;font:400 14px/1.5 var(--ui);color:#CBBFB0}
.mo-cmp-out a.go{display:inline-flex;align-items:center;margin-top:10px;color:var(--mo2);font:600 13.5px var(--ui);text-decoration:none}
@media (max-width:900px){.mo-answer{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.mo-answer{grid-template-columns:1fr}.mo-filter{gap:6px}.mo-filter button{padding:7px 11px;font-size:12.5px}.mo-filter-k[style]{margin-left:0!important;flex:0 0 100%;margin-top:4px}}
