/* [hub_porty] — port guides. Built on weather.css (same page layout, tables,
   map frame); only the guide's own parts are here. */
.hub-cs-pt-summary { margin: 0 0 1.5em; padding: 1em 1.25em; border: 1px solid color-mix(in srgb, currentColor 15%, transparent); border-left: 4px solid var(--hub-cs-accent, currentColor); border-radius: 10px; }
.hub-cs-pt-summary h2 { font-size: 1em; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .5em; opacity: .8; }
.hub-cs-pt-summary dl { margin: 0; display: grid; gap: .4em; }
.hub-cs-pt-summary dl > div { display: grid; grid-template-columns: 11em 1fr; gap: .75em; }
.hub-cs-pt-summary dt { font-weight: 600; }
.hub-cs-pt-summary dd { margin: 0; }
.hub-cs-pt-reminder { margin: 0 0 1.5em; padding: .75em 1em; border-radius: 8px; background: color-mix(in srgb, var(--hub-cs-accent, currentColor) 10%, transparent); font-weight: 600; }
.hub-cs-pt-attractions { margin: 0 0 1.5em; padding-left: 1.5em; display: grid; gap: .6em; }
.hub-cs-pt-attractions .hub-cs-wx-country { display: inline; }
.hub-cs-pt-blurb { margin: .2em 0 0; font-size: .95em; line-height: 1.45; }
.hub-cs-pt-popup-text { display: block; margin-top: .3em; font-size: .9em; line-height: 1.4; }
.hub-cs-pt-airports { margin: 0 0 1.5em; padding-left: 1.25em; }
.hub-cs-pt-list { margin: 0; padding-left: 1.1em; }
.hub-cs-pt-pin { background: none; border: 0; }
.hub-cs-pt-pin span { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 4px; border-radius: 999px; font: 700 13px/1 system-ui, sans-serif; background: #fff; color: #1a1a1a; border: 2px solid var(--hub-cs-accent, #1f6feb); box-shadow: 0 1px 4px rgba(0, 0, 0, .3); }
.hub-cs-pt-pin.is-port span { background: var(--hub-cs-accent, #1f6feb); color: #fff; font-size: 15px; }
@media (max-width: 640px) {
    .hub-cs-pt-summary dl > div { grid-template-columns: 1fr; gap: 0; }
}
.hub-cs-pt-hero { margin: 0 0 1em; }
.hub-cs-pt-hero-img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: cover; border-radius: 12px; }
/* "Ile masz czasu?" - sightseeing routes under the map (Hub_CS_Port_Tours, ports.js) */
.hub-cs-pt-tours { margin: 0 0 1.75em; }
.hub-cs-pt-tours h2 { margin-top: 0; }
.hub-cs-pt-tour-buttons { display: flex; flex-wrap: wrap; gap: .5em; margin: 0 0 1em; }
.hub-cs-pt-tour-btn { appearance: none; cursor: pointer; padding: .55em 1.1em; border-radius: 999px; border: 2px solid var(--hub-cs-accent, #1f6feb); background: transparent; color: inherit; font: inherit; font-weight: 600; line-height: 1.2; }
.hub-cs-pt-tour-btn[aria-pressed="true"] { background: var(--hub-cs-accent, #1f6feb); color: #fff; }
.hub-cs-pt-tour-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--hub-cs-accent, #1f6feb) 45%, transparent); outline-offset: 2px; }
.hub-cs-pt-tour-sum { margin: 0 0 .75em; }
.hub-cs-pt-tour-steps { list-style: none; margin: 0 0 .75em; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .4em .5em; }
.hub-cs-pt-tour-stop { max-width: 100%; box-sizing: border-box; display: inline-flex; align-items: center; gap: .45em; padding: .35em .75em .35em .4em; border-radius: 999px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.hub-cs-pt-tour-n { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 4px; border-radius: 999px; font: 700 13px/1 system-ui, sans-serif; background: #fff; color: #1a1a1a; border: 2px solid var(--hub-cs-accent, #1f6feb); }
.hub-cs-pt-tour-stop.is-port .hub-cs-pt-tour-n { background: var(--hub-cs-accent, #1f6feb); color: #fff; }
.hub-cs-pt-tour-time { font-size: .9em; opacity: .75; white-space: nowrap; }
.hub-cs-pt-tour-leg { font-size: .85em; opacity: .75; white-space: nowrap; }
.hub-cs-pt-tour-leg::before { content: "→ "; }
.hub-cs-pt-tour-leg::after { content: " →"; }
.hub-cs-pt-pin.is-off { opacity: .3; }
.hub-cs-pt-pin.is-off span { border-color: #888; }
.hub-cs-pt-pin.is-on span { transition: transform .25s ease, background .25s ease, color .25s ease; }
.hub-cs-pt-pin.is-reached span { background: var(--hub-cs-accent, #1f6feb); color: #fff; animation: hub-cs-pt-reach .5s ease; }
@keyframes hub-cs-pt-reach { 50% { transform: scale(1.35); } }
@media (prefers-reduced-motion: reduce) { .hub-cs-pt-pin.is-reached span { animation: none; } }
@media (max-width: 640px) {
    .hub-cs-pt-tour-steps { flex-direction: column; align-items: flex-start; }
    .hub-cs-pt-tour-leg { padding-left: 1.6em; }
    .hub-cs-pt-tour-leg::before { content: "↓ "; }
    .hub-cs-pt-tour-leg::after { content: none; }
}
.hub-cs-wx-map-wrap .hub-cs-pt-map-caption { margin: 0 0 .4em; }
