{"id":28440,"date":"2025-05-23T08:46:08","date_gmt":"2025-05-23T08:46:08","guid":{"rendered":"https:\/\/www.visitvirginiabeach.com\/experiences\/plages-et-regions\/oceanfront\/"},"modified":"2026-09-03T19:48:28","modified_gmt":"2026-09-03T19:48:28","slug":"oceanfront","status":"publish","type":"page","link":"https:\/\/www.visitvirginiabeach.com\/fr\/experiences\/plages-et-regions\/oceanfront\/","title":{"rendered":"Oceanfront"},"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\/02\/Beach_Family_Oceanfront_1__f780e948-c936-4f4e-8f39-5f57c5596f6f-1-scaled.jpg\" alt=\"A man, woman, and boy run through shallow ocean waves on a sandy beach. In the background, people relax under umbrellas near tall buildings.\" width=\"1920\" height=\"1080\" fetchpriority=\"high\"\/><div class=\"overlay-content\"><h1 class=\"extra\">Oceanfront : Le c\u0153ur de Virginia Beach<\/h1><\/div><\/div><\/div><div class=\"after-overlay-content page-content-wrap fold-wrap md padded\"><p>Le bonheur, c&#8217;est une journ\u00e9e pass\u00e9e \u00e0 fl\u00e2ner sur le Boardwalk, \u00e0 barboter dans l&#8217;oc\u00e9an, \u00e0 se pr\u00e9lasser sur une plage ensoleill\u00e9e, puis \u00e0 d\u00e9guster des pattes de crabe au beurre au coucher du soleil. L&#8217;Oceanfront est l&#8217;exp\u00e9rience par excellence de Virginia Beach. Il abrite des <a href=\"https:\/\/www.visitvirginiabeach.com\/stay\/hotels-and-resorts\/\">h\u00f4tels<\/a> qui donnent sur l&#8217;oc\u00e9an Atlantique scintillant, des <a href=\"https:\/\/www.visitvirginiabeach.com\/trip-ideas\/best-restaurants-with-outdoor-seating-in-virginia-beach\/\" data-type=\"post\" data-id=\"945\">terrasses de restaurants anim\u00e9es<\/a> servant des fruits de mer fra\u00eechement p\u00each\u00e9s et des centaines d&#8217;\u00e9v\u00e9nements uniques \u00e0 Virginia Beach.   <br\/><br\/>Embarquez pour une sortie de p\u00eache, survolez les vagues en parachute ascensionnel ou d\u00e9gustez un repas au bord de l&#8217;eau dans le <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/rudee-inlet\/\">Rudee Inlet Marina District<\/a>. Plongez dans notre <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/on-the-water\/surfing\/\">culture l\u00e9gendaire du surf<\/a> \u2014 soit en regardant la Dawn Patrol \u00e0 The Jetty, soit en attrapant quelques vagues vous-m\u00eame. \u00c0 quelques p\u00e2t\u00e9s de maisons \u00e0 l&#8217;int\u00e9rieur des terres, explorez l&#8217;art de rue, parcourez les galeries locales et achetez des produits artisanaux dans le <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/beaches-districts\/vibe-creative-district\/\">ViBe Creative District<\/a>. Ensuite, passez par l&#8217;<a href=\"https:\/\/www.visitvirginiabeach.com\/trip-ideas\/explore-the-artery-at-the-virginia-beach-oceanfront\/\">Artery District<\/a> pour assister \u00e0 un march\u00e9 \u00e9ph\u00e9m\u00e8re et siroter un caf\u00e9 artisanal.   <br\/><br\/>Le c\u0153ur de tout le divertissement est l&#8217;embl\u00e9matique <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/boardwalk\/\" data-type=\"page\" data-id=\"14996\">Virginia Beach Boardwalk<\/a> :<strong> <\/strong>Trois kilom\u00e8tres color\u00e9s d&#8217;air salin, de restaurants avec vue sur l&#8217;oc\u00e9an et d&#8217;attractions, bord\u00e9s par les sables dor\u00e9s d&#8217;<a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/oceanfront-beach\/542\/\" data-type=\"mdb_listing\" data-id=\"12296\">Oceanfront Beach<\/a>. Que vous commenciez votre journ\u00e9e de vacances par une balade \u00e0 v\u00e9lo tranquille pour admirer un <a href=\"https:\/\/www.visitvirginiabeach.com\/trip-ideas\/top-10-places-for-sunrise-and-sunset-photos-in-virginia-beach\/\" data-type=\"post\" data-id=\"952\">lever de soleil aux couleurs de barbe \u00e0 papa<\/a>, que vous pagayiez sur les eaux calmes de <a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/rudee-inlet\/\">Rudee Inlet<\/a> ou que vous vous d\u00e9cha\u00eeniez lors d&#8217;un <a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/live!-on-atlantic\/3297\/\">concert gratuit<\/a> au parc, vous pouvez compter sur du plaisir pour tous les \u00e2ges, \u00e0 tout moment de l&#8217;ann\u00e9e. <\/p><\/div><\/section>\n\n<section class=\"image-accordion\" role=\"group\" aria-label=\"Accordion Sections\"><div class=\"title-wrap padded fold-wrap xl mg-bottom-x2 mg-top-x2\"><p class=\"alt-font-family size-32 color-neo-700 mg-bottom-small eyebrow\" id=\"related-articles-eyebrow\">Plongez plus profond\u00e9ment<\/p><h2 class=\"color-default\" id=\"related-articles-heading\">Bars, restaurants et lieux de s\u00e9jour de l&#8217;Oceanfront<\/h2><p>Notre embl\u00e9matique Oceanfront abrite des bars en plein air anim\u00e9s, les meilleurs restaurants de fruits de mer et des s\u00e9jours confortables avec des vues imprenables.<\/p><\/div><div class=\"accordion-wrap padded fold fold-wrap xl mg-bottom-x4\">\n<div class=\"col\"><div class=\"col-anchor has-bg\" aria-controls=\"Where to Eat Along the Boardwalk\" id=\"anchor1\" role=\"button\" tabindex=\"0\" aria-label=\"Where to Eat Along the Boardwalk\" aria-expanded=\"false\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/02\/Catch_31_Dining_Friends_1__de7739db-8c2a-49ad-aa53-b32b8b0b4d7b-3-scaled.jpg\" alt=\"\" class=\"background-image\" width=\"0\" height=\"0\"\/><span class=\"anchor-title color-white size-24 head-font-family weight-700\">O\u00f9 manger le long du Boardwalk<\/span><div class=\"col-content\" id=\"spring\" aria-labelledby=\"anchor1\"><p class=\"h3 color-default\">O\u00f9 manger le long du Boardwalk<\/p><p class=\"size-14 color-neo-700\">Fruits de mer fra\u00eechement p\u00each\u00e9s, d\u00e9lices r\u00e9gionaux et tout le charme c\u00f4tier que vous pouvez d\u00e9sirer. <\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/trip-ideas\/where-to-eat-along-the-virginia-beach-boardwalk\/\" class=\"head-font-family color-fuchsia-900  has-icon--tailarrow-right mg-top-small read-more\" rel=\"noopener noreferrer\">En savoir plus<\/a><\/div><\/div><\/div>\n\n\n\n<div class=\"col\"><div class=\"col-anchor has-bg\" aria-controls=\"Oceanfront Accommodations\" id=\"anchor1\" role=\"button\" tabindex=\"0\" aria-label=\"Oceanfront Accommodations\" aria-expanded=\"false\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/07\/PH_LSR25_Hilton-Oceanfront-7-scaled.jpg\" alt=\"Couple enjoying colorful cocktails by a roof top pool under a clear blue sky, kids playing in a pool, and vibrant scenery at Hilton Oceanfront.\" class=\"background-image\" width=\"0\" height=\"0\"\/><span class=\"anchor-title color-white size-24 head-font-family weight-700\">H\u00e9bergements \u00e0 l&#8217;Oceanfront<\/span><div class=\"col-content\" id=\"spring\" aria-labelledby=\"anchor1\"><p class=\"h3 color-default\">H\u00e9bergements \u00e0 l&#8217;Oceanfront<\/p><p class=\"size-14 color-neo-700\">Des s\u00e9jours \u00e9conomiques aux folies de luxe, nous avons l&#8217;endroit id\u00e9al pour vous.<\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/stay\/hotels-and-resorts\/\" class=\"head-font-family color-fuchsia-900  has-icon--tailarrow-right mg-top-small read-more\" rel=\"noopener noreferrer\">En savoir plus<\/a><\/div><\/div><\/div>\n<\/div><\/section>\n\n<section class=\"common-slider pd-bottom-x2 pd-top-x2\"><div class=\"splide slide_boxes hide_pagination fold-wrap xl\"><div class=\"fold-wrap padded common-boxes\"><div class=\"title-wrap fold flex-nowrap gapped fold-wrap xl mg-bottom-x2\"><div class=\"title-content\"><p class=\"alt-font-family size-32 color-neo-700 mg-bottom-small eyebrow\">Trouve plus d\u2019inspiration<\/p><h2 class=\"color-default\" id=\"related-articles-heading\">Attractions de l&#8217;Oceanfront<\/h2><p>L&#8217;Oceanfront regorge de fa\u00e7ons de s&#8217;amuser. Que vous exploriez le Boardwalk, que vous vous aventuriez sur l&#8217;eau ou que vous plongiez dans la culture locale, il y a toujours quelque chose d&#8217;inoubliable \u00e0 quelques pas. <\/p><\/div><\/div><div class=\"splide__track\"><div class=\"splide__list\">\n<div class=\"splide__slide box\"><a href=\"\/experiences\/attractions\/boardwalk\/\" target=\"_self\" class=\"thumb-link active-hover active-hover--fuchsia\" aria-hidden=\"true\" tabindex=\"-1\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/06\/Boardwalk-Family-1-388x258.jpg\" alt=\"\" width=\"388\" height=\"258\" loading=\"lazy\"\/><figcaption class=\"visually-hidden\">Virginia Beach Boardwalk<\/figcaption><\/figure><\/a><h3 class=\"h5 mg-top\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/boardwalk\/\" target=\"_self\" class=\"read-more\" aria-label=\"Read more about Virginia Beach Boardwalk, opens in a new tab\">Virginia Beach Boardwalk<\/a><\/h3><p class=\"size-14\">Explorez trois kilom\u00e8tres glorieux de divertissements uniques \u00e0 Virginia Beach \u2014 avec une \u00e9tendue de sable dor\u00e9 d&#8217;un c\u00f4t\u00e9, et des boutiques, des restaurants et des divertissements sans fin de l&#8217;autre. <\/p><\/div>\n\n\n\n<div class=\"splide__slide box\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/rudee-inlet\/\" target=\"_self\" class=\"thumb-link active-hover active-hover--fuchsia\" aria-hidden=\"true\" tabindex=\"-1\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/05\/Lake-Rudee-SUP-388x258.jpg\" alt=\"\" width=\"388\" height=\"258\" loading=\"lazy\"\/><figcaption class=\"visually-hidden\">Rudee Inlet<\/figcaption><\/figure><\/a><h3 class=\"h5 mg-top\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/rudee-inlet\/\" target=\"_self\" class=\"read-more\" aria-label=\"Read more about Rudee Inlet, opens in a new tab\">Rudee Inlet<\/a><\/h3><p class=\"size-14\">\u00c0 l&#8217;extr\u00e9mit\u00e9 sud de l&#8217;Oceanfront, Rudee Inlet est votre centre unique pour l&#8217;aventure nautique \u2014 y compris la p\u00eache, le jet ski, le parachute ascensionnel et les restaurants au bord de l&#8217;eau. <\/p><\/div>\n\n\n\n<div class=\"splide__slide box\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/virginia-aquarium-marine-science-center\/\" target=\"_self\" class=\"thumb-link active-hover active-hover--fuchsia\" aria-hidden=\"true\" tabindex=\"-1\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/02\/144_3_4883_jpeg_a5b7ed09-63ee-4ecd-8905-eb4a9789a55a-1-388x258.jpg\" alt=\"\" width=\"388\" height=\"258\" loading=\"lazy\"\/><figcaption class=\"visually-hidden\">Virginia Aquarium &amp; Marine Science Center<\/figcaption><\/figure><\/a><h3 class=\"h5 mg-top\"><a href=\"https:\/\/www.visitvirginiabeach.com\/experiences\/attractions\/virginia-aquarium-marine-science-center\/\" target=\"_self\" class=\"read-more\" aria-label=\"Read more about Virginia Aquarium &amp; Marine Science Center, opens in a new tab\">Virginia Aquarium &amp; Marine Science Center<\/a><\/h3><p class=\"size-14\">Avec plus d&#8217;une douzaine d&#8217;esp\u00e8ces de requins, de raies, d&#8217;anguilles et de reptiles, ainsi que des phoques et des loutres de rivi\u00e8re nord-am\u00e9ricaines, vous trouverez \u00e9ducation et \u00e9merveillement \u00e0 chaque tournant.<\/p><\/div>\n\n\n\n<div class=\"splide__slide box\"><a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/atlantic-avenue\/557\/\" target=\"_self\" class=\"thumb-link active-hover active-hover--fuchsia\" aria-hidden=\"true\" tabindex=\"-1\"><figure><img decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/05\/Atlantic-Avenue-Street-Image-388x258.jpg\" alt=\"\" width=\"388\" height=\"258\" loading=\"lazy\"\/><figcaption class=\"visually-hidden\">Atlantic Avenue<\/figcaption><\/figure><\/a><h3 class=\"h5 mg-top\"><a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/atlantic-avenue\/557\/\" target=\"_self\" class=\"read-more\" aria-label=\"Read more about Atlantic Avenue, opens in a new tab\">Atlantic Avenue<\/a><\/h3><p class=\"size-14\">Cette confluence scintillante d&#8217;h\u00f4tels, de boutiques, de restaurants et de bars offre une vari\u00e9t\u00e9 de d\u00e9lices toute l&#8217;ann\u00e9e \u2014 y compris Live! On Atlantic, notre s\u00e9rie de concerts d&#8217;\u00e9t\u00e9 gratuits. <\/p><\/div>\n<\/div><\/div><div class=\"splide__arrows fold align-items-center gapped flex-shrink-0 flex-grow-0 to-the-right align-self-end\"><button class=\"splide__arrow splide__arrow--prev\">Pr\u00e9c.<\/button><div class=\"fraction-indicator\"><\/div><button class=\"splide__arrow splide__arrow--next\">Suivant<\/button><\/div><\/div><\/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><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\r\n    --background-page: var(--color-white);\r\n    --primary-color: var(--color-fuchsia);\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-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\">\/\/ ============================================================\r\n  \/\/ Find the instance element and config by selector or template.\r\n  \/\/ ============================================================\r\n  function findInstance(selector) {\r\n    var el = document.querySelector(selector);\r\n    if (!el) return null;\r\n    try {\r\n      return {\r\n        el: el,\r\n        config: JSON.parse(el.getAttribute('data-config')),\r\n        template: el.getAttribute('data-template'),\r\n      };\r\n    } catch (e) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  \/\/ ============================================================\r\n  \/\/ Mount handler \u2014 fires once per instance\r\n  \/\/ ============================================================\r\n  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 instance = findInstance(selector);\r\n    if (!instance) return;\r\n\r\n    var config = {};\r\n\r\n    \/\/ Event type\r\n    if (instance.config.type === 'event') {\r\n      config.searchBehavior = { placeholder: 'Search for events by interest, topic, or idea...' };\r\n      config.filters = Object.assign(config.filters || {}, { showDatePicker: true });\r\n      config.results = Object.assign(config.results || {}, { resultLayout: \"list\" });\r\n      config.sorting = {\r\n        initialSort: 'next_occurrence:asc',\r\n        sortOptions: []\r\n      };\r\n    }\r\n\r\n    if (Object.keys(config).length > 0) {\r\n      config.selector = selector;\r\n      window.dispatchEvent(new CustomEvent('aisearch_updateConfig', { detail: config }));\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\n\/**\r\n * Custom Display Multi-Layout Template\r\n *\/\r\n\r\n\/\/ ========================================================================\r\n\/\/ CONFIG\r\n\/\/ ========================================================================\r\n\r\nvar LEAFLET_CSS = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\r\nvar LEAFLET_JS = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\r\n\r\n\/\/ Default map center and zoom (Virginia Beach)\r\nvar DEFAULT_CENTER = [36.85, -75.98];\r\nvar DEFAULT_ZOOM = 11;\r\n\r\n\/\/ Map container height\r\nvar MAP_HEIGHT = '600px';\r\n\r\n\/\/ Max distance in degrees from DEFAULT_CENTER to include a marker (~1 degree \u2248 69 miles).\r\n\/\/ Skips results with bad\/erroneous lat\/lon outside the Virginia Beach area.\r\nvar MAX_DISTANCE = 1;\r\n\r\n\/\/ Only render for a specific selector (or null for all instances)\r\nvar SELECTOR_FILTER = null;\r\n\r\n\/\/ ========================================================================\r\n\/\/ STATE\r\n\/\/ ========================================================================\r\n\r\nvar map = null;\r\nvar markersLayer = null;\r\nvar leafletReady = false;\r\nvar pendingDetail = null;\r\nvar popupCleanups = [];\r\n\r\n\/\/ ========================================================================\r\n\/\/ MAP INITIALIZATION\r\n\/\/ ========================================================================\r\n\r\nfunction injectTileFix() {\r\n    if (document.getElementById('leaflet-tile-fix')) return;\r\n    var style = document.createElement('style');\r\n    style.id = 'leaflet-tile-fix';\r\n    \/\/ Override any site CSS that constrains img dimensions (e.g. max-width: 100%).\r\n    \/\/ Leaflet tiles are <img> elements with absolute positioning and must not be constrained.\r\n    style.textContent = '.leaflet-container img { max-width: none !important; max-height: none !important; width: auto !important; min-width: unset !important; }';\r\n    document.head.appendChild(style);\r\n}\r\n\r\nfunction initMap(container, onReady) {\r\n    var L = window.L;\r\n    injectTileFix();\r\n    container.style.height = MAP_HEIGHT;\r\n    container.style.width = '100%';\r\n    \/\/ tap: false fixes iOS Safari touch handling conflicts in Leaflet\r\n    map = L.map(container, { tap: false }).setView(DEFAULT_CENTER, DEFAULT_ZOOM);\r\n    L.tileLayer('https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\r\n        attribution: '&copy; <a href=\"http:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a>',\r\n        maxZoom: 19,\r\n        detectRetina: false\r\n    }).addTo(map);\r\n    markersLayer = L.layerGroup().addTo(map);\r\n    map.invalidateSize();\r\n    onReady();\r\n}\r\n\r\n\/\/ ========================================================================\r\n\/\/ LAYOUT RENDER FUNCTIONS\r\n\/\/ ========================================================================\r\n\r\nfunction placeMarkers(detail) {\r\n    var L = window.L;\r\n    markersLayer.clearLayers();\r\n\r\n    popupCleanups.forEach(function (cleanup) { cleanup(); });\r\n    popupCleanups.length = 0;\r\n\r\n    var results = detail.filteredResults || [];\r\n    var bounds = [];\r\n\r\n    results.forEach(function (result) {\r\n        var lat = result && result.json && result.json.extras && result.json.extras.lat;\r\n        var lon = result && result.json && result.json.extras && result.json.extras.lon;\r\n        if (!lat || !lon) return;\r\n\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) return;\r\n        }\r\n\r\n        var id = result.content_identifier || result.id || String((result.json || {}).id);\r\n        var marker = L.marker([lat, lon]).addTo(markersLayer);\r\n\r\n        var popupEl = document.createElement('div');\r\n\r\n        try {\r\n            var cleanup = detail.renderCard(id, popupEl);\r\n            if (cleanup) popupCleanups.push(cleanup);\r\n        } catch (e) {\r\n            popupEl.innerHTML = '<div style=\"padding:8px\">' + (result.json && result.json.title ? result.json.title : 'View') + '<\/div>';\r\n        }\r\n\r\n        marker.bindPopup(popupEl);\r\n        bounds.push([lat, lon]);\r\n    });\r\n\r\n    if (bounds.length) {\r\n        map.fitBounds(bounds, { padding: [40, 40], maxZoom: 16 });\r\n    }\r\n}\r\n\r\nfunction renderMapLayout(container, detail) {\r\n    if (!map) {\r\n        initMap(container, function () { placeMarkers(detail); });\r\n    } else {\r\n        map.invalidateSize();\r\n        placeMarkers(detail);\r\n    }\r\n}\r\n\r\n\/\/ ========================================================================\r\n\/\/ LAYOUT REGISTRY\r\n\/\/ Map layout keys to their render functions.\r\n\/\/ Container convention: #aisearch-custom-display-{key}\r\n\/\/ To add a layout: define a render function and add an entry here.\r\n\/\/ ========================================================================\r\n\r\nvar layouts = {\r\n    'map': renderMapLayout,\r\n    \/\/ 'otherDisplayKey': renderCustomLayout\r\n};\r\n\r\n\/\/ ========================================================================\r\n\/\/ LEAFLET LOADING\r\n\/\/ ========================================================================\r\n\r\nfunction loadLeaflet(callback) {\r\n    var cssReady = false;\r\n    var jsReady = false;\r\n\r\n    function onBothReady() {\r\n        \/\/ One rAF ensures the CSS has been applied to the DOM before Leaflet\r\n        \/\/ reads any computed styles during map initialization.\r\n        requestAnimationFrame(function () { callback(); });\r\n    }\r\n\r\n    function check() {\r\n        if (cssReady && jsReady) onBothReady();\r\n    }\r\n\r\n    var link = document.createElement('link');\r\n    link.rel = 'stylesheet';\r\n    link.href = LEAFLET_CSS;\r\n    link.onload = function () { cssReady = true; check(); };\r\n    link.onerror = function () { cssReady = true; check(); }; \/\/ don't block on CSS failure\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 () { leafletReady = true; jsReady = true; check(); };\r\n    script.onerror = function () {\r\n        console.error('[vvb-map] Failed to load Leaflet from:', LEAFLET_JS);\r\n    };\r\n    document.head.appendChild(script);\r\n}\r\n\r\n\/\/ ========================================================================\r\n\/\/ DISPLAY HANDLER\r\n\/\/ ========================================================================\r\n\r\nfunction handleDisplayResults(detail) {\r\n    var handler = layouts[detail.activeLayout];\r\n    if (!handler) return;\r\n\r\n    var containerId = 'aisearch-custom-display-' + detail.activeLayout;\r\n    var root = detail.selector ? document.querySelector(detail.selector) : document;\r\n    var container = (root || document).querySelector('#' + containerId);\r\n    if (!container) return;\r\n\r\n    handler(container, detail);\r\n}\r\n\r\n\/\/ ========================================================================\r\n\/\/ EVENT LISTENER\r\n\/\/ ========================================================================\r\n\r\nwindow.addEventListener('aisearch_onDisplayResults', function (event) {\r\n    var detail = event.detail;\r\n    if (!detail) return;\r\n\r\n    if (!layouts[detail.activeLayout]) return;\r\n\r\n    if (SELECTOR_FILTER && detail.selector !== SELECTOR_FILTER) return;\r\n\r\n    if (typeof window.L !== 'undefined') {\r\n        leafletReady = true;\r\n    }\r\n\r\n    if (!leafletReady) {\r\n        pendingDetail = detail;\r\n        if (!document.querySelector('script[src=\"' + LEAFLET_JS + '\"]')) {\r\n            loadLeaflet(function () {\r\n                if (pendingDetail) {\r\n                    handleDisplayResults(pendingDetail);\r\n                    pendingDetail = null;\r\n                }\r\n            });\r\n        }\r\n        return;\r\n    }\r\n\r\n    handleDisplayResults(detail);\r\n});\r\n<\/script><div class=\"miles-ai-mfe miles-ai-template--listings-with-map miles-ai-template--listings\" id=\"miles-ai-1\" data-template=\"listings-with-map\" 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;Explore Oceanfront&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;theme&quot;:{&quot;typography&quot;:{&quot;fontFamily&quot;:&quot;var(--font-family-base)&quot;}},&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;Accommodations&quot;,&quot;Dining&quot;,&quot;Things To Do&quot;]},&quot;sorting&quot;:{&quot;initialSort&quot;:&quot;rankSort:desc&quot;,&quot;sortOptions&quot;:[{&quot;key&quot;:&quot;rankSort&quot;,&quot;label&quot;:&quot;Ranked&quot;,&quot;direction&quot;:&quot;desc&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;:2000,&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;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;}'><\/div>\n<section class=\"image-accordion\" role=\"group\" aria-label=\"Accordion Sections\"><div class=\"title-wrap padded fold-wrap xl mg-bottom-x2 mg-top-x2\"><p class=\"alt-font-family size-32 color-neo-700 mg-bottom-small eyebrow\" id=\"related-articles-eyebrow\"><\/p><p><\/p><\/div><div class=\"accordion-wrap padded fold fold-wrap xl mg-bottom-x4\">\n<div class=\"col\"><div class=\"col-anchor has-bg\" aria-controls=\"Live! On Atlantic\" id=\"anchor1\" role=\"button\" tabindex=\"0\" aria-label=\"Live! On Atlantic\" aria-expanded=\"false\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/02\/Oceanfront_Concert_Friends_3__64302801-f6a3-432e-b053-7bb85f8dc592-11-scaled.jpg\" alt=\"Group of friends with hands in air at Neptune Park during live music\" class=\"background-image\" width=\"0\" height=\"0\"\/><span class=\"anchor-title color-white size-24 head-font-family weight-700\">Live! On Atlantic <\/span><div class=\"col-content\" id=\"spring\" aria-labelledby=\"anchor1\"><p class=\"h3 color-default\">Live! On Atlantic <\/p><p class=\"size-14 color-neo-700\">Notre s\u00e9rie de divertissements bien-aim\u00e9e ravit les publics de tous \u00e2ges toute l&#8217;ann\u00e9e avec des concerts, des festivals, des magiciens, des jongleurs, des personnages costum\u00e9s et plus encore \u2014 la plupart gratuitement. <\/p><a href=\"https:\/\/www.visitvirginiabeach.com\/listing\/live-on-atlantic\/3297\/\" class=\"head-font-family color-fuchsia-900  has-icon--tailarrow-right mg-top-small read-more\" rel=\"noopener noreferrer\">En savoir plus<\/a><\/div><\/div><\/div>\n\n\n\n<div class=\"col\"><div class=\"col-anchor has-bg\" aria-controls=\"Coastal Edge East Coast Surfing Championships (ECSC)\" id=\"anchor1\" role=\"button\" tabindex=\"0\" aria-label=\"Coastal Edge East Coast Surfing Championships (ECSC)\" aria-expanded=\"false\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.visitvirginiabeach.com\/wp-content\/uploads\/2025\/02\/144_3_3004_jpeg_f3b26b54-881b-4ebe-a6a1-c49a6047a587-2-scaled.jpg\" alt=\"East Coast Surfing Championships Virginia Beach Oceanfront\" class=\"background-image\" width=\"0\" height=\"0\"\/><span class=\"anchor-title color-white size-24 head-font-family weight-700\">Coastal Edge East Coast Surfing Championships (ECSC)<\/span><div class=\"col-content\" id=\"spring\" aria-labelledby=\"anchor1\"><p class=\"h3 color-default\">Coastal Edge East Coast Surfing Championships (ECSC)<\/p><p class=\"size-14 color-neo-700\">Le plus ancien concours de surf en continu au monde, l&#8217;ECSC attire plus de 200 des meilleurs surfeurs professionnels masculins et f\u00e9minins du monde, et environ 300 surfeurs amateurs.<\/p><a href=\"https:\/\/www.surfecsc.com\/\" class=\"head-font-family color-fuchsia-900  has-icon--tailarrow-right mg-top-small read-more\" rel=\"noopener noreferrer\">En savoir plus<\/a><\/div><\/div><\/div>\n<\/div><\/section>\n<section class=\"ugc-block mg-top-x2\">\n\t<div class=\"fold-sm-up fold-wrap xl padded-sm-up gapped pd-top-x2 pd-bottom-x2 justify-content-center\">\n\t\t<div class=\"content-wrap col-sm-2\">\n\t\t\t<p class=\"alt-font-family size-32 mg-bottom-small color-white\">#VisitVaBeach<\/p>\n\t\t\t<h2 class=\"mg-bottom\">Imagine-toi \u00e0 Virginia Beach<\/h2>\n\t\t\t<p>Ressentez l&#8217;accueil chaleureux de la destination en parcourant les photos des vacances inoubliables d&#8217;autres visiteurs, puis commencez \u00e0 planifier votre escapade \u00e0 Virginia Beach.<\/p>\n\t\t<\/div>\n\t\t<div class=\"crowdriff-wrap col-sm-4\">\n\t\t\t<script id=\"cr-init__b6e7677fa558de98\" src=\"https:\/\/starling.crowdriff.com\/js\/crowdriff.js\" async=\"\"><\/script>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":28431,"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-28440","page","type-page","status-publish","hentry"],"acf":[],"publishpress_future_action":{"enabled":false,"date":"2026-09-10 23:36:29","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"translation_priority","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/pages\/28440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/comments?post=28440"}],"version-history":[{"count":2,"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/pages\/28440\/revisions"}],"predecessor-version":[{"id":28443,"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/pages\/28440\/revisions\/28443"}],"up":[{"embeddable":true,"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/pages\/28431"}],"wp:attachment":[{"href":"https:\/\/www.visitvirginiabeach.com\/fr\/wp-json\/wp\/v2\/media?parent=28440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}