/* Toiminta-alue 2.0: abstract route illustration, not calculated map geometry. */
.internal-page--area .page-hero-media { background:#142b33; overflow:hidden; }
.internal-page--area .page-hero-media::before,.internal-page--area .page-hero-media::after { display:none; }
.internal-page--area .page-hero-media .route-map { min-height:320px; height:100%; border:0; border-radius:0; }
.area-composer { background:#f1f6f4; }
.area-section-head { max-width:780px; margin-bottom:36px; }
.area-section-head h2 { margin:13px 0 12px; }
.area-section-head > p:last-child { max-width:650px; color:var(--vmk-muted); }
.area-composer__layout { display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr); align-items:start; gap:clamp(20px,3vw,42px); }
.area-route-form { display:grid; gap:22px; min-width:0; padding:clamp(22px,3vw,38px); background:#fff; border:1px solid #d7e2de; }
.area-route-form fieldset { margin:0; padding:0; border:0; min-width:0; }
.area-route-form fieldset + fieldset { padding-top:22px; border-top:1px solid #d7e2de; }
.area-route-form legend { width:100%; margin:0 0 18px; color:#142b33; font-size:1.16rem; font-weight:850; }
.area-route-form legend span { margin-right:9px; color:var(--vmk-green-strong); font-size:.71rem; letter-spacing:.12em; }
.area-route-form__fields,.area-route-form__last { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.area-route-form__wide { grid-column:1 / -1; }
.area-route-form label { display:block; margin-bottom:7px; color:#21383d; font-size:.78rem; font-weight:800; }
.area-route-form label > span { color:var(--vmk-green-strong); }
.area-route-form label small { color:#6b7d7e; font-size:.71rem; font-weight:500; }
.area-route-form input,.area-route-form select { width:100%; min-width:0; min-height:48px; padding:11px 13px; color:#142b33; background:#f9fbfa; border:1px solid #cddbd6; border-radius:3px; font:inherit; font-size:.9rem; }
.area-route-form input:focus-visible,.area-route-form select:focus-visible,.area-route-form button:focus-visible,.area-final button:focus-visible { outline:3px solid var(--vmk-green); outline-offset:2px; }
.area-route-form input::placeholder { color:#859693; }
.area-route-form__last { padding-top:22px; border-top:1px solid #d7e2de; }
.area-route-form__submit { justify-self:start; }
.area-route-form__note { margin:-8px 0 0; max-width:480px; color:#647572; font-size:.76rem; line-height:1.5; }
.area-route-stage { position:sticky; top:105px; min-width:0; overflow:hidden; background:#11272e; color:#fff; border-top:3px solid var(--vmk-green); }
.area-route-stage__heading { display:flex; justify-content:space-between; gap:16px; padding:22px 25px 0; color:#9dcbb3; font-size:.62rem; font-weight:850; letter-spacing:.13em; }
.route-map { position:relative; min-width:0; background:radial-gradient(circle at 51% 38%,#24434b 0,#132c34 60%,#10252d 100%); color:#d7e8e1; overflow:hidden; }
.route-map__topline,.route-map__legend { position:absolute; right:5%; left:5%; display:flex; justify-content:space-between; gap:15px; font-size:.61rem; font-weight:850; letter-spacing:.12em; color:#88bda5; z-index:1; }
.route-map__topline { top:17px; }
.route-map__legend { bottom:13px; }
.route-map__legend span { display:flex; align-items:center; gap:7px; }
.route-map__legend i { display:block; width:7px; height:7px; background:#70d68c; border-radius:50%; }
.route-map svg { display:block; width:100%; height:auto; max-height:530px; }
.route-map__region { fill:#2c4a4c; stroke:#51716d; stroke-width:2; }
.route-map__coast { fill:none; stroke:#8fb2a4; stroke-opacity:.45; stroke-width:2; stroke-dasharray:5 9; }
.route-map__road { fill:none; stroke:#98bcb1; stroke-opacity:.25; stroke-width:2; }
.route-map__corridor { fill:none; stroke:#79d791; stroke-opacity:.38; stroke-width:5; stroke-linecap:round; stroke-dasharray:12 11; transition:stroke-opacity .18s,stroke-width .18s,stroke-dasharray .18s; }
.route-map.has-origin.has-destination .route-map__corridor { stroke-opacity:1; stroke-dasharray:none; }
.route-map__halo { fill:#6ed889; opacity:.12; }
.route-map__pin { fill:#6ed889; }
.route-map__origin,.route-map__destination { opacity:.28; transition:opacity .18s; }
.route-map.has-origin .route-map__origin,.route-map.has-destination .route-map__destination { opacity:1; }
.route-map text { fill:#103027; font-size:11px; font-weight:900; font-family:Arial,sans-serif; }
.route-map__stops { fill:#98dfac; opacity:0; transition:opacity .18s; }
.route-map[data-service="jakelu"] .route-map__stops { opacity:1; }
.route-map[data-service="rahti"] .route-map__corridor { stroke-width:8; }
.route-map[data-service="kuriiri-express"] .route-map__corridor { stroke-width:4; stroke:#a6fcb2; }
.route-map[data-service="muutto"] .route-map__halo { opacity:.35; }
.route-map[data-service="alihankinta"] .route-map__corridor { stroke-width:9; stroke-opacity:.65; }
.area-route-stage .route-map__topline { display:none; }
.area-route-stage__summary { display:grid; gap:6px; padding:22px 25px 26px; border-top:1px solid #456062; }
.area-route-stage__summary strong { color:#fff; font-size:1.04rem; overflow-wrap:anywhere; }
.area-route-stage__summary span { color:#abc6bc; font-size:.78rem; }
.area-coverage { background:#fff; }
.area-coverage__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.85fr); gap:clamp(28px,5vw,80px); align-items:start; }
.area-coverage__layout > div:first-child { max-width:670px; }
.area-coverage h2 { margin:14px 0 20px; }
.area-coverage p:not(.eyebrow) { color:var(--vmk-muted); }
.area-coverage__rail { border-top:3px solid var(--vmk-green); }
.area-coverage__rail > div { display:grid; grid-template-columns:155px 1fr; align-items:center; gap:15px; padding:23px 0; border-bottom:1px solid #d7e2de; }
.area-coverage__rail small { color:var(--vmk-green-strong); font-size:.62rem; font-weight:900; letter-spacing:.1em; }
.area-coverage__rail strong { color:#172d33; font-size:.95rem; }
.area-services { background:#edf3f0; }
.area-services__list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:34px; border-top:3px solid var(--vmk-green); border-bottom:1px solid #cddbd6; }
.area-services__list > div { padding:23px 20px 19px; border-right:1px solid #cddbd6; }
.area-services__list > div:last-child { border-right:0; }
.area-services__list span { color:var(--vmk-green-strong); font-size:.66rem; font-weight:900; letter-spacing:.06em; }
.area-services__list p { margin:17px 0 0; color:#405654; font-size:.86rem; line-height:1.5; }
.area-questions { background:#fff; }
.area-questions__layout { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(30px,5vw,80px); }
.area-questions h2 { margin-top:14px; }
.area-questions details { border-top:1px solid #d0dcd7; }
.area-questions details:last-child { border-bottom:1px solid #d0dcd7; }
.area-questions summary { position:relative; padding:21px 32px 21px 0; color:#173039; font-weight:800; cursor:pointer; list-style:none; }
.area-questions summary::-webkit-details-marker { display:none; }
.area-questions summary::after { content:"+"; position:absolute; right:3px; top:18px; color:var(--vmk-green-strong); font-size:1.3rem; }
.area-questions details[open] summary::after { content:"−"; }
.area-questions details p { margin:0 0 22px; max-width:600px; color:var(--vmk-muted); }
.area-final { background:#162e36; color:#fff; }
.area-final__inner { display:flex; justify-content:space-between; align-items:center; gap:32px; }
.area-final h2 { margin:10px 0 12px; color:#fff; }
.area-final p:not(.eyebrow) { margin:0; color:#bfd3ca; }
.area-final .button { flex:none; }
@media (max-width:1023px) {
  .area-composer__layout { grid-template-columns:1fr; }
  .area-route-stage { position:static; }
  .area-services__list { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .area-services__list > div { border-bottom:1px solid #cddbd6; }
}
@media (max-width:767px) {
  .internal-page--area .page-hero-media .route-map { min-height:0; }
  .area-composer__layout,.area-coverage__layout,.area-questions__layout { grid-template-columns:1fr; }
  .area-route-stage { order:2; }
  .area-route-form { order:1; }
  .area-services__list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .area-coverage__rail > div { grid-template-columns:130px 1fr; }
  .area-final__inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width:479px) {
  .area-route-form__fields,.area-route-form__last,.area-services__list { grid-template-columns:1fr; }
  .area-route-form__wide { grid-column:auto; }
  .area-route-form { padding:21px; }
  .area-route-form__submit,.area-final .button { width:100%; justify-content:center; }
  .area-services__list > div { border-right:0; }
  .area-coverage__rail > div { grid-template-columns:1fr; gap:5px; }
  .area-route-stage__heading { font-size:.54rem; }
  .route-map__legend { font-size:.5rem; }
}
@media (prefers-reduced-motion:reduce) {
  .route-map__corridor,.route-map__origin,.route-map__destination,.route-map__stops { transition:none; }
}
