{"id":1027,"date":"2025-11-07T15:30:45","date_gmt":"2025-11-07T14:30:45","guid":{"rendered":"https:\/\/events.circuitpaulricard.com\/?page_id=1027"},"modified":"2026-04-02T10:42:20","modified_gmt":"2026-04-02T08:42:20","slug":"hebergement","status":"publish","type":"page","link":"https:\/\/events.circuitpaulricard.com\/en\/accueil\/piste\/accompagnant\/hebergement\/","title":{"rendered":"Hospitality"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1027\" class=\"elementor elementor-1027\">\n\t\t\t\t<div class=\"elementor-element elementor-element-225c9bb e-con-full e-flex magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"225c9bb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-b2d7b02 e-con-full e-flex magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"b2d7b02\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d94820d elementor-widget elementor-widget-heading\" data-id=\"d94820d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">h\u00e9bergement<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-29fe78f animated-slow e-flex e-con-boxed magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no elementor-invisible e-con e-parent\" data-id=\"29fe78f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-da64828 section-label elementor-widget elementor-widget-heading\" data-id=\"da64828\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">- H\u00f4tels partenaires<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d42b7b section-label elementor-widget elementor-widget-heading\" data-id=\"2d42b7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Deux adresses d'exception au coeur du Var, \u00e0 quelques minutes du circuit<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b513e1d e-con-full selection-hotels e-flex magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"b513e1d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-bacda63 e-con-full hotelcast selection-hotels e-flex magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"bacda63\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-284bcb7 elementor-widget elementor-widget-heading\" data-id=\"284bcb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Hotel &amp; Spa du Castellet *****<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8efa321 hotel-details elementor-widget elementor-widget-text-editor\" data-id=\"8efa321\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Dominant le Circuit Paul Ricard, l\u2019H\u00f4tel &amp; Spa du Castellet ***** incarne l\u2019alliance parfaite entre prestige, haute gastronomie et bien-\u00eatre absolu. Au c\u0153ur d\u2019un parc de 12 hectares, cet \u00e9crin Relais &amp; Ch\u00e2teaux propose une immersion totale dans l&rsquo;\u00e9l\u00e9gance proven\u00e7ale, port\u00e9e par une table triplement \u00e9toil\u00e9e et un spa d\u2019exception multi-prim\u00e9. Chaque d\u00e9tail est con\u00e7u pour offrir une parenth\u00e8se de s\u00e9r\u00e9nit\u00e9 exclusive, o\u00f9 le raffinement des infrastructures r\u00e9pond \u00e0 l\u2019exigence de performance du plateau du Castellet. Une destination rare, d\u00e9di\u00e9e \u00e0 l\u2019excellence et \u00e0 la d\u00e9connexion.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41dcd1d hotel-details elementor-widget elementor-widget-button\" data-id=\"41dcd1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/www.hotelducastellet.net\/fr\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Informations &amp; r\u00e9servations<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b2cfe87 e-con-full gphotel e-flex magic-button-disabled-no wpr-particle-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"b2cfe87\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8081c7f elementor-widget elementor-widget-heading\" data-id=\"8081c7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Grand Prix H\u00f4tel &amp; Restaurant ***<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d760b88 hotel-details elementor-widget elementor-widget-text-editor\" data-id=\"d760b88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00c0 seulement 300 m\u00e8tres du Circuit Paul Ricard, le Grand Prix H\u00f4tel &amp; Restaurant s&rsquo;impose comme l&rsquo;adresse strat\u00e9gique pour conjuguer intensit\u00e9 sportive et s\u00e9r\u00e9nit\u00e9 proven\u00e7ale. Entre immersion au c\u0153ur de l\u2019action et parenth\u00e8se de d\u00e9tente au bord de la piscine, chaque s\u00e9jour devient une exp\u00e9rience optimis\u00e9e o\u00f9 l&rsquo;exigence du confort rencontre l&rsquo;\u00e9nergie de la performance.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5af98a2 hotel-details elementor-widget elementor-widget-button\" data-id=\"5af98a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/grandprixhotel.fr\/fr\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Informations &amp; r\u00e9servations<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-81e0fc8 e-flex e-con-boxed magic-button-disabled-no wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"81e0fc8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9e3f25 section-label elementor-widget elementor-widget-heading\" data-id=\"e9e3f25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">- H\u00f4tels \u00e0 proximit\u00e9<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63e315a section-label elementor-widget elementor-widget-heading\" data-id=\"63e315a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Une s\u00e9lection d'adresses dans la r\u00e9gion, pour tous les profils et toutes les envies<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f96ace elementor-widget elementor-widget-shortcode\" data-id=\"8f96ace\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"cpr-hotel-panel-mount\"><\/div>\r\n\r\n<div class=\"gallery-container\">\r\n    <div class=\"gallery-track\" id=\"galleryTrack\">\r\n        <div class=\"card-wrapper\" data-index=\"0\">\r\n            <div class=\"card\">\r\n                <img decoding=\"async\" src=\"https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg\" alt=\"H\u00f4tel 1\" class=\"card-img\">\r\n                <div class=\"card-content\">\r\n                    <h3 class=\"card-title\">H\u00f4tel du Castellet<\/h3>\r\n                    <p class=\"card-subtitle\">5 \u00c9toiles - Le Castellet<\/p>\r\n                <\/div>\r\n                <button class=\"card-edit-btn\" data-index=\"0\" style=\"display:none\">\r\n                    <svg width=\"13\" height=\"13\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M8.5 1.5 L10.5 3.5 L4 10 L1.5 10.5 L2 8 Z\" stroke=\"#fff\" stroke-width=\"1.1\" fill=\"none\" stroke-linejoin=\"round\"\/><\/svg>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"card-wrapper\" data-index=\"1\">\r\n            <div class=\"card\">\r\n                <img decoding=\"async\" src=\"https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg\" alt=\"H\u00f4tel 2\" class=\"card-img\">\r\n                <div class=\"card-content\">\r\n                    <h3 class=\"card-title\">Grand Prix H\u00f4tel<\/h3>\r\n                    <p class=\"card-subtitle\">3 \u00c9toiles - Circuit Paul Ricard<\/p>\r\n                <\/div>\r\n                <button class=\"card-edit-btn\" data-index=\"1\" style=\"display:none\">\r\n                    <svg width=\"13\" height=\"13\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M8.5 1.5 L10.5 3.5 L4 10 L1.5 10.5 L2 8 Z\" stroke=\"#fff\" stroke-width=\"1.1\" fill=\"none\" stroke-linejoin=\"round\"\/><\/svg>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"card-wrapper\" data-index=\"2\">\r\n            <div class=\"card\">\r\n                <img decoding=\"async\" src=\"https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg\" alt=\"H\u00f4tel 3\" class=\"card-img\">\r\n                <div class=\"card-content\">\r\n                    <h3 class=\"card-title\">Villa Capelan<\/h3>\r\n                    <p class=\"card-subtitle\">Charme - Bandol<\/p>\r\n                <\/div>\r\n                <button class=\"card-edit-btn\" data-index=\"2\" style=\"display:none\">\r\n                    <svg width=\"13\" height=\"13\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M8.5 1.5 L10.5 3.5 L4 10 L1.5 10.5 L2 8 Z\" stroke=\"#fff\" stroke-width=\"1.1\" fill=\"none\" stroke-linejoin=\"round\"\/><\/svg>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"card-wrapper\" data-index=\"3\">\r\n            <div class=\"card\">\r\n                <img decoding=\"async\" src=\"https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg\" alt=\"H\u00f4tel 4\" class=\"card-img\">\r\n                <div class=\"card-content\">\r\n                    <h3 class=\"card-title\">Hostellerie B\u00e9rard<\/h3>\r\n                    <p class=\"card-subtitle\">Gastronomie - La Cadi\u00e8re<\/p>\r\n                <\/div>\r\n                <button class=\"card-edit-btn\" data-index=\"3\" style=\"display:none\">\r\n                    <svg width=\"13\" height=\"13\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M8.5 1.5 L10.5 3.5 L4 10 L1.5 10.5 L2 8 Z\" stroke=\"#fff\" stroke-width=\"1.1\" fill=\"none\" stroke-linejoin=\"round\"\/><\/svg>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"card-wrapper\" data-index=\"4\">\r\n            <div class=\"card\">\r\n                <img decoding=\"async\" src=\"https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg\" alt=\"H\u00f4tel 5\" class=\"card-img\">\r\n                <div class=\"card-content\">\r\n                    <h3 class=\"card-title\">Ile Rousse<\/h3>\r\n                    <p class=\"card-subtitle\">Thalasso - Bandol<\/p>\r\n                <\/div>\r\n                <button class=\"card-edit-btn\" data-index=\"4\" style=\"display:none\">\r\n                    <svg width=\"13\" height=\"13\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M8.5 1.5 L10.5 3.5 L4 10 L1.5 10.5 L2 8 Z\" stroke=\"#fff\" stroke-width=\"1.1\" fill=\"none\" stroke-linejoin=\"round\"\/><\/svg>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n:root {\r\n    --card-width: clamp(220px, 20vw, 280px);\r\n    --card-height: calc(var(--card-width) * 1.4);\r\n    --bounce-easing: cubic-bezier(0.34, 1.56, 0.64, 1);\r\n    --font-main: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\r\n}\r\n\r\n.gallery-container {\r\n    width: 100%;\r\n    min-height: 120vh;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    overflow: hidden;\r\n    perspective: 1500px;\r\n    background: transparent;\r\n    padding: 100px 0;\r\n}\r\n\r\n.gallery-track {\r\n    position: relative;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    width: 100%;\r\n    height: var(--card-height);\r\n}\r\n\r\n.card-wrapper {\r\n    position: absolute;\r\n    width: var(--card-width);\r\n    height: var(--card-height);\r\n    transform-origin: center center;\r\n    will-change: transform;\r\n    transition: z-index 0.2s ease;\r\n}\r\n\r\n.card {\r\n    position: relative;\r\n    width: 100%;\r\n    height: 100%;\r\n    border-radius: 20px;\r\n    overflow: hidden;\r\n    box-shadow: 0 10px 30px rgba(0,0,0,0.3);\r\n    background: #1a1a1a;\r\n    transition: transform 0.5s var(--bounce-easing), filter 0.4s ease, box-shadow 0.4s ease;\r\n    cursor: pointer;\r\n}\r\n\r\n.card img {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: cover;\r\n    pointer-events: none;\r\n}\r\n\r\n.card-content {\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    padding: 25px 15px;\r\n    background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, transparent 100%);\r\n    color: white;\r\n    font-family: var(--font-main);\r\n}\r\n\r\n.card-title {\r\n    margin: 0;\r\n    font-size: 1.2rem;\r\n    font-weight: 700;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.5px;\r\n}\r\n\r\n.card-subtitle {\r\n    margin: 4px 0 0;\r\n    font-size: 0.85rem;\r\n    opacity: 0.8;\r\n}\r\n\r\n\/* Bouton \u00e9dition sur carte *\/\r\n.card-edit-btn {\r\n    position: absolute;\r\n    top: 12px;\r\n    right: 12px;\r\n    width: 32px;\r\n    height: 32px;\r\n    background: rgba(200,16,46,0.9);\r\n    border: none;\r\n    border-radius: 50%;\r\n    cursor: pointer;\r\n    display: none !important;\r\n    align-items: center;\r\n    justify-content: center;\r\n    z-index: 10;\r\n    transition: background 0.2s, transform 0.15s;\r\n    backdrop-filter: blur(4px);\r\n}\r\n\r\n.card-edit-btn.cpr-editor-visible {\r\n    display: flex !important;\r\n}\r\n\t\r\n.card-edit-btn:hover { background: #C8102E; transform: scale(1.1); }\r\n.card-edit-btn.cpr-hidden { display: none !important; }\r\n\r\n\/* DESKTOP HOVER *\/\r\n@media (min-width: 769px) {\r\n    .card-wrapper:hover { z-index: 100 !important; }\r\n    .card-wrapper:hover .card { transform: scale(1.1) translateY(-30px); box-shadow: 0 25px 50px rgba(0,0,0,0.6); }\r\n    .gallery-track:has(.card-wrapper:hover) .card-wrapper:not(:hover) .card { filter: brightness(0.4) blur(4px); transform: scale(0.9); }\r\n}\r\n\r\n\/* MOBILE *\/\r\n@media (max-width: 768px) {\r\n    :root { --card-width: 75vw; }\r\n    .gallery-container { min-height: 180vh; align-items: flex-start; padding-top: 5vh; }\r\n    .gallery-track { height: 100vh; }\r\n    .card { transform: scale(1); }\r\n}\r\n\r\n\/* PANNEAU \u00c9DITEUR *\/\r\n.cpr-hotel-overlay {\r\n    display: none; position: fixed; inset: 0;\r\n    background: rgba(26,26,24,0.55); z-index: 9998;\r\n    backdrop-filter: blur(2px);\r\n}\r\n.cpr-hotel-overlay.open { display: block; }\r\n\r\n.cpr-hotel-panel {\r\n    position: fixed; top: 0; right: -460px; width: 420px; height: 100vh;\r\n    background: #fff; z-index: 9999; overflow-y: auto;\r\n    transition: right 0.3s cubic-bezier(0.22,1,0.36,1);\r\n    display: flex; flex-direction: column;\r\n    box-shadow: -8px 0 40px rgba(26,26,24,0.15);\r\n    font-family: 'DM Sans', 'Segoe UI', sans-serif;\r\n}\r\n.cpr-hotel-panel.open { right: 0; }\r\n\r\n.cpr-hotel-panel-header {\r\n    padding: 22px 26px 18px; border-bottom: 1px solid #F0EEE8;\r\n    display: flex; align-items: center; justify-content: space-between;\r\n    position: sticky; top: 0; background: #fff; z-index: 2;\r\n}\r\n.cpr-hotel-panel-title { font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #1A1A18; }\r\n.cpr-hotel-panel-close {\r\n    width: 30px; height: 30px; background: none; border: 1px solid #E8E6E0;\r\n    cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s;\r\n}\r\n.cpr-hotel-panel-close:hover { background: #1A1A18; }\r\n.cpr-hotel-panel-close:hover svg line { stroke: #fff; }\r\n\r\n.cpr-hotel-panel-body { padding: 26px; flex: 1; }\r\n\r\n\/* Miniature preview *\/\r\n.cpr-hotel-preview {\r\n    width: 100%; height: 140px; background: #F2F0EB;\r\n    overflow: hidden; margin-bottom: 20px; border-radius: 4px;\r\n}\r\n.cpr-hotel-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }\r\n\r\n\/* Form *\/\r\n.cpr-hfg { margin-bottom: 16px; }\r\n.cpr-hfl {\r\n    display: block; font-size: 9px; font-weight: 700; letter-spacing: 0.16em;\r\n    text-transform: uppercase; color: #9A9A92; margin-bottom: 7px;\r\n}\r\n.cpr-hfi {\r\n    font-family: inherit !important; font-size: 12px !important;\r\n    color: #1A1A18 !important; background: #fff !important;\r\n    border: 1px solid #D8D6D0 !important; padding: 10px 13px !important;\r\n    width: 100% !important; outline: none !important; border-radius: 0 !important;\r\n    box-shadow: none !important; -webkit-appearance: none !important;\r\n    appearance: none !important; transition: border-color 0.18s !important;\r\n}\r\n.cpr-hfi:focus { border-color: #1A1A18 !important; }\r\n.cpr-hfi::placeholder { color: #C0BEB8 !important; font-style: italic !important; }\r\n.cpr-hfhint { font-size: 9px; color: #B0AEA8; margin-top: 4px; font-style: italic; }\r\n\r\n.cpr-hotel-form-actions { display: flex; gap: 8px; margin-top: 22px; }\r\n.cpr-hbtn-save {\r\n    font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: 0.14em;\r\n    text-transform: uppercase; background: #1A1A18; color: #fff; border: none;\r\n    padding: 12px 22px; cursor: pointer; flex: 1; transition: background 0.2s;\r\n}\r\n.cpr-hbtn-save:hover { background: #333; }\r\n.cpr-hbtn-cancel {\r\n    font-family: inherit; font-size: 10px; font-weight: 600; letter-spacing: 0.12em;\r\n    text-transform: uppercase; background: transparent; color: #9A9A92;\r\n    border: 1px solid #D8D6D0; padding: 12px 18px; cursor: pointer; transition: all 0.2s;\r\n}\r\n.cpr-hbtn-cancel:hover { color: #1A1A18; border-color: #1A1A18; }\r\n\r\n.cpr-hotel-status {\r\n    font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;\r\n    padding: 10px 13px; margin-top: 14px; display: none;\r\n}\r\n.cpr-hotel-status.success { background: rgba(42,122,74,0.1); color: #2A7A4A; display: block; }\r\n.cpr-hotel-status.error   { background: rgba(200,16,46,0.1);  color: #C8102E; display: block; }\r\n\r\n.cpr-hotel-sep { border: none; border-top: 1px solid #F0EEE8; margin: 20px 0; }\r\n\r\n.cpr-hotel-card-num {\r\n    font-size: 9px; font-weight: 700; letter-spacing: 0.18em;\r\n    text-transform: uppercase; color: #C8102E; margin-bottom: 6px;\r\n}\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\r\n    var API_BASE = '\/wp-json\/cpr\/v1\/hotels';\r\n    var isEditor = false;\r\n    var nonce    = '';\r\n    var editIndex = -1;\r\n\r\n    var wrappers = document.querySelectorAll('.card-wrapper');\r\n    var track    = document.getElementById('galleryTrack');\r\n\r\n    \/* ---- DONN\u00c9ES PAR D\u00c9FAUT ---- *\/\r\n    var DEFAULT_HOTELS = [\r\n        { title: 'H\u00f4tel du Castellet',  subtitle: '5 \u00c9toiles - Le Castellet',       img: 'https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg' },\r\n        { title: 'Grand Prix H\u00f4tel',    subtitle: '3 \u00c9toiles - Circuit Paul Ricard', img: 'https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg' },\r\n        { title: 'Villa Capelan',       subtitle: 'Charme - Bandol',                 img: 'https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg' },\r\n        { title: 'Hostellerie B\u00e9rard',  subtitle: 'Gastronomie - La Cadi\u00e8re',        img: 'https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg' },\r\n        { title: 'Ile Rousse',          subtitle: 'Thalasso - Bandol',               img: 'https:\/\/events.circuitpaulricard.com\/wp-content\/uploads\/2025\/10\/pexels-photo-164250.jpeg' },\r\n    ];\r\n\r\n    var HOTELS = DEFAULT_HOTELS.slice();\r\n\r\n    \/* ---- REFS PANNEAU (inject\u00e9es apr\u00e8s) ---- *\/\r\n    var overlay, panel, pClose, pTitle, btnSave, btnCancel, statusEl;\r\n    var fTitle, fSubtitle, fImg, previewImg;\r\n\r\n    \/* ---- D\u00c9TECTION \u00c9DITEUR ---- *\/\r\n    function initEditor() {\r\n        if (window.cprEditorData && window.cprEditorData.isEditor) {\r\n            isEditor = true;\r\n            nonce    = window.cprEditorData.nonce;\r\n            document.querySelectorAll('.card-edit-btn').forEach(function (b) {\r\n    b.classList.add('cpr-editor-visible');\r\n\t});\r\n            injectPanel();\r\n            bindEditButtons();\r\n        }\r\n    }\r\n\r\n    if (document.readyState === 'complete') { initEditor(); }\r\n    else { window.addEventListener('load', initEditor); }\r\n\r\n    \/* ---- CHARGEMENT DONN\u00c9ES ---- *\/\r\n    fetch(API_BASE)\r\n        .then(function (r) { return r.json(); })\r\n        .then(function (data) {\r\n            if (data && data.length === 5) {\r\n                HOTELS = data;\r\n                applyHotelsToCards();\r\n            }\r\n        })\r\n        .catch(function () {});\r\n\r\n    function applyHotelsToCards() {\r\n        wrappers.forEach(function (w, i) {\r\n            var h = HOTELS[i];\r\n            if (!h) return;\r\n            var img   = w.querySelector('.card-img');\r\n            var title = w.querySelector('.card-title');\r\n            var sub   = w.querySelector('.card-subtitle');\r\n            if (img)   { img.src = h.img; img.alt = h.title; }\r\n            if (title) title.textContent = h.title;\r\n            if (sub)   sub.textContent   = h.subtitle;\r\n        });\r\n    }\r\n\r\n    \/* ---- BOUTONS \u00c9DITION SUR CARTES ---- *\/\r\n    function bindEditButtons() {\r\n        document.querySelectorAll('.card-edit-btn').forEach(function (btn) {\r\n            btn.addEventListener('click', function (e) {\r\n                e.stopPropagation();\r\n                var idx = parseInt(btn.dataset.index, 10);\r\n                openEdit(idx);\r\n            });\r\n        });\r\n    }\r\n\r\n    \/* ---- INJECTION PANNEAU ---- *\/\r\n    function injectPanel() {\r\n        var mount = document.getElementById('cpr-hotel-panel-mount');\r\n        mount.innerHTML =\r\n            '<div class=\"cpr-hotel-overlay\" id=\"cpr-hotel-overlay\"><\/div>' +\r\n            '<div class=\"cpr-hotel-panel\" id=\"cpr-hotel-panel\">' +\r\n                '<div class=\"cpr-hotel-panel-header\">' +\r\n                    '<span class=\"cpr-hotel-panel-title\" id=\"cpr-hotel-panel-title\">Modifier l\\'h\u00f4tel<\/span>' +\r\n                    '<button class=\"cpr-hotel-panel-close\" id=\"cpr-hotel-panel-close\">' +\r\n                        '<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">' +\r\n                            '<line x1=\"1\" y1=\"1\" x2=\"11\" y2=\"11\" stroke=\"#1A1A18\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>' +\r\n                            '<line x1=\"11\" y1=\"1\" x2=\"1\" y2=\"11\" stroke=\"#1A1A18\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>' +\r\n                        '<\/svg>' +\r\n                    '<\/button>' +\r\n                '<\/div>' +\r\n                '<div class=\"cpr-hotel-panel-body\">' +\r\n                    '<div class=\"cpr-hotel-preview\"><img decoding=\"async\" id=\"cpr-hotel-preview-img\" src=\"\" alt=\"\"\/><\/div>' +\r\n                    '<div id=\"cpr-hotel-card-num\" class=\"cpr-hotel-card-num\"><\/div>' +\r\n                    '<div class=\"cpr-hfg\">' +\r\n                        '<label class=\"cpr-hfl\">Titre<\/label>' +\r\n                        '<input class=\"cpr-hfi\" id=\"cpr-h-title\" type=\"text\" placeholder=\"ex: H\u00f4tel du Castellet\"\/>' +\r\n                    '<\/div>' +\r\n                    '<div class=\"cpr-hfg\">' +\r\n                        '<label class=\"cpr-hfl\">Sous-titre<\/label>' +\r\n                        '<input class=\"cpr-hfi\" id=\"cpr-h-subtitle\" type=\"text\" placeholder=\"ex: 5 \u00c9toiles - Le Castellet\"\/>' +\r\n                    '<\/div>' +\r\n                    '<div class=\"cpr-hfg\">' +\r\n                        '<label class=\"cpr-hfl\">URL de l\\'image<\/label>' +\r\n                        '<input class=\"cpr-hfi\" id=\"cpr-h-img\" type=\"url\" placeholder=\"https:\/\/...\"\/>' +\r\n                        '<p class=\"cpr-hfhint\">M\u00e9diath\u00e8que WordPress \u2192 clic sur l\\'image \u2192 Copier l\\'URL<\/p>' +\r\n                    '<\/div>' +\r\n                    '<div class=\"cpr-hotel-form-actions\">' +\r\n                        '<button class=\"cpr-hbtn-save\" id=\"cpr-h-save\">Enregistrer<\/button>' +\r\n                        '<button class=\"cpr-hbtn-cancel\" id=\"cpr-h-cancel\">Annuler<\/button>' +\r\n                    '<\/div>' +\r\n                    '<div class=\"cpr-hotel-status\" id=\"cpr-hotel-status\"><\/div>' +\r\n                '<\/div>' +\r\n            '<\/div>';\r\n\r\n        overlay    = document.getElementById('cpr-hotel-overlay');\r\n        panel      = document.getElementById('cpr-hotel-panel');\r\n        pClose     = document.getElementById('cpr-hotel-panel-close');\r\n        pTitle     = document.getElementById('cpr-hotel-panel-title');\r\n        btnSave    = document.getElementById('cpr-h-save');\r\n        btnCancel  = document.getElementById('cpr-h-cancel');\r\n        statusEl   = document.getElementById('cpr-hotel-status');\r\n        fTitle     = document.getElementById('cpr-h-title');\r\n        fSubtitle  = document.getElementById('cpr-h-subtitle');\r\n        fImg       = document.getElementById('cpr-h-img');\r\n        previewImg = document.getElementById('cpr-hotel-preview-img');\r\n\r\n        pClose.addEventListener('click', closePanel);\r\n        overlay.addEventListener('click', closePanel);\r\n        btnSave.addEventListener('click', handleSave);\r\n        btnCancel.addEventListener('click', closePanel);\r\n\r\n        \/* Preview image en temps r\u00e9el *\/\r\n        fImg.addEventListener('input', function () {\r\n            if (fImg.value) previewImg.src = fImg.value;\r\n        });\r\n    }\r\n\r\n    \/* ---- OPEN \/ CLOSE ---- *\/\r\n    function openEdit(idx) {\r\n        editIndex = idx;\r\n        var h = HOTELS[idx];\r\n        pTitle.textContent = 'Modifier l\\'h\u00f4tel ' + (idx + 1);\r\n        document.getElementById('cpr-hotel-card-num').textContent = 'Carte ' + (idx + 1) + ' \/ 5';\r\n        fTitle.value    = h.title;\r\n        fSubtitle.value = h.subtitle;\r\n        fImg.value      = h.img;\r\n        previewImg.src  = h.img;\r\n        showStatus('', '');\r\n        panel.classList.add('open');\r\n        overlay.classList.add('open');\r\n        document.body.style.overflow = 'hidden';\r\n    }\r\n\r\n    function closePanel() {\r\n        if (!panel) return;\r\n        panel.classList.remove('open');\r\n        overlay.classList.remove('open');\r\n        document.body.style.overflow = '';\r\n        showStatus('', '');\r\n    }\r\n\r\n    \/* ---- SAUVEGARDE ---- *\/\r\n    function handleSave() {\r\n        var title    = fTitle.value.trim();\r\n        var subtitle = fSubtitle.value.trim();\r\n        var img      = fImg.value.trim();\r\n\r\n        if (!title) { showStatus('Le titre est obligatoire.', 'error'); return; }\r\n\r\n        HOTELS[editIndex] = { title: title, subtitle: subtitle, img: img };\r\n        applyHotelsToCards();\r\n\r\n        fetch(API_BASE, {\r\n            method: 'POST',\r\n            headers: { 'Content-Type': 'application\/json', 'X-WP-Nonce': nonce },\r\n            body: JSON.stringify({ hotels: HOTELS })\r\n        })\r\n        .then(function (r) { return r.json(); })\r\n        .then(function (d) {\r\n            if (d && d.success) {\r\n                showStatus('Modifications enregistr\u00e9es !', 'success');\r\n                setTimeout(closePanel, 1200);\r\n            } else {\r\n                showStatus('Erreur lors de la sauvegarde.', 'error');\r\n            }\r\n        })\r\n        .catch(function () { showStatus('Erreur r\u00e9seau.', 'error'); });\r\n    }\r\n\r\n    function showStatus(msg, type) {\r\n        if (!statusEl) return;\r\n        statusEl.textContent = msg;\r\n        statusEl.className   = 'cpr-hotel-status' + (type ? ' ' + type : '');\r\n    }\r\n\r\n    \/* ---- ANIMATION SCROLL ---- *\/\r\n    var updateGallery = function () {\r\n        var rect        = track.getBoundingClientRect();\r\n        var windowHeight = window.innerHeight;\r\n        var screenWidth  = window.innerWidth;\r\n        var isMobile     = screenWidth <= 768;\r\n\r\n        var progress = (windowHeight - rect.top) \/ (windowHeight + rect.height \/ 2);\r\n        progress = Math.min(Math.max(progress * 1.6, 0), 1);\r\n\r\n        wrappers.forEach(function (wrapper, index) {\r\n            var transform = '';\r\n            if (isMobile) {\r\n                var spacing = 150;\r\n                var ty = index * spacing * progress;\r\n                var r  = (index - 2) * 4 * progress;\r\n                var tx = (index % 2 === 0 ? -10 : 10) * progress;\r\n                transform = 'translateY(' + ty + 'px) translateX(' + tx + 'px) rotate(' + r + 'deg)';\r\n                wrapper.style.zIndex = wrappers.length - index;\r\n            } else {\r\n                var rotations    = [-22, -11, 0, 11, 22];\r\n                var translations = [-350, -175, 0, 175, 350];\r\n                var rot  = rotations[index] * progress;\r\n                var txx  = translations[index] * progress * (screenWidth \/ 1400);\r\n                transform = 'translateX(' + txx + 'px) rotate(' + rot + 'deg)';\r\n                wrapper.style.zIndex = index === 2 ? 10 : (index < 2 ? index : 4 - index);\r\n            }\r\n            wrapper.style.transform = transform;\r\n        });\r\n    };\r\n\r\n    window.addEventListener('scroll', function () { requestAnimationFrame(updateGallery); }, { passive: true });\r\n    window.addEventListener('resize', updateGallery);\r\n    updateGallery();\r\n});\r\n<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>h\u00e9bergement &#8211; H\u00f4tels partenaires Deux adresses d&rsquo;exception au coeur du Var, \u00e0 quelques minutes du circuit Hotel &amp; Spa du Castellet ***** Dominant le Circuit Paul Ricard, l\u2019H\u00f4tel &amp; Spa du Castellet ***** incarne l\u2019alliance parfaite entre prestige, haute gastronomie et bien-\u00eatre absolu. Au c\u0153ur d\u2019un parc de 12 hectares, cet \u00e9crin Relais &amp; Ch\u00e2teaux propose une immersion totale dans l&rsquo;\u00e9l\u00e9gance proven\u00e7ale, port\u00e9e par une table triplement \u00e9toil\u00e9e et un spa d\u2019exception multi-prim\u00e9. Chaque d\u00e9tail est con\u00e7u pour offrir une parenth\u00e8se de s\u00e9r\u00e9nit\u00e9 exclusive, o\u00f9 le raffinement des infrastructures r\u00e9pond \u00e0 l\u2019exigence de performance du plateau du Castellet. Une destination rare, d\u00e9di\u00e9e \u00e0 l\u2019excellence et \u00e0 la d\u00e9connexion. Informations &amp; r\u00e9servations Grand Prix H\u00f4tel &amp; Restaurant *** \u00c0 seulement 300 m\u00e8tres du Circuit Paul Ricard, le Grand Prix H\u00f4tel &amp; Restaurant s&rsquo;impose comme l&rsquo;adresse strat\u00e9gique pour conjuguer intensit\u00e9 sportive et s\u00e9r\u00e9nit\u00e9 proven\u00e7ale. Entre immersion au c\u0153ur de l\u2019action et parenth\u00e8se de d\u00e9tente au bord de la piscine, chaque s\u00e9jour devient une exp\u00e9rience optimis\u00e9e o\u00f9 l&rsquo;exigence du confort rencontre l&rsquo;\u00e9nergie de la performance. Informations &amp; r\u00e9servations &#8211; H\u00f4tels \u00e0 proximit\u00e9 Une s\u00e9lection d&rsquo;adresses dans la r\u00e9gion, pour tous les profils et toutes les envies<\/p>","protected":false},"author":1,"featured_media":0,"parent":625,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1027","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/pages\/1027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/comments?post=1027"}],"version-history":[{"count":127,"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/pages\/1027\/revisions"}],"predecessor-version":[{"id":3272,"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/pages\/1027\/revisions\/3272"}],"up":[{"embeddable":true,"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/pages\/625"}],"wp:attachment":[{"href":"https:\/\/events.circuitpaulricard.com\/en\/wp-json\/wp\/v2\/media?parent=1027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}