/* JEDNA ODRA — style strony: wyjazdy */
/* Upcoming + map split */
  /* section., bo ticker w hero ma wlasne .upcoming/.past i lapal to tlo */
  section.upcoming{background:var(--cream)}
  .upcoming-grid{
    display:grid;grid-template-columns:1.4fr 1fr;gap:40px;
  }

  .trips-list{display:flex;flex-direction:column;gap:14px}
  .trip-card{
    background:#fff;
    border:1px solid var(--line-dark);
    border-radius:var(--radius);
    padding:24px 30px;
    display:grid;grid-template-columns:90px 1fr auto auto;
    gap:24px;align-items:center;
    transition:border-color .3s, transform .3s;
  }
  .trip-card:hover{
    border-color:var(--red);
    transform:translateX(6px);
  }
  .trip-date{
    text-align:center;
    border-right:1px dashed var(--line-dark);
    padding-right:20px;
  }
  .trip-day{
    font-family:var(--font-display);font-size:2.4rem;
    line-height:1;color:var(--navy-900);
  }
  .trip-month{
    font-size:0.7rem;letter-spacing:0.18em;
    text-transform:uppercase;font-weight:700;
    color:var(--red);margin-top:4px;
  }
  .trip-info h5{
    font-family:var(--font-display);font-size:1.3rem;
    letter-spacing:0.02em;color:var(--navy-900);margin-bottom:4px;
  }
  .trip-info span{
    font-size:0.82rem;color:var(--muted);
  }
  .trip-info .trip-meta{
    display:flex;gap:14px;margin-top:6px;font-size:0.75rem;
  }
  .trip-info .trip-meta b{
    font-family:var(--font-display);font-size:0.95rem;
    letter-spacing:0.04em;color:var(--navy-900);font-weight:400;margin-right:6px;
  }
  .trip-status{
    padding:6px 14px;
    border-radius:30px;
    font-size:0.7rem;font-weight:700;
    letter-spacing:0.14em;text-transform:uppercase;
  }
  .status-open{background:rgba(34,139,87,0.12);color:#2A8B5A}
  .status-few{background:rgba(215,154,38,0.15);color:#B8821A}
  .status-closed{background:rgba(150,150,150,0.15);color:#7B7B7B}
  .status-soon{background:rgba(11,31,58,0.1);color:var(--navy-900)}
  .trip-cta{
    color:var(--navy-900);font-weight:700;font-size:0.74rem;
    letter-spacing:0.14em;text-transform:uppercase;
    padding:10px 16px;
    border:1px solid var(--navy-900);
    border-radius:var(--radius-sm);
    transition:all .25s;
  }
  .trip-cta:hover{background:var(--navy-900);color:#fff}
  .trip-card.disabled .trip-cta{opacity:0.4;pointer-events:none}

  /* Map */
  .trip-map{
    background:var(--navy-900);
    border-radius:var(--radius);
    padding:36px;
    color:#fff;
    position:relative;
    overflow:hidden;
    height:fit-content;
    position:sticky;top:90px;
  }
  .trip-map h4{
    font-family:var(--font-display);font-size:1.5rem;
    margin-bottom:8px;
  }
  .trip-map h4 em{font-family:var(--font-editorial);font-style:italic;color:var(--red-bright);font-weight:400}
  .trip-map > p{
    font-size:0.85rem;color:#9DB1D8;margin-bottom:24px;
  }
  .map-svg{width:100%;height:auto;display:block;margin-bottom:20px}
  /* Opole pulsuje jako miasto domowe. Domyślnie pierścienie są niewidoczne —
     bez animacji (reduce-motion) zostaje sama statyczna poświata, zamiast
     dwóch obwódek zawieszonych na środku. transform-box:fill-box sprawia,
     że skala liczy się od środka okręgu, nie od rogu viewBoxa. */
  .map-pulse{
    transform-box:fill-box;
    transform-origin:center;
    opacity:0;
  }
  @media (prefers-reduced-motion:no-preference){
    .map-pulse{animation:jo-map-pulse 2.6s cubic-bezier(.25,.6,.35,1) infinite}
    .map-pulse-b{animation-delay:1.3s}
  }
  @keyframes jo-map-pulse{
    0%   {transform:scale(.9);  opacity:.85}
    70%  {transform:scale(2.4); opacity:.12}
    100% {transform:scale(2.7); opacity:0}
  }

  .map-legend{
    display:flex;flex-direction:column;gap:10px;
    font-size:0.8rem;
  }
  .legend-item{display:flex;align-items:center;gap:10px;color:#C8D5EC}
  .legend-dot{
    width:10px;height:10px;border-radius:50%;
    flex-shrink:0;
  }
  .legend-dot.home{background:var(--red-bright)}
  .legend-dot.away{background:#fff}
  .legend-dot.upcoming{background:#FFB800}

  /* Past trips */
  section.past{background:var(--paper)}
  .past-list{
    display:grid;grid-template-columns:repeat(3, 1fr);gap:14px;
  }
  .past-card{
    background:#fff;
    border:1px solid var(--line-dark);
    border-radius:var(--radius);
    padding:22px 26px;
  }
  .past-card-head{
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:12px;
  }
  .past-date{
    font-size:0.7rem;letter-spacing:0.18em;
    color:var(--muted);text-transform:uppercase;font-weight:600;
  }
  .past-attendance{
    font-family:var(--font-display);font-size:1.2rem;
    color:var(--red);letter-spacing:0.04em;
  }
  .past-card h5{
    font-family:var(--font-display);font-size:1.15rem;
    letter-spacing:0.02em;color:var(--navy-900);margin-bottom:8px;
    line-height:1.1;
  }
  .past-result{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:12px;
    border-top:1px dashed var(--line-dark);
    font-size:0.85rem;color:var(--muted);
  }
  .past-link{
    color:var(--red);font-weight:700;font-size:0.72rem;
    letter-spacing:0.14em;text-transform:uppercase;
  }

  /* Info for newcomers */
  .newcomers{background:var(--navy-900);color:#fff}
  .newcomers .section-title{color:#fff}
  .newcomers .section-num{color:var(--red-bright)}
  .newcomers .section-lead{color:#9DB1D8}
  .nc-grid{
    display:grid;grid-template-columns:repeat(3, 1fr);gap:30px;
  }
  .nc-step{
    background:rgba(255,255,255,0.03);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:32px 28px;
    transition:transform .3s, border-color .3s;
  }
  .nc-step:hover{transform:translateY(-4px);border-color:var(--red)}
  .nc-step-num{
    font-family:var(--font-display);font-size:3rem;
    color:var(--red-bright);line-height:1;margin-bottom:14px;
  }
  .nc-step h4{
    font-family:var(--font-display);font-size:1.3rem;
    letter-spacing:0.02em;color:#fff;margin-bottom:10px;
  }
  .nc-step p{
    color:#C8D5EC;font-size:0.92rem;line-height:1.6;margin-bottom:14px;
  }
  .nc-step ul{
    list-style:none;
  }
  .nc-step li{
    color:#9DB1D8;font-size:0.86rem;
    padding:6px 0;display:flex;align-items:flex-start;gap:10px;
    border-bottom:1px solid var(--line);
  }
  .nc-step li:last-child{border-bottom:none}
  .nc-step li::before{
    content:"→";color:var(--red-bright);flex-shrink:0;
  }

  @media (max-width:1024px){
    .upcoming-grid{grid-template-columns:1fr}
    .trip-map{position:static}
    .past-list{grid-template-columns:1fr 1fr}
    .nc-grid{grid-template-columns:1fr}
  }
  @media (max-width:680px){
    .trip-card{grid-template-columns:1fr;gap:14px}
    .trip-date{border-right:none;border-bottom:1px dashed var(--line-dark);padding:0 0 12px;text-align:left;display:flex;align-items:baseline;gap:12px}
    .past-list{grid-template-columns:1fr}
  }
