{"id":28929,"date":"2025-04-24T18:36:11","date_gmt":"2025-04-24T18:36:11","guid":{"rendered":"https:\/\/www.visitvirginiabeach.com\/aufenthalt\/camping-und-huetten\/"},"modified":"2026-09-21T22:12:39","modified_gmt":"2026-09-21T22:12:39","slug":"camping-und-huetten","status":"publish","type":"page","link":"https:\/\/www.visitvirginiabeach.com\/de\/aufenthalt\/camping-und-huetten\/","title":{"rendered":"Camping und H\u00fctten"},"content":{"rendered":"\n<section class=\"image-heading\" arialabelledby=\"Image Header\"><div class=\"fold-wrap xl video-wrap\"><div class=\"image-container\"><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/04\/WS1_4972-lowres.jpg\" alt=\"A family of four sits around a campfire at a wooded campsite, roasting marshmallows. A yellow tent and a hammock are visible in the background.\" width=\"1920\" height=\"1080\" fetchpriority=\"high\"\/><div class=\"overlay-content\"><h1 class=\"extra\">Campingpl\u00e4tze und Cabins in Virginia Beach<\/h1><\/div><\/div><\/div><div class=\"after-overlay-content page-content-wrap fold-wrap md padded\"><p>Camping in Virginia Beach ist pures, unbeschwertes Abschalten. Ob Sie ein Zelt nur wenige Schritte vom Sand entfernt aufschlagen, Ihr Wohnmobil in eine schattige Kiefernlichtung man\u00f6vrieren oder es sich in einer Cabin gem\u00fctlich machen \u2013 es gibt keinen besseren Weg, die salzige Meeresluft, den Sternenhimmel und die entspannten K\u00fcsten-Vibes aufzusaugen. Virginia Beach liebt die <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/camping-in-virginia-beach\/\" data-type=\"link\" data-id=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/camping-in-virginia-beach\/\">camping season<\/a> \u2013 und sobald Sie hier sind, werden Sie verstehen, warum.  <br\/><br\/>Der <a href=\"https:\/\/www.visitvirginiabeach.com\/de\/trip-ideas\/first-landing-state-park-entdecken-sie-virginias-meistbesuchten-state-park\/\" data-type=\"post\" data-id=\"1130\">First Landing State Park<\/a> ist einer der besten Orte zum Campen in Virginia \u2013 nur wenige Schritte vom Strand entfernt, durchzogen von Wanderwegen und reich an K\u00fcstengeschichte. F\u00fcr einen Aufenthalt voller Aktivit\u00e4ten bietet <a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/virginia-beach-koa\/740\/\" data-type=\"mdb_listing\" data-id=\"13223\">Virginia Beach KOA Holiday<\/a> einfach alles \u2013 von Poolzeit bis Fahrradverleih, nur wenige Minuten vom Oceanfront entfernt. Sie m\u00f6chten noch unabh\u00e4ngiger unterwegs sein? Das <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/back-bay-national-wildlife-refuge\/\" data-type=\"link\" data-id=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/back-bay-national-wildlife-refuge\/\">Back Bay National Wildlife Refuge<\/a> f\u00fchrt Sie zum <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/false-cape-state-park\/\" data-type=\"page\" data-id=\"14776\">False Cape State Park<\/a>, einem der wenigen Orte in Virginia, an denen Sie an unber\u00fchrten D\u00fcnen entlang wandern oder radeln und direkt am Strand campen k\u00f6nnen.  <br\/><br\/>Wenn der Tag ausklingt und das Feuer knistert, wissen Sie es \u2013 das ist die gute Art von M\u00fcdigkeit. Finden Sie Ihren Campingplatz und beginnen Sie mit der Planung Ihres perfekten Natururlaubs \u2013 vom Sonnenaufgang bis zu S\u2019mores. <br\/><br\/><strong>Reservieren Sie noch heute Ihren Platz unter den Sternen.<\/strong><\/p><\/div><\/section>\n<style data-miles-ai=\"loading-css\">.miles-ai-mfe:not(.loaded) { position: relative; min-height: 100px; display: flex; align-items: center; justify-content: center; }.miles-ai-mfe:not(.loaded)::after { content: \"\"; position: relative; width: 20px; height: 20px; border: 2px solid #ccc; border-top: 2px solid #333; border-radius: 50%; animation: ai-spin 1s linear infinite; z-index: 1; }@keyframes ai-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }.miles-ai-mfe.loaded::before, .miles-ai-mfe.loaded::after { display: none; }<\/style><style data-miles-ai=\"global-css\">.miles-ai-mfe {\r\n  .miles-ai-search {\r\n    .miles-ai-search-filter-option[data-term=\"VBCC Newsletter\"] { display: none; }\r\n  }\r\n}<\/style><script data-miles-ai=\"global-js\">window.addEventListener('aisearch_unifyFilterKeys', function (event) {\r\n  const filterKeyMappings = {\r\n  '_to_delete': [       \r\n      'Hours of Operation',\r\n      'Happy Hour Times',   \r\n      'Admission Fee Cost',\r\n      'Live Music',\r\n      'Operating Hours'                                                                                                                                                                                                   \r\n    ], \r\n  'Tags': ['post_tag'],\r\n  'Categories': ['category']\r\n};\r\n\r\n  event.detail.mappings = filterKeyMappings;\r\n});<\/script><style data-miles-ai=\"template-css\" data-template=\"listings-with-map\">.miles-ai-template--listings {\r\n  .miles-ai-search {\r\n    --drawer-direction: right;\r\n    --drawer-size: 100%;\r\n    --font-family: var(--font-family-base);\r\n    --background-page: var(--color-white);\r\n    --primary-color: var(--color-fuchsia-900);\r\n    --primary-hover: var(--color-fuchsia-200);\r\n    --text-primary: var(--color-cyan-900);\r\n    --text-secondary: var(--color-black);\r\n    --border-radius: 0;\r\n\r\n    --input-border: var(--color-cyan-900);\r\n    --input-focus: var(--color-cyan-900);\r\n\r\n    \/* helpful base tuning *\/\r\n    --card-padding: 20px;\r\n    --grid-gap: 24px;\r\n    --desktop-grid-gap: 24px;\r\n    --list-item-gap: 20px;\r\n    --list-item-padding: 20px;\r\n    --results-grid-card-size: 260px;\r\n    --results-grid-card-size-desktop: 320px;\r\n\r\n    \/* button system *\/\r\n    --button-bg: var(--color-fuchsia);\r\n    --button-border: var(--color-fuchsia);\r\n    --button-color: var(--color-white);\r\n\r\n    --button-bg-hover: var(--color-fuchsia-200);\r\n    --button-border-hover: var(--color-fuchsia-200);\r\n    --button-color-hover: var(--color-black);\r\n\r\n    --button-bg-active: var(--color-fuchsia);\r\n    --button-border-active: var(--color-fuchsia);\r\n    --button-color-active: var(--color-white);\r\n\r\n    --button-bg-active-hover: var(--color-fuchsia-200);\r\n    --button-border-active-hover: var(--color-fuchsia-200);\r\n    --button-color-active-hover: var(--color-black);\r\n\r\n    max-width: 1680px;\r\n    padding-left: calc(var(--grid-gap)*2);\r\n    padding-right: calc(var(--grid-gap)*2);\r\n    font-size: 16px;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  .miles-ai-search-show-more-button {\r\n    border: none;\r\n    border-bottom: 2px solid rgba(0, 0, 0, 0);\r\n    border-radius: 0;\r\n    justify-content: flex-start;\r\n    background: none;\r\n    padding: 0 0 .3rem 0;\r\n    font-family: var(--head-font-family);\r\n    font-size: 14px;\r\n    font-weight: 400;\r\n    color: var(--primary-color);\r\n    display: inline-flex;\r\n    width: fit-content;\r\n    align-self: flex-start;\r\n    align-items: center;\r\n    gap: 6px;\r\n    cursor: pointer;\r\n\r\n    span {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      color: var(--primary-color);\r\n    }\r\n\r\n    .miles-ai-search-show-more-chevron {\r\n      color: var(--primary-color);\r\n      transition: transform 0.2s ease;\r\n    }\r\n\r\n    &:hover,\r\n    &:focus {\r\n      border-color: var(--primary-hover);\r\n    }\r\n\r\n    &[aria-expanded=\"true\"] .miles-ai-search-show-more-chevron {\r\n      transform: rotate(180deg);\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-component-title {\r\n    h2,\r\n    a {\r\n      color: var(--color-cyan-900);\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-result-card-title {\r\n    font-size: 20px;\r\n    line-height: 1.2;\r\n    font-weight: 700;\r\n  }\r\n\r\n  .miles-ai-search-result-card,\r\n  .miles-ai-search-filter-group {\r\n    font-size: 14px;\r\n    line-height: 1.4;\r\n  }\r\n\r\n  .miles-ai-search__filters-sidebar {\r\n    border: none;\r\n    padding: 16px 26px 16px 16px;\r\n  }\r\n\r\n  .miles-ai-search-drawer-overlay {\r\n    z-index: 1001; \/* to be over leaflet map pane which has 1000 z-index *\/\r\n  }\r\n\r\n  .miles-ai-search__filter-footer--drawer {\r\n    margin-bottom: 3rem; \/* to put footer higher than cookie button on mobile *\/\r\n  }\r\n\r\n  .miles-ai-search__filter-section {\r\n    .miles-ai-search-date-range-filter__inputs {\r\n      display: none;\r\n    }\r\n    .miles-ai-search__filter-section-title {\r\n      font-size: 20px;\r\n    }\r\n    .miles-ai-search-filter-title {\r\n      font-size: 16px;\r\n    }\r\n    .miles-ai-search-filter-label {\r\n      font-size: 14px;\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-result-card {\r\n    border: none;\r\n  }\r\n\r\n  .miles-ai-search__content-type--event {\r\n    .miles-ai-search-result-card-time,\r\n    .miles-ai-search-result-card-teaser {\r\n      display: none;\r\n    }\r\n  }\r\n  \/* result card images *\/\r\n  .miles-ai-search-result-card-image,\r\n  .miles-ai-search-result-card-image img {\r\n    aspect-ratio: 4 \/ 3;\r\n    object-fit: cover;\r\n  }\r\n\r\n  \/* image hover corner arrow (match site pattern) *\/\r\n  .miles-ai-search-result-card {\r\n    .card-detail-row {\r\n      color: var(--text-secondary);\r\n    }\r\n    .miles-ai-search-result-card-image {\r\n      position: relative;\r\n      overflow: hidden;\r\n\r\n      &::selection {\r\n        background: transparent;\r\n      }\r\n\r\n      img {\r\n        display: block;\r\n        border-bottom: 4px solid var(--color-cyan);\r\n      }\r\n\r\n      .miles-ai-search-result-card-image--clickable {\r\n        position: relative;\r\n        display: block;\r\n\r\n        &::before,\r\n        &::after {\r\n          content: \"\";\r\n          position: absolute;\r\n          bottom: 0;\r\n          width: 16px;\r\n          height: 4px;\r\n          background: var(--background-page);\r\n          z-index: 2;\r\n        }\r\n\r\n        &::before {\r\n          left: 0;\r\n        }\r\n\r\n        &::after {\r\n          right: 0;\r\n        }\r\n      }\r\n\r\n      &::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        bottom: -20%;\r\n        right: -20%;\r\n        width: 60px;\r\n        height: 60px;\r\n        background-color: var(--color-cyan);\r\n        clip-path: polygon(100% 0, 0% 100%, 100% 100%);\r\n        transition: bottom 0.3s ease, right 0.3s ease;\r\n        z-index: 2;\r\n      }\r\n\r\n      &::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        bottom: -20%;\r\n        right: -20%;\r\n        width: 60px;\r\n        height: 60px;\r\n        background: url(\"data:image\/svg+xml,%0A%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M18.2063 12.2063L18.9156 11.5001L18.2094 10.7938L13.7094 6.29385L13 5.58447L11.5875 7.0001L12.2937 7.70635L15.0875 10.5001H6H5V12.5001H6H15.0844L12.2906 15.2938L11.5875 16.0001L13 17.4157L13.7063 16.7095L18.2063 12.2095V12.2063Z' fill='black'\/%3E%3C\/svg%3E%0A\") no-repeat 90% 90%\/50%;\r\n        z-index: 3;\r\n        transition: bottom 0.3s ease, right 0.3s ease;\r\n      }\r\n\r\n      &:hover::after,\r\n      &:hover::before {\r\n        bottom: 0;\r\n        right: 0;\r\n      }\r\n    }\r\n    .miles-ai-search-result-card-date-wrapper {\r\n      .card-detail-row {\r\n        font-size: 14px;\r\n      }\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-pagination-page-button {\r\n    border: none;\r\n    border-radius: 0;\r\n    background-color: var(--background-page);\r\n    font-family: var(--head-font-family);\r\n    font-size: 16px;\r\n    font-weight: 400;\r\n    color: var(--text-secondary);\r\n    &:hover, &:focus {\r\n      background-color: var(--button-bg-hover);\r\n    }\r\n    &.active:disabled {\r\n      background-color: var(--button-bg-active);\r\n      color: var(--button-color-active);\r\n      opacity: 1;\r\n    }\r\n  }\r\n  .miles-ai-search-pagination-button {\r\n    border-radius: 0;\r\n    border: none;\r\n    background-color: var(--background-page);\r\n    color: var(--text-secondary);\r\n    span {\r\n      color: var(--text-secondary);\r\n    }\r\n    &:disabled {\r\n      display: none;\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-input-wrapper {\r\n    .miles-ai-search-icon {\r\n      display: none !important;\r\n    }\r\n    .miles-ai-search-input {\r\n      border-radius: 32px;\r\n      padding-left: var(--search-input-padding);\r\n      font-size: 13.333px;\r\n      font-weight: normal;\r\n      &:focus-visible {\r\n        border: 2px solid var(--input-focus);\r\n      }\r\n    }\r\n    .miles-ai-search-button--inline {\r\n      background: var(--color-cyan-100);\r\n      border-radius: 32px;\r\n      border-color: var(--color-cyan-100);\r\n      right: .7rem;\r\n      &:hover, &:focus {\r\n        background: var(--color-cyan-900);\r\n        border-color: var(--color-cyan-900);\r\n        .miles-ai-search-button-icon {\r\n          color: var(--color-white);\r\n        }\r\n      }\r\n      .miles-ai-search-button-icon {\r\n        width: 18px !important;\r\n        height: 18px !important;\r\n        scale: .65;\r\n        color: var(--color-default);\r\n\r\n        &:hover, &:focus {\r\n          background: var(--color-cyan-900);\r\n          border-color: var(--color-cyan-900);\r\n          color: var(--color-white);\r\n        }\r\n\r\n        svg {\r\n          overflow: visible;\r\n        }\r\n\r\n        path {\r\n          stroke: currentColor;\r\n          stroke-width: .6;\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  \/* display switcher (segmented pill - match live site) *\/\r\n  .miles-ai-search-display-switcher {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    flex-wrap: nowrap;\r\n    justify-content: center;\r\n    gap: 2px;\r\n    padding: 5px;\r\n    border-radius: 20px;\r\n    background-color: var(--color-fuchsia-100);\r\n  }\r\n\r\n  .miles-ai-search-display-switcher__btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    padding: .4rem 1.5rem .4rem 1.2rem;\r\n\r\n    font-family: var(--head-font-family);\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n\r\n    border: none;\r\n    border-radius: 9999px;\r\n    background-color: transparent;\r\n\r\n    color: var(--text-secondary);\r\n    cursor: pointer;\r\n\r\n    transition: background-color 0.2s ease, color 0.2s ease;\r\n    &:hover, :focus {\r\n      background-color: var(--color-fuchsia-200);\r\n      .miles-ai-search-display-switcher__label, .miles-icon {\r\n        color: var(--text-secondary);\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  .miles-ai-search-display-switcher__btn--active {\r\n    &:hover, :focus {\r\n      .miles-icon {\r\n        color: var(--text-secondary);\r\n      }\r\n      .miles-ai-search-display-switcher__label {\r\n        color: var(--color-white);\r\n      }\r\n    }\r\n  }\r\n\r\n  .miles-ai-search-display-switcher__btn[aria-pressed=\"true\"] {\r\n    background-color: var(--button-bg);\r\n    color: var(--button-color);\r\n  }\r\n\r\n  .miles-ai-search-display-switcher__btn:not([aria-pressed=\"true\"]):hover {\r\n    color: var(--primary-color);\r\n  }\r\n\r\n  @media screen and (max-width: 450px) {\r\n    .miles-ai-search-results-header:has(.miles-ai-search-results-header__text):has(.miles-ai-search-sort-container):has(.miles-ai-search-display-switcher):not(:has(.miles-ai-search-filter-pills)) {\r\n        grid-template-columns: auto;\r\n        grid-template-rows: 1fr 1fr;\r\n        grid-template-areas: \"sorting switcher\"\r\n                             \"text text\";\r\n    }\r\n}\r\n\r\n  \/* datepicker (air-datepicker) theming *\/\r\n  \/* (existing air-datepicker theming block would be here) *\/\r\n\r\n  \/* react-datepicker theming (actual component in use) *\/\r\n  .react-datepicker {\r\n    border: none;\r\n    border-radius: var(--border-radius);\r\n    background: var(--background-page);\r\n    font-family: var(--head-font-family);\r\n  }\r\n\r\n  .react-datepicker__header {\r\n    background: transparent;\r\n    border-bottom: 1px solid var(--color-cyan-900);\r\n  }\r\n\r\n  .react-datepicker__current-month {\r\n    font-size: 16px;\r\n    font-weight: 600;\r\n    color: var(--text-primary);\r\n  }\r\n\r\n  .react-datepicker__day-name {\r\n    color: var(--text-secondary);\r\n    font-size: 12px;\r\n  }\r\n\r\n  .react-datepicker__day {\r\n    color: var(--text-primary);\r\n    border-radius: 0;\r\n  }\r\n\r\n  .react-datepicker__day:hover {\r\n    background: var(--color-fuchsia-100);\r\n  }\r\n\r\n  .react-datepicker__day--selected,\r\n  .react-datepicker__day--keyboard-selected {\r\n    background: var(--button-bg);\r\n    color: var(--button-color);\r\n  }\r\n\r\n  .react-datepicker__day,\r\n  .react-datepicker__day--selected,\r\n  .react-datepicker__day--keyboard-selected {\r\n    border-radius: 50px;\r\n    padding: 3px 15px;\r\n  }\r\n\r\n  .react-datepicker__day--in-range {\r\n    background: var(--color-fuchsia-100);\r\n  }\r\n\r\n  .react-datepicker__day--disabled {\r\n    color: #ccc;\r\n  }\r\n\r\n  .react-datepicker__navigation-icon::before {\r\n    border-color: var(--text-secondary);\r\n  }\r\n\r\n  \/* make date inputs full width *\/\r\n  .miles-ai-search-date-range-filter__inputs {\r\n    display: block;\r\n    .miles-ai-search-date-range-filter__start-date,\r\n    .miles-ai-search-date-range-filter__end-date {\r\n      margin-bottom: 12px;\r\n    }\r\n    .react-datepicker__input-container {\r\n      border-radius: var(--gap-2);\r\n      border: 0 none;\r\n      padding: var(--gap) var(--gap) var(--gap) 2.5rem;\r\n      width: 100%;\r\n      background: var(--color-cyan-100) url(\"data:image\/svg+xml,%0A%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M4.3125 0.5625V0H3.1875V0.5625V1.5H0.75V3.375V4.5V10.875V12H1.875H10.125H11.25V10.875V4.5V3.375V1.5H8.8125V0.5625V0H7.6875V0.5625V1.5H4.3125V0.5625ZM1.875 4.5H3.75V5.8125H1.875V4.5ZM1.875 6.9375H3.75V8.4375H1.875V6.9375ZM4.875 6.9375H7.125V8.4375H4.875V6.9375ZM8.25 6.9375H10.125V8.4375H8.25V6.9375ZM10.125 5.8125H8.25V4.5H10.125V5.8125ZM10.125 9.5625V10.875H8.25V9.5625H10.125ZM7.125 9.5625V10.875H4.875V9.5625H7.125ZM3.75 9.5625V10.875H1.875V9.5625H3.75ZM7.125 5.8125H4.875V4.5H7.125V5.8125Z' fill='%230A7FAA'\/%3E%3C\/svg%3E%0A\") no-repeat 16px 16px\/14px;\r\n      font-size: 12px;\r\n      color: var(--color-neo-700);\r\n\r\n      textarea {\r\n        border: none;\r\n        padding: 0;\r\n        background-color: var(--color-cyan-100);\r\n        font-family: var(--head-font-family);\r\n      }\r\n    }\r\n  }\r\n\r\n  .leaflet-popup-content-wrapper {\r\n    border-radius: 0;\r\n  }\r\n\r\n  .leaflet-popup-content {\r\n    min-width: 180px;\r\n    margin: 0;\r\n    \r\n    @media screen and (min-width: 400px) {\r\n      min-width: 250px;\r\n    }\r\n  }\r\n\r\n  .leaflet-popup-content {\r\n    .miles-ai-search-result-card {\r\n      width: 100%;\r\n      min-width: 100%;\r\n      border: none;\r\n    }\r\n  }\r\n}\n\n\/* Child template styles *\/\n.miles-ai-mfe[data-template=\"listings-with-map\"] {\r\n  .miles-ai-search {\r\n    @media screen and (min-width: 768px) {\r\n      .miles-ai-search-display-switcher__label {\r\n        position: relative;\r\n        height: auto;\r\n        width: auto;\r\n        margin: unset;\r\n      }\r\n    }\r\n  }\r\n}<\/style><script data-miles-ai=\"template-js\" data-template=\"listings-with-map\">window.addEventListener('aisearch_onMount', function (event) {\r\n  var selector = event.detail && event.detail.selector;\r\n  if (!selector) return;\r\n\r\n  var config = window.milesAI.utils.getConfig(selector);\r\n  if (!config) return;\r\n\r\n  if (window.milesAI.utils.hasType(config, 'event')) {\r\n    window.dispatchEvent(\r\n      new CustomEvent('aisearch_updateConfig', {\r\n        detail: {\r\n          selector: selector,\r\n          searchBehavior: { placeholder: 'Search for events by interest, topic, or idea...' },\r\n          filters: { showDatePicker: true },\r\n          results: { resultLayout: 'list' },\r\n          sorting: { initialSort: 'next_occurrence:asc', sortOptions: [] },\r\n        },\r\n      }),\r\n    );\r\n  }\r\n});\r\n\r\nwindow.addEventListener('aisearch_onTransformResults', function(event) {\r\n  event.detail.results.forEach(function(result) {\r\n    var extras = result.json.extras;\r\n    extras.rankSort = (extras.rank || '').toLowerCase() === 'yes' ? 1 : 0;\r\n  });\r\n});\n\n\/\/ Child template scripts\nwindow.addEventListener(\"aisearch_onMount\", function (event) {\r\n  if (window.location.pathname !== \"\/events\/events-this-weekend\/\") return;\r\n  if (event.detail.selector !== \"#miles-ai-100113\") return;\r\n\r\n  window.dispatchEvent(\r\n    new CustomEvent(\"aisearch_updateConfig\", {\r\n      detail: {\r\n        selector: \"#miles-ai-100113\",\r\n        filters: { dateQuickFilters: [\"thisWeekend\"] },\r\n      },\r\n    })\r\n  );\r\n\r\n  window.dispatchEvent(\r\n    new CustomEvent(\"aisearch_setDateQuickFilter\", {\r\n      detail: { quickFilter: \"thisWeekend\", selector: \"#miles-ai-100113\" },\r\n    })\r\n  );\r\n});\r\n\r\n\/**\r\n * Custom map layout\r\n *\r\n * Renders a Leaflet map with markers for each result that has lat\/lon data.\r\n * Listens for aisearch_onDisplayResults and renders into #aisearch-custom-display-map.\r\n * Uses renderCard() from the event detail to mount real ResultCard components\r\n * inside map popups (with full analytics + click tracking). Cards mount when a\r\n * popup opens, not per marker, and markers are only rebuilt when the plotted\r\n * results change - eager per-marker cards made every date click slow (INP).\r\n *\r\n * DEPENDENCIES:\r\n * - Leaflet (loaded from CDN automatically)\r\n *   https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\r\n *\/\r\n\r\n\/\/ No ampersand characters anywhere in this file, on purpose: WordPress can save a pasted Custom\r\n\/\/ JS field through wptexturize\/kses, which HTML-encodes every ampersand and turns a logical AND\r\n\/\/ into a syntax error. Use `(a || {}).b`, ternaries or nested ifs, and `u00a9` instead.\r\n(function () {\r\n  'use strict';\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ CONFIG\r\n  \/\/ ========================================================================\r\n\r\n  var LEAFLET_CSS = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\r\n  var LEAFLET_JS = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\r\n\r\n  \/\/ Default map center and zoom (Virginia Beach)\r\n  var DEFAULT_CENTER = [36.85, -75.98];\r\n  var DEFAULT_ZOOM = 11;\r\n\r\n  \/\/ Map container height\r\n  var MAP_HEIGHT = '600px';\r\n\r\n  \/\/ Only render when this layout is active (from aisearch_onDisplayResults)\r\n  var ACTIVE_LAYOUT = 'map';\r\n\r\n  \/\/ Only render for a specific selector (or null for all instances)\r\n  var SELECTOR_FILTER = null;\r\n\r\n  function isOtherInstance(selector) {\r\n    return SELECTOR_FILTER ? selector !== SELECTOR_FILTER : false;\r\n  }\r\n\r\n  \/\/ Max distance (in degrees) from DEFAULT_CENTER to include a marker.\r\n  \/\/ Filters out results with bad or unrelated lat\/lon data.\r\n  \/\/ ~1 degree \u2248 69 miles. Set to null to disable filtering.\r\n  var MAX_DISTANCE = 1;\r\n\r\n  \/\/ Add a \"Map\" toggle to the results layout switcher on mount, so this file works on its own.\r\n  \/\/ aisearch_updateConfig replaces displayOptions wholesale - set this to false on a site whose\r\n  \/\/ CMS config already lists a 'map' display option, or this list will override it.\r\n  var REGISTER_DISPLAY_OPTIONS = false;\r\n  var DISPLAY_OPTIONS = [\r\n    { key: 'grid', label: 'Grid', icon: 'grid' },\r\n    \/\/ The map plots every filtered result, so paging and sorting don't apply to it.\r\n    {\r\n      key: ACTIVE_LAYOUT,\r\n      label: 'Map',\r\n      icon: 'location-dot',\r\n      showPager: false,\r\n      showSorting: false,\r\n    },\r\n  ];\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ STATE\r\n  \/\/ ========================================================================\r\n\r\n  var map = null;\r\n  var markersLayer = null;\r\n  var leafletReady = false;\r\n  var leafletLoading = false;\r\n  var pendingDetail = null;\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ STYLES\r\n  \/\/ ========================================================================\r\n\r\n  function injectStyles() {\r\n    if (document.getElementById('map-demo-styles')) return;\r\n    var style = document.createElement('style');\r\n    style.id = 'map-demo-styles';\r\n    style.textContent =\r\n      '\/* Leaflet popup overrides for ResultCard *\/n' +\r\n      '.leaflet-popup-content-wrapper { padding: 0; border-radius: 12px; overflow: hidden; }n' +\r\n      '.leaflet-popup-content { margin: 0; width: 300px !important; line-height: inherit; }n' +\r\n      '.leaflet-popup-content p { margin: 0; }n' +\r\n      '\/* ResultCard adjustments inside map popup *\/n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-wrap { margin: 0; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card { border: none; border-radius: 0; box-shadow: none; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-content { display: flex; flex-direction: column; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-image { width: 100%; max-height: 160px; overflow: hidden; aspect-ratio: auto; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-image img { width: 100%; height: 160px; object-fit: cover; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-content-wrapper { padding: 12px 14px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-title { font-size: 0.95rem; line-height: 1.3; margin: 0; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-title a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-tags { margin-top: 6px; gap: 4px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-tag { font-size: 0.7rem; padding: 2px 8px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-teaser { font-size: 0.8rem; -webkit-line-clamp: 2 !important; margin-top: 6px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-date-wrapper { margin-top: 6px; font-size: 0.8rem; }n' +\r\n      '.miles-ai-search-map-popup-card .card-detail-row { font-size: 0.8rem; margin-top: 2px; }n' +\r\n      '.miles-ai-search-map-popup-card .card-detail-row svg { width: 12px; height: 12px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-badges { margin-bottom: 4px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-featured { font-size: 0.7rem; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-buttons { margin-top: 8px; gap: 6px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-button { font-size: 0.8rem; padding: 6px 12px; }n' +\r\n      '.miles-ai-search-map-popup-card .miles-ai-search-result-card-metadata { padding: 4px 14px 8px; font-size: 0.75rem; }';\r\n    document.head.appendChild(style);\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ LEAFLET LOADING\r\n  \/\/ ========================================================================\r\n\r\n  function loadLeaflet(callback) {\r\n    var link = document.createElement('link');\r\n    link.rel = 'stylesheet';\r\n    link.href = LEAFLET_CSS;\r\n    document.head.appendChild(link);\r\n\r\n    var script = document.createElement('script');\r\n    script.src = LEAFLET_JS;\r\n    script.onload = function () {\r\n      leafletReady = true;\r\n      callback();\r\n    };\r\n    script.onerror = function () {\r\n      console.error('[custom-map] Failed to load Leaflet from:', LEAFLET_JS);\r\n    };\r\n    document.head.appendChild(script);\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ MAP INITIALIZATION\r\n  \/\/ ========================================================================\r\n\r\n  function initMap(container) {\r\n    injectStyles();\r\n    var L = window.L;\r\n    map = L.map(container).setView(DEFAULT_CENTER, DEFAULT_ZOOM);\r\n    L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\r\n      attribution: 'u00a9 OpenStreetMap contributors',\r\n      maxZoom: 18,\r\n    }).addTo(map);\r\n    markersLayer = L.layerGroup().addTo(map);\r\n\r\n    container.style.height = MAP_HEIGHT;\r\n    container.style.width = '100%';\r\n    container.style.borderRadius = '12px';\r\n    container.style.marginTop = '1rem';\r\n    map.invalidateSize();\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ RESULT IDS\r\n  \/\/ ========================================================================\r\n\r\n  var warnedNoUtils = false;\r\n\r\n  \/\/ The id renderCard() looks a result up by. window.milesAI.utils.getResultId is the\r\n  \/\/ component's own answer, but the utils are only there once the host page has loaded the\r\n  \/\/ remote's '.\/publicApi' expose - an older CMS loader, or a page that renders the component\r\n  \/\/ some other way, may not have them. renderCard() strips the `_N` chunk suffix from a raw\r\n  \/\/ content_identifier itself, so that is a working fallback rather than a guess.\r\n  function resultIdFor(result) {\r\n    var utils = (window.milesAI || {}).utils || {};\r\n    if (typeof utils.getResultId === 'function') return utils.getResultId(result);\r\n\r\n    if (!warnedNoUtils) {\r\n      warnedNoUtils = true;\r\n      console.warn(\r\n        '[custom-map] window.milesAI.utils is not available - falling back to each ' +\r\n          \"result's content_identifier. Load the remote's '.\/publicApi' to get getResultId().\",\r\n      );\r\n    }\r\n    if (result.content_identifier) return result.content_identifier;\r\n    var json = result.json || {};\r\n    if (!json.type || json.id == null) return null;\r\n    return json.type + ':' + json.id;\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ MARKER RENDERING\r\n  \/\/ ========================================================================\r\n\r\n  \/\/ Popup cards are mounted lazily, on popupopen, and unmounted on popupclose. Each renderCard()\r\n  \/\/ is a live React ResultCard that re-renders on date and filter changes, so mounting one per\r\n  \/\/ marker up front costs every result's card on every display event, for popups nobody opened.\r\n  var lastSignature = null;\r\n  var latestRenderCard = null;\r\n  var openCard = null; \/\/ { container, cleanup } for the one mounted popup card\r\n\r\n  function unmountOpenCard() {\r\n    if (openCard) {\r\n      openCard.cleanup();\r\n      openCard = null;\r\n    }\r\n  }\r\n\r\n  function addMarker(point) {\r\n    var L = window.L;\r\n    var marker = L.marker([point.lat, point.lon]).addTo(markersLayer);\r\n\r\n    var cardContainer = document.createElement('div');\r\n    cardContainer.className = 'miles-ai-search-map-popup-card';\r\n    marker.bindPopup(cardContainer, { maxWidth: 320, minWidth: 280 });\r\n\r\n    marker.on('popupopen', function (e) {\r\n      unmountOpenCard();\r\n      \/\/ latestRenderCard, not the one from when the marker was made: the newest closure\r\n      \/\/ carries the component's current click\/analytics context.\r\n      openCard = { container: cardContainer, cleanup: latestRenderCard(point.id, cardContainer) };\r\n      \/\/ The card renders after Leaflet measured the empty popup; re-measure once it's in.\r\n      requestAnimationFrame(function () {\r\n        if (e.popup.isOpen()) e.popup.update();\r\n      });\r\n    });\r\n    marker.on('popupclose', function () {\r\n      if ((openCard || {}).container === cardContainer) unmountOpenCard();\r\n    });\r\n  }\r\n\r\n  function renderMarkers(results, renderCard) {\r\n    if (!map || !markersLayer) return;\r\n    latestRenderCard = renderCard;\r\n\r\n    var points = [];\r\n    for (var r = 0; r < results.length; r++) {\r\n      var result = results[r];\r\n      var extras = (result.json || {}).extras || {};\r\n      var lat = extras.lat;\r\n      var lon = extras.lon;\r\n      if (!lat || !lon) continue;\r\n\r\n      \/\/ Skip markers too far from the configured center (bad\/unrelated data)\r\n      if (MAX_DISTANCE) {\r\n        var dLat = Math.abs(lat - DEFAULT_CENTER[0]);\r\n        var dLon = Math.abs(lon - DEFAULT_CENTER[1]);\r\n        if (dLat > MAX_DISTANCE || dLon > MAX_DISTANCE) continue;\r\n      }\r\n\r\n      \/\/ The component's own key for this result - the same one renderCard looks up.\r\n      var id = resultIdFor(result);\r\n      if (!id) continue;\r\n      points.push({ id: id, lat: lat, lon: lon });\r\n    }\r\n\r\n    \/\/ The event re-fires for changes the map doesn't show (pagination, a half-picked date\r\n    \/\/ range, a layout switch). Same markers in the same places: leave the map alone.\r\n    var signature = points\r\n      .map(function (p) {\r\n        return p.id + '@' + p.lat + ',' + p.lon;\r\n      })\r\n      .join('|');\r\n    if (signature === lastSignature) return;\r\n    lastSignature = signature;\r\n\r\n    unmountOpenCard();\r\n    markersLayer.clearLayers();\r\n\r\n    var bounds = [];\r\n    for (var i = 0; i < points.length; i++) {\r\n      addMarker(points[i]);\r\n      bounds.push([points[i].lat, points[i].lon]);\r\n    }\r\n\r\n    if (bounds.length > 0) {\r\n      map.fitBounds(bounds, { padding: [40, 40], maxZoom: 14 });\r\n    }\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ DISPLAY HANDLER\r\n  \/\/ ========================================================================\r\n\r\n  function handleDisplayResults(detail) {\r\n    var container = document.getElementById('aisearch-custom-display-map');\r\n    if (!container) return;\r\n\r\n    \/\/ Without displayOptions the component only renders the mount div while the map layout is\r\n    \/\/ active, so switching away and back hands us a new div. Leaflet can't move maps between\r\n    \/\/ containers: drop the old one and start over on the new div.\r\n    if (map ? map.getContainer() !== container : false) {\r\n      unmountOpenCard();\r\n      map.remove();\r\n      map = null;\r\n      markersLayer = null;\r\n      lastSignature = null;\r\n    }\r\n\r\n    if (!map) {\r\n      initMap(container);\r\n    } else {\r\n      \/\/ The container may have been display:none while another layout was active.\r\n      map.invalidateSize();\r\n    }\r\n\r\n    var results = detail.filteredResults || [];\r\n    renderMarkers(results, detail.renderCard);\r\n  }\r\n\r\n  \/\/ ========================================================================\r\n  \/\/ EVENT LISTENER\r\n  \/\/ ========================================================================\r\n\r\n  window.addEventListener('aisearch_onDisplayResults', function (event) {\r\n    var detail = event.detail;\r\n    if (!detail) return;\r\n\r\n    \/\/ Only render for the map layout\r\n    if (detail.activeLayout !== ACTIVE_LAYOUT) return;\r\n\r\n    \/\/ Optional: only render for specific instance\r\n    if (isOtherInstance(detail.selector)) return;\r\n\r\n    \/\/ Leaflet may already be on the page (the site, or another demo loaded it).\r\n    if (window.L) leafletReady = true;\r\n\r\n    if (!leafletReady) {\r\n      \/\/ Keep only the newest event; load Leaflet once even if more arrive while it loads.\r\n      pendingDetail = detail;\r\n      if (leafletLoading) return;\r\n      leafletLoading = true;\r\n      loadLeaflet(function () {\r\n        if (pendingDetail) {\r\n          handleDisplayResults(pendingDetail);\r\n          pendingDetail = null;\r\n        }\r\n      });\r\n      return;\r\n    }\r\n\r\n    handleDisplayResults(detail);\r\n  });\r\n\r\n  if (REGISTER_DISPLAY_OPTIONS) {\r\n    window.addEventListener('aisearch_onMount', function (event) {\r\n      var selector = (event.detail || {}).selector;\r\n      if (isOtherInstance(selector)) return;\r\n      window.dispatchEvent(\r\n        new CustomEvent('aisearch_updateConfig', {\r\n          detail: { selector: selector, results: { displayOptions: DISPLAY_OPTIONS } },\r\n        }),\r\n      );\r\n    });\r\n  }\r\n})();\r\n\r\n<\/script><div class=\"miles-ai-mfe miles-ai-template--listings-with-map miles-ai-template--listings\" id=\"miles-ai-100163\" data-template=\"listings-with-map\" data-mount-type=\".\/searchMount\" data-config='{&quot;apiEndpoint&quot;:&quot;listings&quot;,&quot;modules&quot;:[&quot;pagination&quot;,&quot;filtering&quot;,&quot;sorting&quot;,&quot;ai-search&quot;,&quot;analytics&quot;],&quot;ui&quot;:{&quot;showAiLogos&quot;:true,&quot;componentTitle&quot;:&quot;Search Camping and Cabins in Virginia Beach&quot;},&quot;searchBehavior&quot;:{&quot;placeholder&quot;:&quot;Search&quot;,&quot;mode&quot;:&quot;manual&quot;,&quot;minQueryLength&quot;:4,&quot;showButton&quot;:true,&quot;hideExpiredContent&quot;:true,&quot;buttonText&quot;:&quot;&quot;,&quot;buttonIcon&quot;:&quot;magnifying-glass&quot;,&quot;showQueryAsPill&quot;:true,&quot;showAISummary&quot;:true,&quot;useStreamingSummary&quot;:true},&quot;results&quot;:{&quot;resultLayout&quot;:&quot;Grid&quot;,&quot;showResultsHeader&quot;:true,&quot;customImageFallback&quot;:&quot;\/wp-content\/themes\/virginia-beach\/assets\/images\/profile_default.webp?v=1&quot;,&quot;resultsHeaderText&quot;:&quot;Showing {firstResult} - {lastResult} of {totalResults} {:totalResults}&quot;,&quot;cardClickable&quot;:false,&quot;linkTarget&quot;:&quot;_self&quot;,&quot;showImages&quot;:true,&quot;imageClickable&quot;:true,&quot;showTeasers&quot;:true,&quot;lineClamp&quot;:4,&quot;showRegion&quot;:true,&quot;showScores&quot;:false,&quot;showContentType&quot;:false,&quot;showFeatured&quot;:false,&quot;showCTALink&quot;:false,&quot;listingWebsites&quot;:{&quot;business&quot;:&quot;&quot;,&quot;booking&quot;:&quot;&quot;,&quot;mobile&quot;:&quot;&quot;,&quot;meetings&quot;:&quot;&quot;},&quot;displayOptions&quot;:[{&quot;key&quot;:&quot;list&quot;,&quot;label&quot;:&quot;List View&quot;,&quot;icon&quot;:&quot;list&quot;},{&quot;key&quot;:&quot;map&quot;,&quot;label&quot;:&quot;Map View&quot;,&quot;icon&quot;:&quot;location-dot&quot;,&quot;showPager&quot;:false,&quot;showSorting&quot;:false}]},&quot;filters&quot;:{&quot;dynamicFilters&quot;:true,&quot;collapsibleGroups&quot;:false,&quot;mainFilterLabel&quot;:&quot;Filter Results&quot;,&quot;datesFilterLabel&quot;:&quot;Select your dates&quot;,&quot;filterLogic&quot;:&quot;AND&quot;,&quot;separateRangeSelector&quot;:true,&quot;showInputAndCal&quot;:true,&quot;showFilterResultCount&quot;:false,&quot;showMoreText&quot;:&quot;View All&quot;,&quot;showLessText&quot;:&quot;View Less&quot;,&quot;maxFilterValues&quot;:4,&quot;datePickerOptions&quot;:{&quot;monthsShown&quot;:1},&quot;filtersToShow&quot;:[&quot;Region&quot;,&quot;Services&quot;]},&quot;sorting&quot;:{&quot;initialSort&quot;:&quot;rankSort:desc:shuffle&quot;,&quot;sortOptions&quot;:[{&quot;key&quot;:&quot;rankSort&quot;,&quot;label&quot;:&quot;Ranked&quot;,&quot;direction&quot;:&quot;desc&quot;,&quot;nestedSort&quot;:&quot;shuffle&quot;},{&quot;key&quot;:&quot;random&quot;,&quot;label&quot;:&quot;Random&quot;,&quot;direction&quot;:&quot;asc&quot;},{&quot;key&quot;:&quot;title&quot;,&quot;label&quot;:&quot;A to Z&quot;,&quot;direction&quot;:&quot;asc&quot;},{&quot;key&quot;:&quot;title&quot;,&quot;label&quot;:&quot;Z to A&quot;,&quot;direction&quot;:&quot;desc&quot;}]},&quot;pagination&quot;:{&quot;paginationStyle&quot;:&quot;prevNext&quot;,&quot;limit&quot;:2001,&quot;showPageButtons&quot;:true,&quot;showFirstLastButtons&quot;:false,&quot;prevNextIcon&quot;:&quot;arrow&quot;,&quot;nextButtonText&quot;:&quot;&quot;,&quot;prevButtonText&quot;:&quot;&quot;,&quot;visiblePageLinks&quot;:9,&quot;allowResultsPerPageChange&quot;:false,&quot;paginationInfoText&quot;:&quot;&quot;},&quot;responsive&quot;:{&quot;mobile&quot;:{&quot;results&quot;:{&quot;resultLayout&quot;:&quot;list&quot;},&quot;filters&quot;:{&quot;filterLayout&quot;:&quot;drawer&quot;}},&quot;desktop&quot;:{&quot;results&quot;:{&quot;resultLayout&quot;:&quot;grid&quot;},&quot;filters&quot;:{&quot;filterLayout&quot;:&quot;sidebar&quot;}}},&quot;tokenUrl&quot;:&quot;https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/miles-ai-mfe\/v1\/guided-discovery\/token&quot;,&quot;preFilters&quot;:&quot;\\&quot;Camping &amp; Cabins\\&quot;&quot;,&quot;type&quot;:[&quot;listing&quot;],&quot;client&quot;:&quot;visit-virginia-beach&quot;,&quot;apiUrl&quot;:&quot;https:\/\/api-search.milesai.net\/api&quot;,&quot;timezone&quot;:&quot;America\/New_York&quot;}' data-meta='{&quot;mountType&quot;:&quot;.\/searchMount&quot;,&quot;instanceKey&quot;:&quot;miles-ai-100163&quot;,&quot;siteEnvironment&quot;:&quot;live&quot;}'><\/div>\n<section class=\"cardstack pd-bottom-x2 pd-top-x2\"><span class=\"sticky-waves waves-after waves-after--cyan\"><\/span><div class=\"title-wrap fold flex-nowrap gapped fold-wrap md padded mg-bottom-x2\"><div class=\"title-content color-white\"><p class=\"alt-font-family size-32 mg-bottom-small eyebrow\">Outdoor-Abenteuer<\/p><h2 id=\"related-articles-heading\">Campen unter dem K\u00fcstenhimmel<\/h2><p>Tauschen Sie Hotelw\u00e4nde gegen frische Luft und sternenklare N\u00e4chte. Von Campingpl\u00e4tzen am Wasser bis zu R\u00fcckzugsorten im Wald \u2013 Camping ist eine einzigartige Art, Virginia Beach zu erleben. <\/p><\/div><\/div><div class=\"cardstack-wrap fold-wrap md padded\"><div class=\"stack-cards\" id=\"sticky-list\">\n<div class=\"a-card\"><div class=\"fold-sm-up fold-wrap flex-nowrap\"><div class=\"card-video video-container\"><button type=\"button\" class=\"youtube-play-link\" data-youtube-id=\"i6mjzaqd_Bw\" data-video-title=\"Explore First Landing with the Family\" aria-label=\"Play video: Explore First Landing with the Family\"><img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/i6mjzaqd_Bw\/maxresdefault.jpg\" alt=\"Explore First Landing with the Family video thumbnail\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"youtube-thumbnail\"\/><span class=\"play-pause-button button button--circle has-icon has-icon--after has-icon--play\" aria-hidden=\"true\">Erleben<\/span><\/button><\/div><div class=\"card-content bg-white fold align-items-center\"><div><h3 class=\"h5\">First Landing mit der Familie entdecken<\/h3><p class=\"color-neo-800 size-14\">Eingebettet zwischen K\u00fcstenwald und Uferlinie bietet First Landing gro\u00dfz\u00fcgige Stellpl\u00e4tze, eine malerische Umgebung und einfachen Zugang zu Outdoor-Aktivit\u00e4ten f\u00fcr jedes Alter.<\/p><a href=\"https:\/\/youtube.com\/shorts\/i6mjzaqd_Bw?si=W46TkSB7LrfmJhZ6\" class=\"read-more color-fuchsia-900 has-icon has-icon--after has-icon--tailarrow-right has-icon--bg-fuchsia-900 mg-top\">Raus in die Natur<\/a><\/div><\/div><\/div><\/div>\n<\/div><\/div><\/section>\n\n<section class=\"mosaic-section mg-top-x2\"><div class=\"title-wrap title-wrap--plus fold flex-nowrap gapped fold-wrap xl padded mg-bottom-x2\"><div class=\"title-content\"><p class=\"alt-font-family size-32 mg-bottom-small\" id=\"related-articles-eyebrow\">Entdecken Sie <\/p><h2 class=\"color-default\">Parks in Virginia Beach<\/h2><p>Von ruhigen Trails bis zu sonnenverw\u00f6hnten Str\u00e4nden \u2013 die Parks in Virginia Beach sind wie gemacht f\u00fcr frische Luft und Wohlf\u00fchlmomente. <\/p><\/div><\/div><div class=\"fold-wrap xl mosaic-wrap padded boxes\">\n<div class=\"box box--hover\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/first-landing-state-park\/\" class=\"image-border image-border--bottom active-hover active-hover--lemon mg-bottom image-border--lemon\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/07\/PH_LSR22_First-Landing-State-Park-Family-compressed-10-800x600.jpg\" alt=\"Eine Familie geht Hand in Hand auf einem bewaldeten Pfad im First Landing State Park, mit einer Frau in einem flie&#xDF;enden Rock, einem Mann in einem hellen Hemd und einem M&#xE4;dchen in einem wei&#xDF;en Kleid.\" width=\"400\" height=\"300\" loading=\"lazy\"\/><\/figure><\/a><div class=\"box-info\"><p class=\"box-title size-24 head-font-family font-weight-700\">First Landing State Park<\/p><p class=\"size-14\">Wo Geschichte tief verwurzelt ist, Sumpfzypressen aus dem Sumpf emporragen und Abenteuer hinter jeder Ecke wartet.<\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/first-landing-state-park\/\" class=\"button has-icon has-icon--after has-icon--tailarrow-right has-icon--bg-lemon-900 mg-top\" aria-label=\"Read more - First Landing State Park\">Mehr erfahren<\/a><\/div><\/div>\n\n\n\n<div class=\"box box--hover\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/false-cape-state-park\/\" class=\"image-border image-border--bottom active-hover active-hover--lemon mg-bottom image-border--lemon\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/07\/PH_LSR18_Camping-False-Cape_9-800x600.jpg\" alt=\"Ein Paar steht am Strand im False Cape State Park, eingerahmt von einem Campingzelt, w&#xE4;hrend die Sonne &#xFC;ber dem Meer aufgeht.\" width=\"400\" height=\"300\" loading=\"lazy\"\/><\/figure><\/a><div class=\"box-info\"><p class=\"box-title size-24 head-font-family font-weight-700\">False Cape State Park<\/p><p class=\"size-14\">Erkunden Sie unber\u00fchrte Str\u00e4nde, einheimische Wildtiere und unverf\u00e4lschte K\u00fcstensch\u00f6nheit.<\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/false-cape-state-park\/\" class=\"button has-icon has-icon--after has-icon--tailarrow-right has-icon--bg-lemon-900 mg-top\" aria-label=\"Read more - False Cape State Park\">Mehr erfahren<\/a><\/div><\/div>\n\n\n\n<div class=\"box box--hover\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/back-bay-national-wildlife-refuge\/\" class=\"image-border image-border--bottom active-hover active-hover--lemon mg-bottom image-border--lemon\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/07\/PHT_LSR23_Back-Bay-Wildlife-2-800x600.jpg\" alt=\"Ein Paar geht Hand in Hand einen sandigen Weg entlang, der zum Strand im Back Bay Wildlife Refuge f&#xFC;hrt, umgeben von Gras und unter einem klaren blauen Himmel.\" width=\"400\" height=\"300\" loading=\"lazy\"\/><\/figure><\/a><div class=\"box-info\"><p class=\"box-title size-24 head-font-family font-weight-700\">Back Bay National Wildlife Refuge<\/p><p class=\"size-14\">Entdecken Sie vielf\u00e4ltige Lebensr\u00e4ume, malerische Wanderwege und ein Paradies f\u00fcr Zugv\u00f6gel.<\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/outdoor-activities\/parks-nature\/back-bay-national-wildlife-refuge\/\" class=\"button has-icon has-icon--after has-icon--tailarrow-right has-icon--bg-lemon-900 mg-top\" aria-label=\"Read more - Back Bay National Wildlife Refuge\">Mehr erfahren<\/a><\/div><\/div>\n<\/div><\/section>\n<div class=\"accordion inline green\" style=\"padding-top:10rem\">\n    \n<div><\/div>\n\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":28931,"parent":28470,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"enable_ai_generated_excerpts":true,"ai_model_name":"","ai_prompt_id":"","footnotes":""},"class_list":["post-28929","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/pages\/28929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/comments?post=28929"}],"version-history":[{"count":4,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/pages\/28929\/revisions"}],"predecessor-version":[{"id":29867,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/pages\/28929\/revisions\/29867"}],"up":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/pages\/28470"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/media\/28931"}],"wp:attachment":[{"href":"https:\/\/www.visitvirginiabeach.com\/de\/wp-json\/wp\/v2\/media?parent=28929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}