{"id":651,"date":"2023-05-11T11:56:09","date_gmt":"2023-05-11T11:56:09","guid":{"rendered":"https:\/\/puttgardenrodby.nl\/?page_id=651"},"modified":"2026-06-15T09:37:46","modified_gmt":"2026-06-15T09:37:46","slug":"tidtabell","status":"publish","type":"page","link":"https:\/\/rostockgedser.com\/se\/tidtabell\/","title":{"rendered":"Tidtabell"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"651\" class=\"elementor elementor-651\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1cf6aa8b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1cf6aa8b\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6579064\" data-id=\"6579064\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2631d984 elementor-widget elementor-widget-breadcrumbs\" data-id=\"2631d984\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/rostockgedser.com\/se\/\">Home<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-d7f6708\" data-id=\"d7f6708\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d814351 elementor-align-right elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"d814351\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;mobile&quot;],&quot;sticky_offset&quot;:8,&quot;sticky_effects_offset_mobile&quot;:0,&quot;_animation_mobile&quot;:&quot;fadeIn&quot;,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md elementor-animation-shrink\" href=\"https:\/\/rostockgedser.com\/se\/go\/button-home\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Priser och biljetter<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-348d881 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"348d881\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-2e117c7\" data-id=\"2e117c7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-18585c6 elementor-widget elementor-widget-heading\" data-id=\"18585c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Rostock Gedser avg\u00e5ngar och tidtabell<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f7a509 elementor-widget elementor-widget-text-editor\" data-id=\"8f7a509\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tKontrollera tidtabellen f\u00f6r f\u00e4rjan<strong> Rostock Gedser<\/strong> f\u00f6r i dag, i morgon eller ett senare resedatum. P\u00e5 den h\u00e4r sidan hittar du ocks\u00e5 avg\u00e5ngstider f\u00f6r f\u00e4rjan Gedser Rostock i motsatt riktning.\n<div class=\"rg-info-grid\">\n  <div class=\"rg-info-card\"><span class=\"rg-card-label\">Rutt<\/span><span class=\"rg-card-title\">Rostock \u21c4 Gedser<\/span><span class=\"rg-card-text\">Tyskland till Danmark<\/span><\/div>\n\n  <div class=\"rg-info-card\"><span class=\"rg-card-label\">Rederi<\/span><span class=\"rg-card-title\">Scandlines<\/span><span class=\"rg-card-text\">Avg\u00e5ngar i b\u00e5da riktningarna<\/span><\/div>\n\n  <div class=\"rg-info-card\"><span class=\"rg-card-label\">F\u00e4rjetid<\/span><span class=\"rg-card-title\">Cirka 2 timmar<\/span><span class=\"rg-card-text\">Cirka 52 km \u00f6ver \u00d6stersj\u00f6n<\/span><\/div>\n\n  <div class=\"rg-info-card\"><span class=\"rg-card-label\">Check-in<\/span><span class=\"rg-card-title\">Minst 15 minuter<\/span><span class=\"rg-card-text\">Kom tidigare vid mycket trafik<\/span><\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf0b35a elementor-widget elementor-widget-heading\" data-id=\"cf0b35a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Avg\u00e5ngar Rostock Gedser<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da18189 elementor-widget elementor-widget-text-editor\" data-id=\"da18189\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>V\u00e4lj ett resedatum och kontrollera aktuella avg\u00e5ngstider f\u00f6r f\u00e4rjan fr\u00e5n Rostock till Gedser.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-522e132 elementor-widget elementor-widget-shortcode\" data-id=\"522e132\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"tp-wrap tp-theme-extended_cards tp-day-setup-modern\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-json\\\/timetables-pro\\\/v1\\\/timetables&quot;,&quot;route&quot;:204,&quot;days&quot;:1,&quot;autoload&quot;:true,&quot;theme&quot;:&quot;extended_cards&quot;,&quot;daySetup&quot;:&quot;modern&quot;,&quot;limit10&quot;:true,&quot;label&quot;:&quot;Rostock till Gedser&quot;,&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Datum&quot;,&quot;ui_days&quot;:&quot;Dagar&quot;,&quot;ui_button&quot;:&quot;Visa avg\\u00e5ngar&quot;,&quot;status_idle&quot;:&quot;V\\u00e4lj ett datum och klicka p\\u00e5 Visa avg\\u00e5ngar&quot;,&quot;status_loading&quot;:&quot;Laddar...&quot;,&quot;status_empty&quot;:&quot;Inga avg\\u00e5ngar hittades&quot;,&quot;status_found&quot;:&quot;%d avg\\u00e5ngar hittades&quot;,&quot;th_date&quot;:&quot;Datum&quot;,&quot;th_dep&quot;:&quot;Avg\\u00e5ng&quot;,&quot;th_arr&quot;:&quot;Ankomst&quot;,&quot;th_dur&quot;:&quot;Restid&quot;,&quot;th_ship&quot;:&quot;Fartyg&quot;,&quot;th_op&quot;:&quot;Operat\\u00f6r&quot;,&quot;th_route&quot;:&quot;Rutt&quot;,&quot;wd_sun&quot;:&quot;S\\u00d6N&quot;,&quot;wd_mon&quot;:&quot;M\\u00c5N&quot;,&quot;wd_tue&quot;:&quot;TIS&quot;,&quot;wd_wed&quot;:&quot;ONS&quot;,&quot;wd_thu&quot;:&quot;TOR&quot;,&quot;wd_fri&quot;:&quot;FRE&quot;,&quot;wd_sat&quot;:&quot;L\\u00d6R&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Se alla %s avg\\u00e5ngar i v\\u00e5r tidtabell&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Se fler avg\\u00e5ngar f\\u00f6r %1$s och %2$s i v\\u00e5r tidtabell&quot;,&quot;summary_footer_generic&quot;:&quot;Se v\\u00e5r tidtabell f\\u00f6r fler avg\\u00e5ngar&quot;,&quot;summary_header&quot;:&quot;De tv\\u00e5 n\\u00e4sta avg\\u00e5ngarna:&quot;,&quot;summary_no_upcoming&quot;:&quot;Inga kommande avg\\u00e5ngar hittades&quot;,&quot;more_link&quot;:&quot;Fler avg\\u00e5ngar&quot;,&quot;more_departures_button&quot;:&quot;Visa fler avg\\u00e5ngar&quot;,&quot;day_nav_previous&quot;:&quot;Visa f\\u00f6reg\\u00e5ende dag&quot;,&quot;day_nav_next&quot;:&quot;Visa n\\u00e4sta dag&quot;,&quot;day_nav_today&quot;:&quot;Visa idag&quot;,&quot;day_nav_tomorrow&quot;:&quot;Visa imorgon&quot;,&quot;local_time_pair&quot;:&quot;Lokal tid avg\\u00e5ngshamn: %1$s \\\/ Lokal tid ankomsthamn: %2$s&quot;,&quot;local_time_combined&quot;:&quot;Lokal tid avg\\u00e5ngs- och ankomsthamn: %s&quot;,&quot;tag_often_booked&quot;:&quot;\\u2b50 Ofta bokad&quot;,&quot;tag_leaving_soon&quot;:&quot;\\ud83d\\udd34 Avg\\u00e5r snart&quot;,&quot;tag_currently_sailing&quot;:&quot;\\ud83d\\udfe2 P\\u00e5 v\\u00e4g nu&quot;,&quot;tag_arrived&quot;:&quot;\\u26ab Anl\\u00e4nt&quot;,&quot;tag_overnight&quot;:&quot;\\u00d6vernattning&quot;},&quot;showLogo&quot;:true,&quot;activityBoosters&quot;:true,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:[],&quot;showShip&quot;:false,&quot;departurePort&quot;:&quot;Rostock&quot;,&quot;arrivalPort&quot;:&quot;Gedser&quot;,&quot;departureTimezone&quot;:&quot;Europe\\\/Berlin&quot;,&quot;arrivalTimezone&quot;:&quot;Europe\\\/Copenhagen&quot;}\">\n  <div class=\"tp-controls\" role=\"group\" aria-label=\"Timetable controls\">\n    <div>\n      <label for=\"tp-date\">Datum<\/label><br>\n      <input id=\"tp-date\" class=\"tp-date\" type=\"date\" aria-label=\"Datum\">\n    <\/div>\n    <div class=\"tp-day-field\">\n      <label for=\"tp-range\">Dagar<\/label><br>\n      <select id=\"tp-range\" class=\"tp-range\" aria-label=\"Dagar\">\n        <option value=\"1\">1<\/option><option value=\"3\">3<\/option><option value=\"7\">7<\/option><option value=\"14\">14<\/option>\n      <\/select>\n    <\/div>\n    <div><button id=\"tp-load\" class=\"tp-btn\">Visa avg\u00e5ngar<\/button><\/div>\n  <\/div>\n\n  <div class=\"tp-local-nav-row\">\n    <div class=\"tp-local-times\" id=\"tp-local-times\" aria-live=\"polite\"><\/div>\n    <div class=\"tp-day-nav-host\"><\/div>\n  <\/div>\n  <div id=\"tp-status\" class=\"tp-muted\" aria-live=\"polite\">V\u00e4lj ett datum och klicka p\u00e5 Visa avg\u00e5ngar<\/div>\n  <div id=\"tp-results\"><\/div>\n\n  <div class=\"tp-loader\" aria-hidden=\"true\">\n    <div class=\"tp-loader-card\">\n      <div class=\"tp-spinner\" aria-hidden=\"true\"><\/div>\n      <div class=\"tp-loader-text\">Laddar...<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const wrap   = document.currentScript.previousElementSibling;\n  const cfg    = JSON.parse(wrap.getAttribute('data-config')||'{}');\n  const L      = cfg.labels||{};\n  const dateEl = wrap.querySelector('#tp-date');\n  const daysEl = wrap.querySelector('#tp-range');\n  const btn    = wrap.querySelector('#tp-load');\n  const status = wrap.querySelector('#tp-status');\n  const out    = wrap.querySelector('#tp-results');\n  const loader = wrap.querySelector('.tp-loader');\n  const controls = wrap.querySelector('.tp-controls');\n  const navHost = wrap.querySelector('.tp-day-nav-host');\n  const localTimesEl = wrap.querySelector('#tp-local-times');\n\n  const showShip = (cfg.showShip !== false && cfg.showShip !== 0 && cfg.showShip !== '0');\n  const activityBoosters = !!cfg.activityBoosters;\n  const daySetup = (cfg.daySetup === 'modern') ? 'modern' : 'classic';\n  const limit10 = !!cfg.limit10;\n  let featuredKey = '';\n  let soonKey = '';\n  let revealAll = false;\n\n  if (daySetup === 'modern') {\n    const dayField = wrap.querySelector('.tp-day-field');\n    if (dayField) dayField.style.display = 'none';\n  }\n\n  dateEl.valueAsDate = new Date();\n  dateEl.min = new Date().toISOString().split('T')[0];\n  Array.from(daysEl.options).forEach(o=>{ if(parseInt(o.value,10)===parseInt(cfg.days||7,10)) o.selected=true; });\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n  function iso(d){ return d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate()); }\n  function toLocal(s){ return new Date(s); }\n  function hhmm(d){ return d.toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'}); }\n  function dShort(d){ return d.toLocaleDateString([], {day:'numeric', month:'short'}); } \/\/ short, no year\n  function dur(m){ const h=Math.floor(m\/60), r=m%60; return r? (h+'h '+r+'m') : (h+'h'); }\n\n  const WD = [\n    L.wd_sun || 'SUN',\n    L.wd_mon || 'MON',\n    L.wd_tue || 'TUE',\n    L.wd_wed || 'WED',\n    L.wd_thu || 'THU',\n    L.wd_fri || 'FRI',\n    L.wd_sat || 'SAT'\n  ];\n\n  function setLoader(v){ loader.classList.toggle('show', !!v); loader.setAttribute('aria-hidden', v?'false':'true'); }\n\n  function formatZoneTime(tz){\n    if (!tz) return '--:--';\n    try {\n      return new Intl.DateTimeFormat([], {hour:'2-digit', minute:'2-digit', hour12:false, timeZone: tz}).format(new Date());\n    } catch (e) {\n      return '--:--';\n    }\n  }\n\n  function renderLocalTimes(){\n    if (!localTimesEl) return;\n    if (!cfg.departureTimezone || !cfg.arrivalTimezone) {\n      localTimesEl.textContent = '';\n      return;\n    }\n    const depTime = formatZoneTime(cfg.departureTimezone);\n    const arrTime = formatZoneTime(cfg.arrivalTimezone);\n    const pairTpl = L.local_time_pair || 'Departure Port Local Time: %1$s \/ Arrival Port Local Time: %2$s';\n    const combinedTpl = L.local_time_combined || 'Departure & Arrival Port Local Time: %s';\n    if (depTime === arrTime) {\n      localTimesEl.textContent = combinedTpl.replace('%s', depTime);\n      return;\n    }\n    localTimesEl.textContent = pairTpl.replace('%1$s', depTime).replace('%2$s', arrTime);\n  }\n\n  function setStatusInline(html){\n    let box = wrap.querySelector('.tp-controls-status');\n    if (!box) {\n      box = document.createElement('div');\n      box.className = 'tp-controls-status';\n      controls.appendChild(box);\n    }\n    box.innerHTML = html || '';\n  }\n\n  function clearStatusInline(){\n    const box = wrap.querySelector('.tp-controls-status');\n    if (box) box.innerHTML = '';\n  }\n\n  function navHtml(){\n    if (daySetup !== 'modern') return '';\n    const base = new Date(dateEl.value || new Date());\n    const today = new Date();\n    const tomorrow = new Date(today);\n    tomorrow.setDate(today.getDate() + 1);\n    const isToday = base.toDateString() === today.toDateString();\nlet prevLabel = L.day_nav_previous || 'Show previous day';\nlet nextLabel = L.day_nav_next || 'Show next day';\nif (isToday) nextLabel = L.day_nav_tomorrow || 'Show tomorrow';\nif (base.toDateString() === tomorrow.toDateString()) prevLabel = L.day_nav_today || 'Show today';\n    return '<div class=\"tp-day-nav\">'\n      + (isToday ? '' : '<a href=\"#\" data-shift=\"-1\">'+prevLabel+'<\/a>')\n      + '<a href=\"#\" data-shift=\"1\">'+nextLabel+'<\/a>'\n      + '<\/div>';\n  }\n\n  function shiftDate(delta){\n    const base = new Date(dateEl.value || new Date());\n    base.setDate(base.getDate() + delta);\n    dateEl.value = iso(base);\n    load();\n  }\n\n  function moreButtonHtml(hiddenCount){\n    if (!limit10 || revealAll || hiddenCount <= 0) return '';\n    return '<div style=\"margin-top:12px;text-align:center\">'\n      + '<button type=\"button\" class=\"tp-btn tp-more-btn\">'+(L.more_departures_button || 'Show more departures')+' ('+hiddenCount+')<\/button>'\n      + '<\/div>';\n  }\n\n  function opCell(r){\n    const name = r.opName || ('Operator '+(r.opId||''));\n    const logo = (cfg.showLogo && r.opLogo) ? '<img decoding=\"async\" src=\"'+r.opLogo+'\" alt=\"'+name+'\"> ' : '';\n    const label = logo + '<span>'+name+'<\/span>';\n    return r.opLink ? '<a class=\"tp-op\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+label+'<\/a>' : '<span class=\"tp-op\">'+label+'<\/span>';\n  }\n\n  function shipInfo(original){\n    const key = (original||'').toLowerCase().trim();\n    const label = (cfg.shipMap && cfg.shipMap[key]) || original || '';\n    const href  = (cfg.shipLinks && cfg.shipLinks[key]) || '';\n    return {label, href};\n  }\n\n  function shipBadge(original){\n    const s = shipInfo(original);\n    const badge = '<span class=\"tp-badge\">'+(s.label||'')+'<\/span>';\n    return s.href ? ('<a href=\"'+s.href+'\" target=\"_blank\" rel=\"nofollow noopener\">'+badge+'<\/a>') : badge;\n  }\n\n  function rowKey(r){\n    return [String(r.opId||''), String(+r.dep||0), String(+r.arr||0), String(r.ship||'')].join('|');\n  }\n\n  function pickFeaturedKey(rows, avoidKey){\n    if (!activityBoosters || !rows.length) return '';\n    const routeSeed = parseInt(cfg.route, 10) || 0;\n    const dateSeed = parseInt(String(dateEl.value || '').replace(\/-\/g,''), 10) || 0;\n\n    let pool = rows;\n    if (avoidKey) {\n      const soonIdx = rows.findIndex(r => rowKey(r) === avoidKey);\n      if (soonIdx >= 0) {\n        const later = rows.slice(soonIdx + 1).filter(r => rowKey(r) !== avoidKey);\n        pool = later.length ? later : rows.filter(r => rowKey(r) !== avoidKey);\n      } else {\n        pool = rows.filter(r => rowKey(r) !== avoidKey);\n      }\n    }\n\n    if (!pool.length) return '';\n    const idx = Math.abs((routeSeed + dateSeed + rows.length) % pool.length);\n    return rowKey(pool[idx]);\n  }\n\n  function pickSoonKey(rows){\n    if (!activityBoosters || !rows.length) return '';\n    const now = Date.now();\n    const todayStr = new Date(now).toDateString();\n    const firstUpcoming = rows.find(r => (r.dep instanceof Date) && r.dep.getTime() > now && r.dep.toDateString() === todayStr);\n    return firstUpcoming ? rowKey(firstUpcoming) : '';\n  }\n\n  function boostersFor(r){\n    if (!activityBoosters) return [];\n    const now = Date.now();\n    const depMs = (r.dep instanceof Date) ? r.dep.getTime() : 0;\n    const arrMs = (r.arr instanceof Date) ? r.arr.getTime() : 0;\n    const depIsToday = (r.dep instanceof Date) && (new Date(now).toDateString() === r.dep.toDateString());\n\n    if (depMs > 0 && arrMs > 0 && depMs <= now && arrMs > now) {\n      return [{cls:'tp-booster-sailing', text:(L.tag_currently_sailing || '\ud83d\udfe2 Currently sailing')}];\n    }\n    if (depIsToday && arrMs > 0 && arrMs <= now) {\n      return [{cls:'tp-booster-arrived', text:(L.tag_arrived || '\u26ab Arrived')}];\n    }\n    if (rowKey(r) === soonKey) return [{cls:'tp-booster-soon', text:(L.tag_leaving_soon || '\ud83d\udd34 Leaving soon')}];\n    if (r.dep && r.arr && r.dep.toDateString() !== r.arr.toDateString()) return [{cls:'tp-booster-overnight', text:(L.tag_overnight || 'Overnight')}];\n\n    return [];\n  }\n\n  function boostersHtml(r, floating){\n    const tags = boostersFor(r);\n    if (!tags.length) return '';\n    const cls = floating ? 'tp-boosters tp-boosters-float' : 'tp-boosters';\n    return '<div class=\"'+cls+'\">' + tags.map(t => '<span class=\"tp-booster '+t.cls+'\">'+boosterLabelHtml(t.text)+'<\/span>').join('') + '<\/div>';\n  }\n\n  function boosterLabelHtml(text){\n    return String(text || '').replace(\/^(\ud83d\udd34|\ud83d\udfe2|\u26ab|\u2b50)\\s*\/, '<span class=\"tp-booster-emoji\">$1<\/span>');\n  }\n\n  function routeTicketHtml(label){\n    const raw = String(label || '').trim();\n    if (!raw) return '';\n    if (cfg.theme !== 'small_cards') return escAttr(raw);\n    const parts = raw.split(\/\\s*[\\-\u2013]\\s*\/, 2);\n    if (parts.length < 2) return escAttr(raw);\n    return escAttr(parts[0]) + '<br>' + escAttr(parts[1]);\n  }\n\n  function escAttr(v){\n    return String(v||'').replace(\/[&<>\"']\/g, m => ({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m]));\n  }\n\n  function bindRowLinks(){\n    if (cfg.theme !== 'max_clickouts') return;\n    out.querySelectorAll('tr.tp-row-link').forEach((row)=>{\n      row.setAttribute('role','link');\n      row.setAttribute('tabindex','0');\n      row.addEventListener('click', (e)=>{\n        if (e.target && e.target.closest('a')) return;\n        const href = row.getAttribute('data-row-link');\n        if (!href) return;\n        window.open(href, '_blank', 'noopener,noreferrer');\n      });\n      row.addEventListener('keydown', (e)=>{\n        if (e.key !== 'Enter' && e.key !== ' ') return;\n        e.preventDefault();\n        row.click();\n      });\n    });\n  }\n\n  function renderTable(rows){\n    const th = {date:L.th_date,dep:L.th_dep,arr:L.th_arr,dur:L.th_dur,ship:L.th_ship,op:L.th_op};\n\n    const headCells = [\n      '<th>'+th.date+'<\/th>',\n      '<th>'+th.dep+'<\/th>',\n      '<th>'+th.arr+'<\/th>',\n      '<th>'+th.dur+'<\/th>'\n    ];\n    if (showShip) {\n      headCells.push('<th>'+th.ship+'<\/th>');\n    }\n    headCells.push('<th>'+th.op+'<\/th>');\n\n    let html = '<table class=\"tp-table\"><thead><tr>'+headCells.join('')+'<\/tr><\/thead><tbody>';\n\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const clickable = (cfg.theme === 'max_clickouts' && r.opLink);\n      const rowAttr = clickable ? (' class=\"tp-row-link\" data-row-link=\"'+escAttr(r.opLink)+'\"') : '';\n      const cells = [\n        '<td>'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span>'+boostersHtml(r, false)+'<\/td>',\n        '<td>'+hhmm(r.dep)+'<\/td>',\n        '<td>'+hhmm(r.arr)+'<\/td>',\n        '<td>'+dur(r.min)+'<\/td>'\n      ];\n      if (showShip) {\n        cells.push('<td>'+shipBadge(r.ship)+'<\/td>');\n      }\n      cells.push('<td>'+opCell(r)+'<\/td>');\n      html += '<tr'+rowAttr+'>'+cells.join('')+'<\/tr>';\n    });\n    html += '<\/tbody><\/table>';\n    return html;\n  }\n\n  function renderCards(rows){\n    if (cfg.theme === 'extended_cards') {\n      return renderExtendedCards(rows);\n    }\n\n    const routeName = cfg.label || '';\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const times = hhmm(r.dep) + ' <span class=\"tp-arrow\">\u2192<\/span> ' + hhmm(r.arr);\n      html += '<div class=\"tp-card\">'+boostersHtml(r, true)+\n        \/\/ Row 1: Date + weekday + times\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\"><span class=\"tp-sub\">'+dShort(r.dep)+'<\/span><span class=\"tp-day\">'+dow+'<\/span><\/div>'+\n          '<div class=\"rhs\"><span class=\"tp-time\">'+times+'<\/span><\/div>'+\n        '<\/div>';\n\n      if (showShip) {\n        html +=\n        \/\/ Row 2: Ship\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+(showShip ? shipBadge(r.ship) : '')+'<\/div>'+\n          '<div class=\"rhs\"><\/div>'+\n        '<\/div>';\n      }\n\n      html +=\n        \/\/ Row 3: Operator + route label (no book button)\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+opCell(r)+'<\/div>'+\n          (routeName ? ('<div class=\"rhs\"><span class=\"tp-route-ticket\">'+routeTicketHtml(routeName)+'<\/span><\/div>') : '<div class=\"rhs\"><\/div>')+\n        '<\/div>'+\n      '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  function renderExtendedCards(rows){\n    const routeName = cfg.label || '';\n    const ctaText = L.more_link || 'More sailings';\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const link = r.opLink ? ('<a class=\"tp-ext-cta\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+ctaText+' <span class=\"tp-ext-cta-arrow\">\u00bb<\/span><\/a>') : '<span class=\"tp-ext-cta\">'+ctaText+' <span class=\"tp-ext-cta-arrow\">\u00bb<\/span><\/span>';\n      html += '<div class=\"tp-ext-card\">'\n        + boostersHtml(r, true)\n        + '<div class=\"tp-ext-left\">'\n        +   '<div>'+opCell(r)+'<\/div>'\n        +   (showShip ? ('<div>'+shipBadge(r.ship)+'<\/div>') : '')\n        + '<\/div>'\n        + '<div class=\"tp-ext-mid\">'\n        +   '<div class=\"tp-ext-top\"><span class=\"tp-sub\">'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span><\/span><span class=\"tp-ext-dur\">'+dur(r.min)+'<\/span><\/div>'\n        +   '<div class=\"tp-ext-times\"><span class=\"tp-ext-time\">'+hhmm(r.dep)+'<\/span><span class=\"tp-ext-line\"><\/span><span class=\"tp-ext-dur\">'+dur(r.min)+'<\/span><span class=\"tp-ext-line\"><\/span><span class=\"tp-ext-time\">'+hhmm(r.arr)+'<\/span><\/div>'\n        +   (routeName ? ('<div class=\"tp-ext-route\">'+routeName+'<\/div>') : '')\n        + '<\/div>'\n        + '<div class=\"tp-ext-right\">'+link+'<\/div>'\n        + '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  async function load(){\n    btn.disabled = true; setLoader(true); status.textContent = L.status_loading;\n    const start = new Date(dateEl.value || new Date());\n    const days  = (daySetup === 'modern') ? 1 : Math.max(1, parseInt(daysEl.value,10)||1);\n    const end   = new Date(start); end.setDate(start.getDate()+days-1);\n    const url = new URL(cfg.rest); url.searchParams.set('route', String(cfg.route));\n    url.searchParams.set('from', iso(start)); url.searchParams.set('to', iso(end));\n    try{\n      const res = await fetch(url.toString(), {credentials:'same-origin'});\n      if(!res.ok) throw new Error('HTTP '+res.status);\n      const json = await res.json();\n      const list = (json && json.data && Array.isArray(json.data.rows)) ? json.data.rows : [];\n      let rows = list.map(t=>({\n        opId:t.operatorId||null, opName:t.operatorName||'', opLogo:t.operatorLogo||'', opLink:t.operatorLink||'',\n        dep:toLocal(t.departureTime), arr:toLocal(t.arrivalTime), min:t.durationInMinutes||0, ship:t.shipName||''\n      })).sort((a,b)=>a.dep-b.dep);\n      const todayStr = new Date().toDateString();\n      const nowMs = Date.now();\n      const arrivedToday = rows\n        .filter(r => (r.dep instanceof Date) && (r.arr instanceof Date) && r.dep.toDateString() === todayStr && r.arr.getTime() <= nowMs)\n        .sort((a,b) => b.arr - a.arr);\n      if (arrivedToday.length > 2) {\n        const keep = new Set(arrivedToday.slice(0,2).map(rowKey));\n        rows = rows.filter(r => {\n          const isArrivedToday = (r.dep instanceof Date) && (r.arr instanceof Date) && r.dep.toDateString() === todayStr && r.arr.getTime() <= nowMs;\n          return !isArrivedToday || keep.has(rowKey(r));\n        });\n      }\n      if(rows.length===0){ status.textContent = L.status_empty; clearStatusInline(); out.innerHTML=''; return; }\n      const visibleRows = (limit10 && !revealAll && rows.length > 10) ? rows.slice(0,10) : rows;\n      const hiddenCount = rows.length - visibleRows.length;\n      soonKey = pickSoonKey(visibleRows);\n      featuredKey = pickFeaturedKey(visibleRows, soonKey);\n      status.textContent = '';\n      setStatusInline(\n  (L.status_found || '%d sailings found').replace('%d', '<strong>'+rows.length+'<\/strong>')\n);\n      out.innerHTML = renderTable(visibleRows) + renderCards(visibleRows) + moreButtonHtml(hiddenCount);\n      bindRowLinks();\n      if (navHost) navHost.innerHTML = navHtml();\n    }catch(e){\n      status.textContent = 'Failed to load data'; out.innerHTML = '<pre>'+String(e.message||e)+'<\/pre>';\n    }finally{ setLoader(false); btn.disabled=false; }\n  }\n\n  wrap.addEventListener('click', function(e){\n    const nav = e.target.closest('.tp-day-nav a[data-shift]');\n    if (nav) {\n      e.preventDefault();\n      shiftDate(parseInt(nav.getAttribute('data-shift'),10) || 0);\n      return;\n    }\n    const more = e.target.closest('.tp-more-btn');\n    if (more) {\n      e.preventDefault();\n      revealAll = true;\n      load();\n    }\n  });\n\n  btn.addEventListener('click', load);\n  if (navHost) navHost.innerHTML = navHtml();\n  renderLocalTimes();\n  setInterval(renderLocalTimes, 30000);\n  if (cfg.autoload) load();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b81187 elementor-widget elementor-widget-heading\" data-id=\"5b81187\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Avg\u00e5ngar Gedser Rostock<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2fbf982 elementor-widget elementor-widget-text-editor\" data-id=\"2fbf982\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>V\u00e4lj ett resedatum och kontrollera aktuella avg\u00e5ngstider f\u00f6r f\u00e4rjan Gedser\u2013Rostock.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b2c9df elementor-widget elementor-widget-shortcode\" data-id=\"5b2c9df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"tp-wrap tp-theme-extended_cards tp-day-setup-modern\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-json\\\/timetables-pro\\\/v1\\\/timetables&quot;,&quot;route&quot;:203,&quot;days&quot;:1,&quot;autoload&quot;:true,&quot;theme&quot;:&quot;extended_cards&quot;,&quot;daySetup&quot;:&quot;modern&quot;,&quot;limit10&quot;:true,&quot;label&quot;:&quot;Gedser till Rostock&quot;,&quot;labels&quot;:{&quot;ui_date&quot;:&quot;Datum&quot;,&quot;ui_days&quot;:&quot;Dagar&quot;,&quot;ui_button&quot;:&quot;Visa avg\\u00e5ngar&quot;,&quot;status_idle&quot;:&quot;V\\u00e4lj ett datum och klicka p\\u00e5 Visa avg\\u00e5ngar&quot;,&quot;status_loading&quot;:&quot;Laddar...&quot;,&quot;status_empty&quot;:&quot;Inga avg\\u00e5ngar hittades&quot;,&quot;status_found&quot;:&quot;%d avg\\u00e5ngar hittades&quot;,&quot;th_date&quot;:&quot;Datum&quot;,&quot;th_dep&quot;:&quot;Avg\\u00e5ng&quot;,&quot;th_arr&quot;:&quot;Ankomst&quot;,&quot;th_dur&quot;:&quot;Restid&quot;,&quot;th_ship&quot;:&quot;Fartyg&quot;,&quot;th_op&quot;:&quot;Operat\\u00f6r&quot;,&quot;th_route&quot;:&quot;Rutt&quot;,&quot;wd_sun&quot;:&quot;S\\u00d6N&quot;,&quot;wd_mon&quot;:&quot;M\\u00c5N&quot;,&quot;wd_tue&quot;:&quot;TIS&quot;,&quot;wd_wed&quot;:&quot;ONS&quot;,&quot;wd_thu&quot;:&quot;TOR&quot;,&quot;wd_fri&quot;:&quot;FRE&quot;,&quot;wd_sat&quot;:&quot;L\\u00d6R&quot;,&quot;summary_footer_one&quot;:&quot;\\u00bb Se alla %s avg\\u00e5ngar i v\\u00e5r tidtabell&quot;,&quot;summary_footer_two&quot;:&quot;\\u00bb Se fler avg\\u00e5ngar f\\u00f6r %1$s och %2$s i v\\u00e5r tidtabell&quot;,&quot;summary_footer_generic&quot;:&quot;Se v\\u00e5r tidtabell f\\u00f6r fler avg\\u00e5ngar&quot;,&quot;summary_header&quot;:&quot;De tv\\u00e5 n\\u00e4sta avg\\u00e5ngarna:&quot;,&quot;summary_no_upcoming&quot;:&quot;Inga kommande avg\\u00e5ngar hittades&quot;,&quot;more_link&quot;:&quot;Fler avg\\u00e5ngar&quot;,&quot;more_departures_button&quot;:&quot;Visa fler avg\\u00e5ngar&quot;,&quot;day_nav_previous&quot;:&quot;Visa f\\u00f6reg\\u00e5ende dag&quot;,&quot;day_nav_next&quot;:&quot;Visa n\\u00e4sta dag&quot;,&quot;day_nav_today&quot;:&quot;Visa idag&quot;,&quot;day_nav_tomorrow&quot;:&quot;Visa imorgon&quot;,&quot;local_time_pair&quot;:&quot;Lokal tid avg\\u00e5ngshamn: %1$s \\\/ Lokal tid ankomsthamn: %2$s&quot;,&quot;local_time_combined&quot;:&quot;Lokal tid avg\\u00e5ngs- och ankomsthamn: %s&quot;,&quot;tag_often_booked&quot;:&quot;\\u2b50 Ofta bokad&quot;,&quot;tag_leaving_soon&quot;:&quot;\\ud83d\\udd34 Avg\\u00e5r snart&quot;,&quot;tag_currently_sailing&quot;:&quot;\\ud83d\\udfe2 P\\u00e5 v\\u00e4g nu&quot;,&quot;tag_arrived&quot;:&quot;\\u26ab Anl\\u00e4nt&quot;,&quot;tag_overnight&quot;:&quot;\\u00d6vernattning&quot;},&quot;showLogo&quot;:true,&quot;activityBoosters&quot;:true,&quot;shipMap&quot;:[],&quot;shipLinks&quot;:[],&quot;showShip&quot;:false,&quot;departurePort&quot;:&quot;Gedser&quot;,&quot;arrivalPort&quot;:&quot;Rostock&quot;,&quot;departureTimezone&quot;:&quot;Europe\\\/Copenhagen&quot;,&quot;arrivalTimezone&quot;:&quot;Europe\\\/Berlin&quot;}\">\n  <div class=\"tp-controls\" role=\"group\" aria-label=\"Timetable controls\">\n    <div>\n      <label for=\"tp-date\">Datum<\/label><br>\n      <input id=\"tp-date\" class=\"tp-date\" type=\"date\" aria-label=\"Datum\">\n    <\/div>\n    <div class=\"tp-day-field\">\n      <label for=\"tp-range\">Dagar<\/label><br>\n      <select id=\"tp-range\" class=\"tp-range\" aria-label=\"Dagar\">\n        <option value=\"1\">1<\/option><option value=\"3\">3<\/option><option value=\"7\">7<\/option><option value=\"14\">14<\/option>\n      <\/select>\n    <\/div>\n    <div><button id=\"tp-load\" class=\"tp-btn\">Visa avg\u00e5ngar<\/button><\/div>\n  <\/div>\n\n  <div class=\"tp-local-nav-row\">\n    <div class=\"tp-local-times\" id=\"tp-local-times\" aria-live=\"polite\"><\/div>\n    <div class=\"tp-day-nav-host\"><\/div>\n  <\/div>\n  <div id=\"tp-status\" class=\"tp-muted\" aria-live=\"polite\">V\u00e4lj ett datum och klicka p\u00e5 Visa avg\u00e5ngar<\/div>\n  <div id=\"tp-results\"><\/div>\n\n  <div class=\"tp-loader\" aria-hidden=\"true\">\n    <div class=\"tp-loader-card\">\n      <div class=\"tp-spinner\" aria-hidden=\"true\"><\/div>\n      <div class=\"tp-loader-text\">Laddar...<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const wrap   = document.currentScript.previousElementSibling;\n  const cfg    = JSON.parse(wrap.getAttribute('data-config')||'{}');\n  const L      = cfg.labels||{};\n  const dateEl = wrap.querySelector('#tp-date');\n  const daysEl = wrap.querySelector('#tp-range');\n  const btn    = wrap.querySelector('#tp-load');\n  const status = wrap.querySelector('#tp-status');\n  const out    = wrap.querySelector('#tp-results');\n  const loader = wrap.querySelector('.tp-loader');\n  const controls = wrap.querySelector('.tp-controls');\n  const navHost = wrap.querySelector('.tp-day-nav-host');\n  const localTimesEl = wrap.querySelector('#tp-local-times');\n\n  const showShip = (cfg.showShip !== false && cfg.showShip !== 0 && cfg.showShip !== '0');\n  const activityBoosters = !!cfg.activityBoosters;\n  const daySetup = (cfg.daySetup === 'modern') ? 'modern' : 'classic';\n  const limit10 = !!cfg.limit10;\n  let featuredKey = '';\n  let soonKey = '';\n  let revealAll = false;\n\n  if (daySetup === 'modern') {\n    const dayField = wrap.querySelector('.tp-day-field');\n    if (dayField) dayField.style.display = 'none';\n  }\n\n  dateEl.valueAsDate = new Date();\n  dateEl.min = new Date().toISOString().split('T')[0];\n  Array.from(daysEl.options).forEach(o=>{ if(parseInt(o.value,10)===parseInt(cfg.days||7,10)) o.selected=true; });\n\n  function pad(n){ return String(n).padStart(2,'0'); }\n  function iso(d){ return d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate()); }\n  function toLocal(s){ return new Date(s); }\n  function hhmm(d){ return d.toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'}); }\n  function dShort(d){ return d.toLocaleDateString([], {day:'numeric', month:'short'}); } \/\/ short, no year\n  function dur(m){ const h=Math.floor(m\/60), r=m%60; return r? (h+'h '+r+'m') : (h+'h'); }\n\n  const WD = [\n    L.wd_sun || 'SUN',\n    L.wd_mon || 'MON',\n    L.wd_tue || 'TUE',\n    L.wd_wed || 'WED',\n    L.wd_thu || 'THU',\n    L.wd_fri || 'FRI',\n    L.wd_sat || 'SAT'\n  ];\n\n  function setLoader(v){ loader.classList.toggle('show', !!v); loader.setAttribute('aria-hidden', v?'false':'true'); }\n\n  function formatZoneTime(tz){\n    if (!tz) return '--:--';\n    try {\n      return new Intl.DateTimeFormat([], {hour:'2-digit', minute:'2-digit', hour12:false, timeZone: tz}).format(new Date());\n    } catch (e) {\n      return '--:--';\n    }\n  }\n\n  function renderLocalTimes(){\n    if (!localTimesEl) return;\n    if (!cfg.departureTimezone || !cfg.arrivalTimezone) {\n      localTimesEl.textContent = '';\n      return;\n    }\n    const depTime = formatZoneTime(cfg.departureTimezone);\n    const arrTime = formatZoneTime(cfg.arrivalTimezone);\n    const pairTpl = L.local_time_pair || 'Departure Port Local Time: %1$s \/ Arrival Port Local Time: %2$s';\n    const combinedTpl = L.local_time_combined || 'Departure & Arrival Port Local Time: %s';\n    if (depTime === arrTime) {\n      localTimesEl.textContent = combinedTpl.replace('%s', depTime);\n      return;\n    }\n    localTimesEl.textContent = pairTpl.replace('%1$s', depTime).replace('%2$s', arrTime);\n  }\n\n  function setStatusInline(html){\n    let box = wrap.querySelector('.tp-controls-status');\n    if (!box) {\n      box = document.createElement('div');\n      box.className = 'tp-controls-status';\n      controls.appendChild(box);\n    }\n    box.innerHTML = html || '';\n  }\n\n  function clearStatusInline(){\n    const box = wrap.querySelector('.tp-controls-status');\n    if (box) box.innerHTML = '';\n  }\n\n  function navHtml(){\n    if (daySetup !== 'modern') return '';\n    const base = new Date(dateEl.value || new Date());\n    const today = new Date();\n    const tomorrow = new Date(today);\n    tomorrow.setDate(today.getDate() + 1);\n    const isToday = base.toDateString() === today.toDateString();\nlet prevLabel = L.day_nav_previous || 'Show previous day';\nlet nextLabel = L.day_nav_next || 'Show next day';\nif (isToday) nextLabel = L.day_nav_tomorrow || 'Show tomorrow';\nif (base.toDateString() === tomorrow.toDateString()) prevLabel = L.day_nav_today || 'Show today';\n    return '<div class=\"tp-day-nav\">'\n      + (isToday ? '' : '<a href=\"#\" data-shift=\"-1\">'+prevLabel+'<\/a>')\n      + '<a href=\"#\" data-shift=\"1\">'+nextLabel+'<\/a>'\n      + '<\/div>';\n  }\n\n  function shiftDate(delta){\n    const base = new Date(dateEl.value || new Date());\n    base.setDate(base.getDate() + delta);\n    dateEl.value = iso(base);\n    load();\n  }\n\n  function moreButtonHtml(hiddenCount){\n    if (!limit10 || revealAll || hiddenCount <= 0) return '';\n    return '<div style=\"margin-top:12px;text-align:center\">'\n      + '<button type=\"button\" class=\"tp-btn tp-more-btn\">'+(L.more_departures_button || 'Show more departures')+' ('+hiddenCount+')<\/button>'\n      + '<\/div>';\n  }\n\n  function opCell(r){\n    const name = r.opName || ('Operator '+(r.opId||''));\n    const logo = (cfg.showLogo && r.opLogo) ? '<img decoding=\"async\" src=\"'+r.opLogo+'\" alt=\"'+name+'\"> ' : '';\n    const label = logo + '<span>'+name+'<\/span>';\n    return r.opLink ? '<a class=\"tp-op\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+label+'<\/a>' : '<span class=\"tp-op\">'+label+'<\/span>';\n  }\n\n  function shipInfo(original){\n    const key = (original||'').toLowerCase().trim();\n    const label = (cfg.shipMap && cfg.shipMap[key]) || original || '';\n    const href  = (cfg.shipLinks && cfg.shipLinks[key]) || '';\n    return {label, href};\n  }\n\n  function shipBadge(original){\n    const s = shipInfo(original);\n    const badge = '<span class=\"tp-badge\">'+(s.label||'')+'<\/span>';\n    return s.href ? ('<a href=\"'+s.href+'\" target=\"_blank\" rel=\"nofollow noopener\">'+badge+'<\/a>') : badge;\n  }\n\n  function rowKey(r){\n    return [String(r.opId||''), String(+r.dep||0), String(+r.arr||0), String(r.ship||'')].join('|');\n  }\n\n  function pickFeaturedKey(rows, avoidKey){\n    if (!activityBoosters || !rows.length) return '';\n    const routeSeed = parseInt(cfg.route, 10) || 0;\n    const dateSeed = parseInt(String(dateEl.value || '').replace(\/-\/g,''), 10) || 0;\n\n    let pool = rows;\n    if (avoidKey) {\n      const soonIdx = rows.findIndex(r => rowKey(r) === avoidKey);\n      if (soonIdx >= 0) {\n        const later = rows.slice(soonIdx + 1).filter(r => rowKey(r) !== avoidKey);\n        pool = later.length ? later : rows.filter(r => rowKey(r) !== avoidKey);\n      } else {\n        pool = rows.filter(r => rowKey(r) !== avoidKey);\n      }\n    }\n\n    if (!pool.length) return '';\n    const idx = Math.abs((routeSeed + dateSeed + rows.length) % pool.length);\n    return rowKey(pool[idx]);\n  }\n\n  function pickSoonKey(rows){\n    if (!activityBoosters || !rows.length) return '';\n    const now = Date.now();\n    const todayStr = new Date(now).toDateString();\n    const firstUpcoming = rows.find(r => (r.dep instanceof Date) && r.dep.getTime() > now && r.dep.toDateString() === todayStr);\n    return firstUpcoming ? rowKey(firstUpcoming) : '';\n  }\n\n  function boostersFor(r){\n    if (!activityBoosters) return [];\n    const now = Date.now();\n    const depMs = (r.dep instanceof Date) ? r.dep.getTime() : 0;\n    const arrMs = (r.arr instanceof Date) ? r.arr.getTime() : 0;\n    const depIsToday = (r.dep instanceof Date) && (new Date(now).toDateString() === r.dep.toDateString());\n\n    if (depMs > 0 && arrMs > 0 && depMs <= now && arrMs > now) {\n      return [{cls:'tp-booster-sailing', text:(L.tag_currently_sailing || '\ud83d\udfe2 Currently sailing')}];\n    }\n    if (depIsToday && arrMs > 0 && arrMs <= now) {\n      return [{cls:'tp-booster-arrived', text:(L.tag_arrived || '\u26ab Arrived')}];\n    }\n    if (rowKey(r) === soonKey) return [{cls:'tp-booster-soon', text:(L.tag_leaving_soon || '\ud83d\udd34 Leaving soon')}];\n    if (r.dep && r.arr && r.dep.toDateString() !== r.arr.toDateString()) return [{cls:'tp-booster-overnight', text:(L.tag_overnight || 'Overnight')}];\n\n    return [];\n  }\n\n  function boostersHtml(r, floating){\n    const tags = boostersFor(r);\n    if (!tags.length) return '';\n    const cls = floating ? 'tp-boosters tp-boosters-float' : 'tp-boosters';\n    return '<div class=\"'+cls+'\">' + tags.map(t => '<span class=\"tp-booster '+t.cls+'\">'+boosterLabelHtml(t.text)+'<\/span>').join('') + '<\/div>';\n  }\n\n  function boosterLabelHtml(text){\n    return String(text || '').replace(\/^(\ud83d\udd34|\ud83d\udfe2|\u26ab|\u2b50)\\s*\/, '<span class=\"tp-booster-emoji\">$1<\/span>');\n  }\n\n  function routeTicketHtml(label){\n    const raw = String(label || '').trim();\n    if (!raw) return '';\n    if (cfg.theme !== 'small_cards') return escAttr(raw);\n    const parts = raw.split(\/\\s*[\\-\u2013]\\s*\/, 2);\n    if (parts.length < 2) return escAttr(raw);\n    return escAttr(parts[0]) + '<br>' + escAttr(parts[1]);\n  }\n\n  function escAttr(v){\n    return String(v||'').replace(\/[&<>\"']\/g, m => ({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m]));\n  }\n\n  function bindRowLinks(){\n    if (cfg.theme !== 'max_clickouts') return;\n    out.querySelectorAll('tr.tp-row-link').forEach((row)=>{\n      row.setAttribute('role','link');\n      row.setAttribute('tabindex','0');\n      row.addEventListener('click', (e)=>{\n        if (e.target && e.target.closest('a')) return;\n        const href = row.getAttribute('data-row-link');\n        if (!href) return;\n        window.open(href, '_blank', 'noopener,noreferrer');\n      });\n      row.addEventListener('keydown', (e)=>{\n        if (e.key !== 'Enter' && e.key !== ' ') return;\n        e.preventDefault();\n        row.click();\n      });\n    });\n  }\n\n  function renderTable(rows){\n    const th = {date:L.th_date,dep:L.th_dep,arr:L.th_arr,dur:L.th_dur,ship:L.th_ship,op:L.th_op};\n\n    const headCells = [\n      '<th>'+th.date+'<\/th>',\n      '<th>'+th.dep+'<\/th>',\n      '<th>'+th.arr+'<\/th>',\n      '<th>'+th.dur+'<\/th>'\n    ];\n    if (showShip) {\n      headCells.push('<th>'+th.ship+'<\/th>');\n    }\n    headCells.push('<th>'+th.op+'<\/th>');\n\n    let html = '<table class=\"tp-table\"><thead><tr>'+headCells.join('')+'<\/tr><\/thead><tbody>';\n\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const clickable = (cfg.theme === 'max_clickouts' && r.opLink);\n      const rowAttr = clickable ? (' class=\"tp-row-link\" data-row-link=\"'+escAttr(r.opLink)+'\"') : '';\n      const cells = [\n        '<td>'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span>'+boostersHtml(r, false)+'<\/td>',\n        '<td>'+hhmm(r.dep)+'<\/td>',\n        '<td>'+hhmm(r.arr)+'<\/td>',\n        '<td>'+dur(r.min)+'<\/td>'\n      ];\n      if (showShip) {\n        cells.push('<td>'+shipBadge(r.ship)+'<\/td>');\n      }\n      cells.push('<td>'+opCell(r)+'<\/td>');\n      html += '<tr'+rowAttr+'>'+cells.join('')+'<\/tr>';\n    });\n    html += '<\/tbody><\/table>';\n    return html;\n  }\n\n  function renderCards(rows){\n    if (cfg.theme === 'extended_cards') {\n      return renderExtendedCards(rows);\n    }\n\n    const routeName = cfg.label || '';\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const times = hhmm(r.dep) + ' <span class=\"tp-arrow\">\u2192<\/span> ' + hhmm(r.arr);\n      html += '<div class=\"tp-card\">'+boostersHtml(r, true)+\n        \/\/ Row 1: Date + weekday + times\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\"><span class=\"tp-sub\">'+dShort(r.dep)+'<\/span><span class=\"tp-day\">'+dow+'<\/span><\/div>'+\n          '<div class=\"rhs\"><span class=\"tp-time\">'+times+'<\/span><\/div>'+\n        '<\/div>';\n\n      if (showShip) {\n        html +=\n        \/\/ Row 2: Ship\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+(showShip ? shipBadge(r.ship) : '')+'<\/div>'+\n          '<div class=\"rhs\"><\/div>'+\n        '<\/div>';\n      }\n\n      html +=\n        \/\/ Row 3: Operator + route label (no book button)\n        '<div class=\"tp-mrow\">'+\n          '<div class=\"lhs\">'+opCell(r)+'<\/div>'+\n          (routeName ? ('<div class=\"rhs\"><span class=\"tp-route-ticket\">'+routeTicketHtml(routeName)+'<\/span><\/div>') : '<div class=\"rhs\"><\/div>')+\n        '<\/div>'+\n      '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  function renderExtendedCards(rows){\n    const routeName = cfg.label || '';\n    const ctaText = L.more_link || 'More sailings';\n    let html = '<div class=\"tp-cardlist\">';\n    rows.forEach(r=>{\n      const dow = WD[r.dep.getDay()] || '';\n      const link = r.opLink ? ('<a class=\"tp-ext-cta\" href=\"'+r.opLink+'\" target=\"_blank\" rel=\"nofollow noopener\">'+ctaText+' <span class=\"tp-ext-cta-arrow\">\u00bb<\/span><\/a>') : '<span class=\"tp-ext-cta\">'+ctaText+' <span class=\"tp-ext-cta-arrow\">\u00bb<\/span><\/span>';\n      html += '<div class=\"tp-ext-card\">'\n        + boostersHtml(r, true)\n        + '<div class=\"tp-ext-left\">'\n        +   '<div>'+opCell(r)+'<\/div>'\n        +   (showShip ? ('<div>'+shipBadge(r.ship)+'<\/div>') : '')\n        + '<\/div>'\n        + '<div class=\"tp-ext-mid\">'\n        +   '<div class=\"tp-ext-top\"><span class=\"tp-sub\">'+dShort(r.dep)+' <span class=\"tp-day\">'+dow+'<\/span><\/span><span class=\"tp-ext-dur\">'+dur(r.min)+'<\/span><\/div>'\n        +   '<div class=\"tp-ext-times\"><span class=\"tp-ext-time\">'+hhmm(r.dep)+'<\/span><span class=\"tp-ext-line\"><\/span><span class=\"tp-ext-dur\">'+dur(r.min)+'<\/span><span class=\"tp-ext-line\"><\/span><span class=\"tp-ext-time\">'+hhmm(r.arr)+'<\/span><\/div>'\n        +   (routeName ? ('<div class=\"tp-ext-route\">'+routeName+'<\/div>') : '')\n        + '<\/div>'\n        + '<div class=\"tp-ext-right\">'+link+'<\/div>'\n        + '<\/div>';\n    });\n    html += '<\/div>';\n    return html;\n  }\n\n  async function load(){\n    btn.disabled = true; setLoader(true); status.textContent = L.status_loading;\n    const start = new Date(dateEl.value || new Date());\n    const days  = (daySetup === 'modern') ? 1 : Math.max(1, parseInt(daysEl.value,10)||1);\n    const end   = new Date(start); end.setDate(start.getDate()+days-1);\n    const url = new URL(cfg.rest); url.searchParams.set('route', String(cfg.route));\n    url.searchParams.set('from', iso(start)); url.searchParams.set('to', iso(end));\n    try{\n      const res = await fetch(url.toString(), {credentials:'same-origin'});\n      if(!res.ok) throw new Error('HTTP '+res.status);\n      const json = await res.json();\n      const list = (json && json.data && Array.isArray(json.data.rows)) ? json.data.rows : [];\n      let rows = list.map(t=>({\n        opId:t.operatorId||null, opName:t.operatorName||'', opLogo:t.operatorLogo||'', opLink:t.operatorLink||'',\n        dep:toLocal(t.departureTime), arr:toLocal(t.arrivalTime), min:t.durationInMinutes||0, ship:t.shipName||''\n      })).sort((a,b)=>a.dep-b.dep);\n      const todayStr = new Date().toDateString();\n      const nowMs = Date.now();\n      const arrivedToday = rows\n        .filter(r => (r.dep instanceof Date) && (r.arr instanceof Date) && r.dep.toDateString() === todayStr && r.arr.getTime() <= nowMs)\n        .sort((a,b) => b.arr - a.arr);\n      if (arrivedToday.length > 2) {\n        const keep = new Set(arrivedToday.slice(0,2).map(rowKey));\n        rows = rows.filter(r => {\n          const isArrivedToday = (r.dep instanceof Date) && (r.arr instanceof Date) && r.dep.toDateString() === todayStr && r.arr.getTime() <= nowMs;\n          return !isArrivedToday || keep.has(rowKey(r));\n        });\n      }\n      if(rows.length===0){ status.textContent = L.status_empty; clearStatusInline(); out.innerHTML=''; return; }\n      const visibleRows = (limit10 && !revealAll && rows.length > 10) ? rows.slice(0,10) : rows;\n      const hiddenCount = rows.length - visibleRows.length;\n      soonKey = pickSoonKey(visibleRows);\n      featuredKey = pickFeaturedKey(visibleRows, soonKey);\n      status.textContent = '';\n      setStatusInline(\n  (L.status_found || '%d sailings found').replace('%d', '<strong>'+rows.length+'<\/strong>')\n);\n      out.innerHTML = renderTable(visibleRows) + renderCards(visibleRows) + moreButtonHtml(hiddenCount);\n      bindRowLinks();\n      if (navHost) navHost.innerHTML = navHtml();\n    }catch(e){\n      status.textContent = 'Failed to load data'; out.innerHTML = '<pre>'+String(e.message||e)+'<\/pre>';\n    }finally{ setLoader(false); btn.disabled=false; }\n  }\n\n  wrap.addEventListener('click', function(e){\n    const nav = e.target.closest('.tp-day-nav a[data-shift]');\n    if (nav) {\n      e.preventDefault();\n      shiftDate(parseInt(nav.getAttribute('data-shift'),10) || 0);\n      return;\n    }\n    const more = e.target.closest('.tp-more-btn');\n    if (more) {\n      e.preventDefault();\n      revealAll = true;\n      load();\n    }\n  });\n\n  btn.addEventListener('click', load);\n  if (navHost) navHost.innerHTML = navHtml();\n  renderLocalTimes();\n  setInterval(renderLocalTimes, 30000);\n  if (cfg.autoload) load();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3ab9d8 elementor-widget elementor-widget-text-editor\" data-id=\"e3ab9d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"rg-after-timetable\">\n  <h2>F\u00e4rjetider och avg\u00e5ngar p\u00e5 rutten Rostock Gedser<\/h2>\n\n  <p>F\u00e4rjan Rostock Gedser \u00e4r en Scandlines-f\u00f6rbindelse mellan Tyskland och Danmark. \u00d6verfarten tar cirka 2 timmar, och fartygen <strong>M\/F Copenhagen<\/strong> och <strong>M\/F Berlin<\/strong> trafikerar rutten med flera avg\u00e5ngar per dag i b\u00e5da riktningarna.<\/p>\n\n  <div class=\"rg-data-grid\">\n    <div class=\"rg-data-card\">\n      <span class=\"rg-data-label\">\u00d6verfart<\/span>\n      <span class=\"rg-data-value\">Cirka 2 timmar<\/span>\n      <span class=\"rg-data-text\">Mellan Rostock och Gedser.<\/span>\n    <\/div>\n\n    <div class=\"rg-data-card\">\n      <span class=\"rg-data-label\">Rederi<\/span>\n      <span class=\"rg-data-value\">Scandlines<\/span>\n      <span class=\"rg-data-text\">Regelbundna avg\u00e5ngar varje dag.<\/span>\n    <\/div>\n\n    <div class=\"rg-data-card\">\n      <span class=\"rg-data-label\">Fartyg<\/span>\n      <span class=\"rg-data-value\">Berlin &amp; Copenhagen<\/span>\n      <span class=\"rg-data-text\">De viktigaste f\u00e4rjorna p\u00e5 rutten.<\/span>\n    <\/div>\n\n    <div class=\"rg-data-card\">\n      <span class=\"rg-data-label\">Rutt<\/span>\n      <span class=\"rg-data-value\">Cirka 52 km<\/span>\n      <span class=\"rg-data-text\">F\u00e4rjef\u00f6rbindelse \u00f6ver \u00d6stersj\u00f6n.<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"rg-route-panel\">\n    <div class=\"rg-route-copy\">\n      <h3>Rostock till Gedser<\/h3>\n      <p>Den h\u00e4r riktningen anv\u00e4nder du n\u00e4r du reser fr\u00e5n Tyskland till Danmark. Kontrollera aktuella avg\u00e5ngar innan du k\u00f6r till <a href=\"\/se\/rostock\/\">Rostock hamn<\/a>, s\u00e4rskilt under helger och semesterperioder.<\/p>\n    <\/div>\n\n    <div class=\"rg-route-copy\">\n      <h3>Gedser till Rostock<\/h3>\n      <p>Den h\u00e4r riktningen \u00e4r relevant n\u00e4r du reser fr\u00e5n Danmark tillbaka till Tyskland. Kontrollera tidtabellen innan du k\u00f6r till <a href=\"\/se\/gedser\/\">Gedser hamn<\/a>.<\/p>\n    <\/div>\n  <\/div>\n\n  <div class=\"rg-practical-box\">\n    <h3>Viktigt om tidtabellen<\/h3>\n    <ul>\n      <li>Kontrollera alltid r\u00e4tt riktning: Rostock Gedser eller Gedser Rostock.<\/li>\n      <li>\u00d6verfarten tar normalt cirka 2 timmar.<\/li>\n      <li>Fartygen M\/F Berlin och M\/F Copenhagen avg\u00e5r flera g\u00e5nger per dag.<\/li>\n      <li>Det \u00e4r vanligtvis 2 till 3 timmar mellan avg\u00e5ngarna, beroende p\u00e5 dag och s\u00e4song.<\/li>\n      <li>Fullf\u00f6lj incheckningen minst 15 minuter f\u00f6re avg\u00e5ng. Vid mycket trafik \u00e4r det klokt att komma tidigare.<\/li>\n      <li>Avg\u00e5ngs- och ankomsttider kan \u00e4ndras p\u00e5 grund av v\u00e4der, hamntrafik eller uppdateringar fr\u00e5n Scandlines.<\/li>\n      <li>Reser du vidare <a href=\"https:\/\/rostockgedser.com\/se\/farja-till-berlin\/\">till Berlin<\/a>, r\u00e4kna med cirka 3 timmar extra restid efter ankomst i Rostock.<\/li>\n      <li>Vid os\u00e4kert v\u00e4der kan du kontrollera <a href=\"\/se\/vader\/\">v\u00e4dret p\u00e5 rutten<\/a> innan du reser.<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"rg-link-strip\">\n    <a href=\"\/se\/priser\/\">Priser och biljetter<\/a>\n    <a href=\"\/se\/vader\/\">V\u00e4der<\/a>\n    <a href=\"\/se\/rostock\/\">Rostock hamn<\/a>\n    <a href=\"\/se\/gedser\/\">Gedser hamn<\/a>\n    <a href=\"\/se\/alternativ\/\">Alternativ<\/a>\n  <\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f8297c elementor-widget elementor-widget-image\" data-id=\"9f8297c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"500\" src=\"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2024\/03\/Schedule.jpg\" class=\"attachment-full size-full wp-image-1896\" alt=\"Schedule\" srcset=\"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2024\/03\/Schedule.jpg 1000w, https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2024\/03\/Schedule-300x150.jpg 300w, https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2024\/03\/Schedule-768x384.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Avg\u00e5ngstider f\u00f6r f\u00e4rjorna M\/F Copenhagen och M\/F Berlin<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53dc74b elementor-widget elementor-widget-text-editor\" data-id=\"53dc74b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"rg-compact-faq\">\n  <h2>Vanliga fr\u00e5gor om Rostock Gedser avg\u00e5ngar och tidtabell<\/h2>\n\n  <details>\n    <summary>Hur aktuell \u00e4r tidtabellen f\u00f6r f\u00e4rjan Rostock Gedser?<\/summary>\n    <p>Tidtabellen ovan visar planerade avg\u00e5ngar f\u00f6r det datum du v\u00e4ljer. Kontrollera den g\u00e4rna igen strax f\u00f6re avresa, s\u00e4rskilt vid <strong>h\u00e5rd vind, semestertrafik eller om du m\u00e5ste hinna med en viss avg\u00e5ng<\/strong>. Du kan ocks\u00e5 kontrollera Scandlines officiella <a href=\"https:\/\/www.scandlines.com\/departures\/\" target=\"_blank\" rel=\"noopener\">avg\u00e5ngsmonitor<\/a>.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Hur l\u00e5ng tid tar f\u00e4rjan Rostock Gedser?<\/summary>\n    <p>\u00d6verfarten mellan Rostock och Gedser tar normalt <strong>cirka 2 timmar<\/strong>. Rutten \u00e4r ungef\u00e4r <strong>52 km<\/strong> \u00f6ver \u00d6stersj\u00f6n. V\u00e4der, hamntrafik och h\u00f6g belastning kan p\u00e5verka den faktiska restiden.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Hur m\u00e5nga avg\u00e5ngar finns det mellan Rostock och Gedser?<\/summary>\n    <p>Scandlines trafikerar rutten med flera avg\u00e5ngar per dag i b\u00e5da riktningarna. Det kan vara upp till omkring <strong>20 avg\u00e5ngar per dag totalt<\/strong>, beroende p\u00e5 s\u00e4song, veckodag och riktning. Kontrollera d\u00e4rf\u00f6r alltid <strong>Rostock till Gedser<\/strong> och <strong>Gedser till Rostock<\/strong> separat.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Hur tidigt b\u00f6r jag vara i hamnen?<\/summary>\n    <p>F\u00f6r fordon anger Scandlines vanligtvis check-in <strong>minst 15 minuter f\u00f6re avg\u00e5ng<\/strong> p\u00e5 rutten Rostock Gedser. I praktiken \u00e4r det klokt med mer marginal: med bil, husbil, sl\u00e4p eller under semesterperioder \u00e4r <strong>30 till 45 minuter f\u00f6re avg\u00e5ng<\/strong> ofta b\u00e4ttre. Se \u00e4ven Scandlines information om <a href=\"https:\/\/www.scandlines.com\/practical\/check-in-at-the-harbour\/\" target=\"_blank\" rel=\"noopener\">check-in i hamnen<\/a>.<\/p>\n  <\/details>\n\n  <details>\n    <summary>G\u00e4ller samma check-in f\u00f6r fotpassagerare?<\/summary>\n    <p>Nej, fotpassagerare har egna rutiner. Scandlines anger att fotpassagerare i Rostock b\u00f6r vara i f\u00e4rjecentret <strong>minst 30 minuter f\u00f6re avg\u00e5ng<\/strong>, medan fotpassagerare i Gedser b\u00f6r vara vid g\u00e5ngv\u00e4gsbyggnaden <strong>minst 15 minuter f\u00f6re avg\u00e5ng<\/strong>. Kontrollera detaljerna p\u00e5 Scandlines sida f\u00f6r <a href=\"https:\/\/www.scandlines.com\/tickets\/pedestrian\/rostock-gedser\/\" target=\"_blank\" rel=\"noopener\">fotpassagerare p\u00e5 Rostock Gedser<\/a>.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Kan jag k\u00f6pa biljett i hamnen?<\/summary>\n    <p>Ja, det g\u00e5r normalt att k\u00f6pa biljett i hamnen. F\u00f6r bil och motorcykel \u00e4r det ofta b\u00e4ttre att boka online, eftersom Scandlines kan ha olika <strong>onlinepriser och hamnpriser<\/strong>. Vill du resa med en best\u00e4md avg\u00e5ng \u00e4r det s\u00e4krare att boka i f\u00f6rv\u00e4g. L\u00e4s mer p\u00e5 v\u00e5r sida om <a href=\"\/se\/priser\/\">priser och biljetter<\/a> eller hos Scandlines f\u00f6r <a href=\"https:\/\/www.scandlines.com\/tickets\/rostock-gedser\/\" target=\"_blank\" rel=\"noopener\">biljetter Rostock Gedser<\/a>.<\/p>\n  <\/details>\n\n  <details>\n    <summary>\u00c4r biljett i hamnen dyrare \u00e4n online?<\/summary>\n    <p>I m\u00e5nga fall kan onlinebokning vara billigare. Scandlines har olika biljetttyper p\u00e5 Rostock Gedser. <strong>Low Price-biljetter kan vara begr\u00e4nsade till onlinebokning<\/strong> och g\u00e4ller ofta f\u00f6r den bokade avg\u00e5ngen. Standard- och Flex-biljetter kostar mer men ger mer flexibilitet. Se v\u00e5r sida <a href=\"\/se\/priser\/\">priser och biljetter<\/a> f\u00f6r en enklare \u00f6versikt.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Vad h\u00e4nder om jag missar f\u00e4rjan?<\/summary>\n    <p>Det beror p\u00e5 vilken biljettyp du har. En <strong>Low Price-biljett<\/strong> \u00e4r mer knuten till den bokade avg\u00e5ngen. <strong>Standard- och Flex-biljetter<\/strong> ger normalt mer spelrum, men kostar ocks\u00e5 mer. Har du l\u00e5ng k\u00f6rstr\u00e4cka, risk f\u00f6r k\u00f6er, barn i bilen, husbil eller sl\u00e4p kan en mer flexibel biljett vara smartare.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Hur l\u00e5ng \u00e4r v\u00e4ntetiden i hamnen?<\/summary>\n    <p>Det g\u00e5r inte att ange en fast genomsnittlig v\u00e4ntetid. Den beror p\u00e5 <strong>s\u00e4song, tid p\u00e5 dagen, biljettyp, fordonstyp och trafik<\/strong>. Rutten har m\u00e5nga avg\u00e5ngar, men under sommarhelger, helgdagar och vid st\u00f6rningar kan det bli mer k\u00f6. Kontrollera tidtabellen f\u00f6re avresa och titta \u00e4ven p\u00e5 v\u00e5r sida om <a href=\"\/se\/vader\/\">v\u00e4dret p\u00e5 rutten<\/a> vid os\u00e4kert v\u00e4der.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Var kan jag kontrollera st\u00f6rningar och trafikinformation?<\/summary>\n    <p>B\u00f6rja med tidtabellen ovan och Scandlines officiella <a href=\"https:\/\/www.scandlines.com\/departures\/\" target=\"_blank\" rel=\"noopener\">avg\u00e5ngsmonitor<\/a>. F\u00f6r k\u00f6rning i Tyskland kan <a href=\"https:\/\/www.adac.de\/verkehr\/verkehrsinformationen\/de\/\" target=\"_blank\" rel=\"noopener\">ADAC trafikinformation<\/a> vara anv\u00e4ndbar. F\u00f6r Danmark kan du kontrollera <a href=\"https:\/\/www.vejdirektoratet.dk\/traffic-information\" target=\"_blank\" rel=\"noopener\">trafikinformation fr\u00e5n Vejdirektoratet<\/a>.<\/p>\n  <\/details>\n\n  <details>\n    <summary>Vilken riktning ska jag v\u00e4lja i tidtabellen?<\/summary>\n    <p>V\u00e4lj <strong>Rostock till Gedser<\/strong> om du reser fr\u00e5n Tyskland till Danmark. V\u00e4lj <strong>Gedser till Rostock<\/strong> om du reser fr\u00e5n Danmark till Tyskland. Riktningen \u00e4r viktig eftersom b\u00e5da h\u00e5llen har egna avg\u00e5ngstider. Hamninformation finns p\u00e5 sidorna <a href=\"\/se\/rostock\/\">Rostock hamn<\/a> och <a href=\"\/se\/gedser\/\">Gedser hamn<\/a>.<\/p>\n  <\/details>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-9a29147\" data-id=\"9a29147\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-de19ae8 elementor-widget elementor-widget-text-editor\" data-id=\"de19ae8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;sticky_offset&quot;:100,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_effects_offset&quot;:60,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_anchor_link_offset&quot;:0}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<aside class=\"rg-sidebar\">\n  <div class=\"rg-sidebar-card rg-sidebar-image-card\">\n    <img decoding=\"async\" src=\"http:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/Direct-ferry-to-Sweden.jpg\" alt=\"F\u00e4rja p\u00e5 rutten Rostock Gedser\" \/>\n  <\/div>\n\n  <div class=\"rg-sidebar-card rg-book-box\">\n    <span class=\"rg-sidebar-label\">F\u00e4rja Rostock Gedser<\/span>\n    <h2>Kontrollera priser och biljetter<\/h2>\n    <p>J\u00e4mf\u00f6r tider f\u00f6re bokning.<\/p>\n\n    <a class=\"rg-sidebar-cta\" href=\"https:\/\/rostockgedser.com\/se\/go\/scandlines\" rel=\"nofollow sponsored\">\n      Boka med Scandlines\n    <\/a>\n  <\/div>\n\n  <div class=\"rg-sidebar-card\">\n    <h2>Ruttfakta<\/h2>\n    <ul class=\"rg-sidebar-list\">\n      <li>Scandlines f\u00e4rjef\u00f6rbindelse<\/li>\n      <li>Cirka 2 timmar \u00f6verfart<\/li>\n      <li>Tyskland \u21c4 Danmark<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"rg-sidebar-card\">\n    <h2>Anv\u00e4ndbara sidor<\/h2>\n    <ul class=\"rg-sidebar-links\">\n      <li><a href=\"https:\/\/rostockgedser.com\/se\/priser\/\">Priser och biljetter<\/a><\/li>\n      <li><a href=\"https:\/\/rostockgedser.com\/se\/vader\/\">V\u00e4der p\u00e5 rutten<\/a><\/li>\n    <\/ul>\n  <\/div>\n<\/aside>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Priser och biljetter Rostock Gedser avg\u00e5ngar och tidtabell Kontrollera tidtabellen f\u00f6r f\u00e4rjan Rostock Gedser f\u00f6r i dag, i morgon eller ett senare resedatum. P\u00e5 den h\u00e4r sidan hittar du ocks\u00e5 avg\u00e5ngstider f\u00f6r f\u00e4rjan Gedser Rostock i motsatt riktning. RuttRostock \u21c4 GedserTyskland till Danmark RederiScandlinesAvg\u00e5ngar i b\u00e5da riktningarna F\u00e4rjetidCirka 2 timmarCirka 52 km \u00f6ver \u00d6stersj\u00f6n Check-inMinst [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1227,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-651","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell &amp; tider<\/title>\n<meta name=\"description\" content=\"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rostockgedser.com\/se\/tidtabell\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell &amp; tider\" \/>\n<meta property=\"og:description\" content=\"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rostockgedser.com\/se\/tidtabell\/\" \/>\n<meta property=\"og:site_name\" content=\"RostockGedser.com\/se\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-15T09:37:46+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/rostock-port.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/\",\"url\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/\",\"name\":\"Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell & tider\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2023\\\/08\\\/rostock-port.jpg\",\"datePublished\":\"2023-05-11T11:56:09+00:00\",\"dateModified\":\"2026-06-15T09:37:46+00:00\",\"description\":\"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2023\\\/08\\\/rostock-port.jpg\",\"contentUrl\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2023\\\/08\\\/rostock-port.jpg\",\"width\":1000,\"height\":500,\"caption\":\"rostock port\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/tidtabell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tidtabell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#website\",\"url\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/\",\"name\":\"RostockGedser.com\\\/se\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#organization\",\"name\":\"RostockGedser.com\\\/se\",\"url\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2023\\\/08\\\/cropped-Rostock-Gedser-favicon.png\",\"contentUrl\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2023\\\/08\\\/cropped-Rostock-Gedser-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"RostockGedser.com\\\/se\"},\"image\":{\"@id\":\"https:\\\/\\\/rostockgedser.com\\\/se\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell & tider","description":"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rostockgedser.com\/se\/tidtabell\/","og_locale":"sv_SE","og_type":"article","og_title":"Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell & tider","og_description":"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.","og_url":"https:\/\/rostockgedser.com\/se\/tidtabell\/","og_site_name":"RostockGedser.com\/se","article_modified_time":"2026-06-15T09:37:46+00:00","og_image":[{"width":1000,"height":500,"url":"http:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/rostock-port.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"5 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/","url":"https:\/\/rostockgedser.com\/se\/tidtabell\/","name":"Rostock Gedser avg\u00e5ngar | F\u00e4rja, tidtabell & tider","isPartOf":{"@id":"https:\/\/rostockgedser.com\/se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/#primaryimage"},"image":{"@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/#primaryimage"},"thumbnailUrl":"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/rostock-port.jpg","datePublished":"2023-05-11T11:56:09+00:00","dateModified":"2026-06-15T09:37:46+00:00","description":"Se avg\u00e5ngar och tidtabell f\u00f6r f\u00e4rjan Rostock Gedser och Gedser Rostock. Kontrollera f\u00e4rjetider, \u00f6verfartstid, priser och Scandlines-biljetter.","breadcrumb":{"@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rostockgedser.com\/se\/tidtabell\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/#primaryimage","url":"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/rostock-port.jpg","contentUrl":"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/rostock-port.jpg","width":1000,"height":500,"caption":"rostock port"},{"@type":"BreadcrumbList","@id":"https:\/\/rostockgedser.com\/se\/tidtabell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rostockgedser.com\/se\/"},{"@type":"ListItem","position":2,"name":"Tidtabell"}]},{"@type":"WebSite","@id":"https:\/\/rostockgedser.com\/se\/#website","url":"https:\/\/rostockgedser.com\/se\/","name":"RostockGedser.com\/se","description":"","publisher":{"@id":"https:\/\/rostockgedser.com\/se\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rostockgedser.com\/se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/rostockgedser.com\/se\/#organization","name":"RostockGedser.com\/se","url":"https:\/\/rostockgedser.com\/se\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/rostockgedser.com\/se\/#\/schema\/logo\/image\/","url":"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/cropped-Rostock-Gedser-favicon.png","contentUrl":"https:\/\/rostockgedser.com\/se\/wp-content\/uploads\/sites\/7\/2023\/08\/cropped-Rostock-Gedser-favicon.png","width":512,"height":512,"caption":"RostockGedser.com\/se"},"image":{"@id":"https:\/\/rostockgedser.com\/se\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/pages\/651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/comments?post=651"}],"version-history":[{"count":76,"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/pages\/651\/revisions"}],"predecessor-version":[{"id":2354,"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/pages\/651\/revisions\/2354"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/media\/1227"}],"wp:attachment":[{"href":"https:\/\/rostockgedser.com\/se\/wp-json\/wp\/v2\/media?parent=651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}