{"id":2581,"date":"2026-10-07T13:42:10","date_gmt":"2026-10-07T04:42:10","guid":{"rendered":"https:\/\/hotel-ishigaki.com\/bike_rental-2\/"},"modified":"2026-10-07T16:59:22","modified_gmt":"2026-10-07T07:59:22","slug":"bike_rental","status":"publish","type":"page","link":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/","title":{"rendered":"BIKE RENTAL (FR)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2581\" class=\"elementor elementor-2581\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-474ac076 elementor-section-full_width elementor-section-stretched elementor-section-height-min-height elementor-section-height-default elementor-section-items-middle\" data-id=\"474ac076\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;none&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-24f40cb5\" data-id=\"24f40cb5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f4a63b9 igb-heroen elementor-widget elementor-widget-heading\" data-id=\"f4a63b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Bike Rental<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-igbhero2 igb-herosub elementor-widget elementor-widget-heading\" data-id=\"igbhero2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">D\u00e9couvrez l\u2019\u00eele d\u2019Ishigaki \u00e0 votre rythme, \u00e0 v\u00e9lo.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-igbintro elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"igbintro\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ca1a93a\" data-id=\"ca1a93a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-igbcss elementor-widget elementor-widget-html\" data-id=\"igbcss\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- IG bike page css v2.0.0 -->\n<style>\n.igb-photo.igb-photo img{width:100%!important;height:auto!important;aspect-ratio:16\/9;object-fit:cover;object-position:center;display:block;border-radius:12px}\n.igb-jp .elementor-heading-title,.igb-jp.elementor-widget-text-editor,.igb-jp .elementor-widget-container,.igb-jpf{font-family:\"Zen Maru Gothic\",\"Noto Sans JP\",sans-serif!important}\n.igb-btnf .elementor-button{font-family:\"Josefin Sans\",\"Zen Maru Gothic\",\"Noto Sans JP\",sans-serif!important}\n.igb-herosub .elementor-heading-title{font-family:\"Zen Maru Gothic\",\"Noto Sans JP\",sans-serif!important}\n.igb-heroen .elementor-heading-title{font-family:\"Josefin Sans\",\"Zen Maru Gothic\",\"Noto Sans JP\",sans-serif!important}\n.igb-jp .elementor-widget-container a{color:#A9707D}\n.igb-nw{white-space:nowrap}\n.igb-herosub .elementor-heading-title{text-shadow:0 1px 3px rgba(0,0,0,.55),0 0 18px rgba(0,0,0,.45)!important}\n.igb-heroen .elementor-heading-title{text-shadow:0 1px 4px rgba(0,0,0,.35),0 0 20px rgba(0,0,0,.35)!important}\n@media (max-width:767px){.igb-herosub{padding:0 22px}.igb-herosub .elementor-heading-title{word-break:keep-all;overflow-wrap:anywhere}}\n@media (max-width:600px){.igb-rules-card{padding:6px 18px!important;border-radius:14px!important}}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e72d6d9 elementor-widget elementor-widget-heading\" data-id=\"e72d6d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Bike Rental<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdbae1f igb-jp elementor-widget elementor-widget-heading\" data-id=\"fdbae1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Location de v\u00e9los pour nos h\u00f4tes<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8449464 igb-jp elementor-widget elementor-widget-text-editor\" data-id=\"8449464\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tL\u2019Hotel Ishigaki &amp; Chikonkiya propose des v\u00e9los en location \u00e0 ses h\u00f4tes.<br>Jusqu\u2019au terminal des ferries, en centre-ville ou le long de la c\u00f4te\u00a0: partez \u00e0 la d\u00e9couverte de l\u2019\u00eele d\u2019Ishigaki en toute tranquillit\u00e9.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-igbphoto elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"igbphoto\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ccd00b5\" data-id=\"ccd00b5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4f8f0b9 igb-photo elementor-widget elementor-widget-image\" data-id=\"4f8f0b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169-1024x576.webp\" class=\"attachment-large size-large wp-image-1937\" alt=\"V\u00e9lo de ville (location de v\u00e9los)\" srcset=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169-1024x576.webp 1024w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169-300x169.webp 300w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169-768x432.webp 768w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169-1536x864.webp 1536w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-city-bike-169.webp 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f4b2c8e igb-jp elementor-widget elementor-widget-heading\" data-id=\"f4b2c8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">V\u00e9lo de ville<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-18d9a0a igb-jp elementor-widget elementor-widget-text-editor\" data-id=\"18d9a0a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tId\u00e9al pour se d\u00e9placer en ville.<br>Gratuit jusqu\u2019\u00e0 3 heures d\u2019utilisation (une fois par jour).<br><small style=\"color:#7A7A7A\">* Sans assistance \u00e9lectrique<\/small>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-e69d4b6\" data-id=\"e69d4b6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-55ab868 igb-photo elementor-widget elementor-widget-image\" data-id=\"55ab868\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169-1024x576.webp\" class=\"attachment-large size-large wp-image-1938\" alt=\"V\u00e9lo hybride (location de v\u00e9los)\" srcset=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169-1024x576.webp 1024w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169-300x169.webp 300w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169-768x432.webp 768w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169-1536x864.webp 1536w, https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2026\/09\/ig-cross-bike-169.webp 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c388e82 igb-jp elementor-widget elementor-widget-heading\" data-id=\"c388e82\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">V\u00e9lo hybride<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2812a8b igb-jp elementor-widget elementor-widget-text-editor\" data-id=\"2812a8b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tPlus l\u00e9ger et plus rapide, pour aller un peu plus loin.<br>Parfait pour longer la c\u00f4te.<br><small style=\"color:#7A7A7A\">* Sans assistance \u00e9lectrique<\/small>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-igbpricesec elementor-section-full_width igb-sec-price elementor-section-height-default elementor-section-height-default\" data-id=\"igbpricesec\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c08accd\" data-id=\"c08accd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e9651ae elementor-widget elementor-widget-heading\" data-id=\"e9651ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Price<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-918fcae igb-jp elementor-widget elementor-widget-heading\" data-id=\"918fcae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Tarifs (TTC)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-igbprice elementor-widget elementor-widget-html\" data-id=\"igbprice\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- IG bike price table v2.2.0 -->\n<div class=\"igb-price igb-jpf\">\n<style>\n\/* v2.1.0 \u65b0\u30c8\u30f3\u30de\u30ca: \u767d\u3044\u89d2\u4e38\u30ab\u30fc\u30c9\uff08\u67a0\u7dda\u306a\u3057\u30fb\u6de1\u3044\u5f71\uff09\u30fb\u898b\u51fa\u3057\u884c\u306f\u6de1\u30d4\u30f3\u30af\u30fb\u91d1\u984d\u306f Josefin Sans *\/\n.igb-price{max-width:820px;margin:0 auto;color:#54595F;font-size:16px;line-height:1.7}\n.igb-price .igb-price-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(169,112,125,.10);overflow:hidden}\n.igb-price table{width:100%;border-collapse:collapse;background:#fff;border:0;margin:0}\n.igb-price th,.igb-price td{padding:16px 16px;border:0;border-bottom:1px solid #F3E9EC;text-align:center;vertical-align:middle}\n.igb-price thead th{background:#FCEFF3;color:#54595F;font-weight:700;font-size:15px;letter-spacing:.04em}\n.igb-price tbody th{text-align:left;font-weight:700;background:#fff;width:40%;padding-left:24px}\n.igb-price tbody th small{display:block;font-weight:500;font-size:12.5px;color:#7A7A7A}\n.igb-price td{font-family:\"Josefin Sans\",sans-serif;font-weight:400;font-size:20px;letter-spacing:.04em}\n.igb-price td.free{font-family:inherit;font-weight:700;font-size:17px;letter-spacing:0;color:#A9707D}\n.igb-price td.free small{display:block;font-weight:500;font-size:12px;color:#7A7A7A;font-family:inherit}\n.igb-price td.formula{font-family:inherit;font-weight:500;font-size:14.5px;letter-spacing:0}\n.igb-price tr:last-child th,.igb-price tr:last-child td{border-bottom:0}\n.igb-price ul{margin:20px 0 0;padding-left:1.3em;font-size:14px;color:#54595F;line-height:1.8}\n.igb-price li{margin:4px 0}\n.igb-price li::marker{color:#CB98A1}\n@media (max-width:600px){\n  .igb-price{font-size:14px}\n  .igb-price .igb-price-card{border-radius:14px}\n  .igb-price th,.igb-price td{padding:12px 8px}\n  .igb-price thead th{font-size:12px;letter-spacing:0;padding:12px 4px;word-break:keep-all}\n  .igb-price tbody th{width:38%;font-size:13.5px;padding-left:14px}\n  .igb-price td{font-size:17px}\n  .igb-price td.free{font-size:15px}\n  .igb-price td.formula{font-size:12.5px}\n}\n<\/style>\n<div class=\"igb-price-card\"><table>\n<thead><tr><th>Formule<\/th><th>V\u00e9lo de ville<\/th><th>V\u00e9lo hybride<\/th><\/tr><\/thead>\n<tbody>\n<tr><th>Jusqu\u2019\u00e0 3 heures<small>retour le jour m\u00eame<\/small><\/th><td class=\"free\">Gratuit<small>une fois par jour et par personne<\/small><\/td><td>\u00a51,000<\/td><\/tr>\n<tr><th>Journ\u00e9e<small>plus de 3 heures, jusqu\u2019\u00e0 <span class=\"igb-nw\">23:00<\/span><\/small><\/th><td>\u00a51,000<\/td><td>\u00a51,500<\/td><\/tr>\n<tr><th>2 jours<\/th><td>\u00a51,500<\/td><td>\u00a52,000<\/td><\/tr>\n<tr><th>3 jours<\/th><td>\u00a52,000<\/td><td>\u00a52,500<\/td><\/tr>\n<tr><th>4 jours ou plus<\/th><td class=\"formula\">Tarif 3 jours <span class=\"igb-nw\">+ \u00a51,000<\/span> par jour<\/td><td class=\"formula\">Tarif 3 jours <span class=\"igb-nw\">+ \u00a51,500<\/span> par jour<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<ul>\n<li>Tous les prix s\u2019entendent par v\u00e9lo, TTC. Les jours de location n\u2019ont pas besoin d\u2019\u00eatre cons\u00e9cutifs\u00a0: tant qu\u2019ils tombent pendant votre s\u00e9jour, le tarif multi-jours s\u2019applique.<\/li>\n<li>La gratuit\u00e9 s\u2019applique uniquement aux v\u00e9los de ville lou\u00e9s 3 heures maximum. Toute location incluant un v\u00e9lo hybride est payante, m\u00eame pour moins de 3 heures.<\/li>\n<li>Formules payantes et gratuites peuvent \u00eatre demand\u00e9es le jour m\u00eame, m\u00eame au dernier moment (jusqu\u2019\u00e0 30 minutes avant l\u2019heure de d\u00e9but). Les formules payantes se r\u00e8glent par carte bancaire (Stripe)\u00a0; la r\u00e9servation est confirm\u00e9e d\u00e8s le paiement effectu\u00e9.<\/li>\n<li>Ni les v\u00e9los de ville ni les v\u00e9los hybrides ne sont \u00e0 assistance \u00e9lectrique (p\u00e9dalage uniquement).<\/li>\n<\/ul>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-igbrules elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"igbrules\" data-element_type=\"section\" data-e-type=\"section\" id=\"bike-rules\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ffa40ed\" data-id=\"ffa40ed\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6064ba7 elementor-widget elementor-widget-heading\" data-id=\"6064ba7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Rules<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8c996f igb-jp elementor-widget elementor-widget-heading\" data-id=\"b8c996f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Conditions de location<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b78f3ce igb-jp elementor-widget elementor-widget-text-editor\" data-id=\"b78f3ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul class=\"igb-rules-card\" style=\"list-style:none;margin:0 auto;padding:14px 32px;text-align:left;max-width:820px;background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(169,112,125,.10)\">\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Horaires<\/strong><span class=\"igb-nw\">9:00\u201323:00<\/span> (d\u00e9but de location entre <span class=\"igb-nw\">9:00<\/span> et <span class=\"igb-nw\">20:00<\/span>). Retour au plus tard \u00e0 <span class=\"igb-nw\">23:00<\/span> le jour m\u00eame.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">D\u00e9lai de demande<\/strong>Formules payantes et gratuites peuvent \u00eatre demand\u00e9es <strong>le jour m\u00eame, m\u00eame au dernier moment<\/strong> (<strong>jusqu\u2019\u00e0 30 minutes avant l\u2019heure de d\u00e9but<\/strong>\u00a0; les formules payantes sont confirm\u00e9es d\u00e8s le paiement).<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">P\u00e9riode de location<\/strong>La location est possible avant l\u2019arriv\u00e9e. Elle n\u2019est pas possible apr\u00e8s le d\u00e9part.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Nombre de v\u00e9los<\/strong>Le nombre de v\u00e9los est limit\u00e9 (le nombre disponible peut varier en fonction des contr\u00f4les et des r\u00e9parations). Les couleurs et les marques peuvent changer sans pr\u00e9avis.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Type de v\u00e9lo<\/strong>Ni les v\u00e9los de ville ni les v\u00e9los hybrides ne sont \u00e0 assistance \u00e9lectrique (p\u00e9dalage uniquement).<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Retour<\/strong>Apr\u00e8s utilisation, merci de remettre le v\u00e9lo \u00e0 l\u2019emplacement pr\u00e9vu dans l\u2019enceinte de l\u2019h\u00f4tel (\u00e0 gauche de l\u2019entr\u00e9e du b\u00e2timent).<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Casque et assurance<\/strong>Aucun casque n\u2019est pr\u00eat\u00e9 et aucune assurance n\u2019est incluse. Merci de respecter le code de la route et de rouler prudemment.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Dommages ou perte<\/strong>Tout dommage ou perte d\u00fb \u00e0 une faute intentionnelle ou \u00e0 une n\u00e9gligence sera factur\u00e9 au co\u00fbt r\u00e9el.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;border-bottom:1px solid #F3E9EC;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Acceptation des conditions<\/strong>Le paiement vaut acceptation des conditions de location.<\/li>\n<li style=\"padding:14px 0 14px 1.4em;position:relative\"><span style=\"position:absolute;left:2px;top:1.45em;width:7px;height:7px;border-radius:50%;background:#CB98A1\"><\/span><strong style=\"display:block;margin-bottom:2px\">Contact<\/strong>Le r\u00e9capitulatif de votre demande et le code du cadenas s\u2019affichent sur l\u2019\u00e9cran de demande (aucun e-mail n\u2019est envoy\u00e9). Pour toute question, contactez-nous via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9 (Booking.com, Airbnb, etc.). Si vous avez r\u00e9serv\u00e9 sur notre site officiel, vous pouvez aussi r\u00e9pondre \u00e0 l\u2019e-mail de confirmation de r\u00e9servation.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-igbreserve elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"igbreserve\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8b1eab4\" data-id=\"8b1eab4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0d4113d elementor-widget elementor-widget-heading\" data-id=\"0d4113d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Bike Booking<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9aed716 igb-jp elementor-widget elementor-widget-heading\" data-id=\"9aed716\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Formulaire de demande<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0106468 igb-jp elementor-widget elementor-widget-text-editor\" data-id=\"0106468\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tMerci d\u2019utiliser le formulaire ci-dessous. Le r\u00e9capitulatif, le code du cadenas (formule gratuite) ou le lien de paiement (formules payantes) s\u2019afficheront sur cet \u00e9cran.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-igbform elementor-widget elementor-widget-html\" data-id=\"igbform\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- IG bike rental form v3.7.0 (fr) \u2014 hotel-ishigaki.com\/fr\/bike_rental\/ Elementor HTML widget\uff08id igbform\uff09\u3002\u5916\u90e8\u30e9\u30a4\u30d6\u30e9\u30ea\u4e0d\u4f7f\u7528\u30fbjQuery\u975e\u4f9d\u5b58\u3002\n     \u751f\u6210\u5143: form_template.html + form_i18n.py \u2192 build_forms.py\uff08\u76f4\u63a5\u7de8\u96c6\u3057\u306a\u3044\u3002ja\/en\/zh\/ko \u306e4\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\uff09\n     v3.0.0: \u591a\u8a00\u8a9e\u5316\uff08\u6587\u8a00\u3092 L \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u96c6\u7d04\u30fb\u975e\u65e5\u672c\u8a9e\u30da\u30fc\u30b8\u306f GAS \u306e message_en \u3092\u8868\u793a\uff09\u3002\u30ed\u30b8\u30c3\u30af\u306f v2.3.0 \u3068\u540c\u3058\n     v3.1.0: \u9375\u756a\u53f7\u306e\u771f\u4e0a\u306b\u30b9\u30af\u30b7\u30e7\u4fdd\u5b58\u306e\u6ce8\u610f\uff08.igb-shot-top\uff09\u30fb\u9375\u306e\u8eca\u4e21\u540d\u3092 GAS \u306e {code,ja,en,key} \u304b\u3089\u8868\u793a\u30fbPMS\u540d\u306e\u8868\u8a18\u3092\u5168\u5ec3\n     v3.2.0: \u7121\u6599\u30d7\u30e9\u30f3\u3082\u6709\u6599\u3068\u540c\u3058\u304f\u300c\u5229\u7528\u958b\u59cb\u306e30\u5206\u524d\u307e\u3067\u300d\u53d7\u4ed8\uff08\u7de0\u5207\u8868\u793a\u30fb\u30a8\u30e9\u30fc\u6587\u3092\u7d71\u4e00\uff09\n     v3.3.0: \u4e88\u7d04\u30b5\u30a4\u30c8\uff08site\uff09\u30fb\u4e88\u7d04\u756a\u53f7\uff08booking_no\uff09\u6b04\u3092\u8ffd\u52a0\u3002Airbnb\uff0b\u6709\u6599\u306f\u652f\u6255\u30dc\u30bf\u30f3\u3092\u51fa\u3055\u305a GAS \u306e\u6848\u5185\uff0b\u9375\u756a\u53f7\u78ba\u8a8d\u30ea\u30f3\u30af\uff08?check=1&id&k \u2192 bike_status\uff09\u3002Airbnb\uff0b\u7121\u6599\u306f\u5f93\u6765\u3069\u304a\u308a\n     v3.3.1: GAS v1.8.0 \u306e\u78ba\u5b9a\u5951\u7d04\u306b\u5408\u308f\u305b\u3001?id&k \u306e\u72b6\u614b\u8868\u793a\u3092 pending_airbnb\uff0fexpired\uff0fcancelled \u5225\u306e\u6587\u8a00\u306b\n     v3.4.0: \u6709\u6599\uff08\u652f\u6255\u5f85\u3061\uff09\u30fbAirbnb\uff0b\u6709\u6599\u306e\u7533\u8fbc\u5f8c\u753b\u9762\u306e\u898b\u51fa\u3057\u76f4\u4e0b\u306b\u300c\u307e\u3060\u78ba\u5b9a\u3057\u3066\u3044\u307e\u305b\u3093\u300d\u306e\u5f37\u8abf\u67a0\uff08.igb-pending\uff09\u30fb\u898b\u51fa\u3057\u3092\u300c\u304a\u652f\u6255\u3044\u5f85\u3061\u300d\u306b\u3002\u7121\u6599\u30fb?paid=1 \u306f\u5f93\u6765\u3069\u304a\u308a\n     v3.5.0: \u3010\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3011bike_paid \u306f k \u3060\u3051\u3067\u306f\u78ba\u5b9a\u3057\u306a\u3044\uff08GAS v1.10.0\uff09\u3002?paid=1 \u3067 pending_payment \u306e\u9593\u306f\u300c\u304a\u652f\u6255\u3044\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u300d\u3092\u51fa\u3057\n             3\u79d2\u3054\u3068\u306b bike_status \u3092\u30dd\u30fc\u30ea\u30f3\u30b0\uff08\u6700\u5927120\u79d2\uff09\u3002paid \u3067\u9375\u756a\u53f7\u8868\u793a\u3001\u6642\u9593\u5207\u308c\u306f\u518d\u8aad\u307f\u8fbc\u307f\u306e\u6848\u5185\uff0b\u72b6\u6cc1\u78ba\u8a8d\u30ea\u30f3\u30af\n     v3.6.0: \u898b\u305f\u76ee\u306e\u307f\u65b0\u30c8\u30f3\u30de\u30ca\u5316\uff08ig-site\/STYLE.md\uff09\u3002Times New Roman \u5168\u5ec3\u2192\u82f1\u5b57\/\u6570\u5b57 Josefin Sans\u30fb\u548c\u6587 Zen Maru Gothic\uff08zh\/ko \u306f data-lang \u5225\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff09\u30fb\u30ab\u30fc\u30c9\u89d2\u4e3816px\uff0b\u6de1\u3044\u5f71\u30fb\u5165\u529b\u6b0416px\/\u89d2\u4e3810px\u30fb\u30dc\u30bf\u30f3\u306f\u30d4\u30f3\u30af\u5730\u00d7\u6fc3\u30b0\u30ec\u30fc\uff08\u652f\u6255\u30dc\u30bf\u30f3\u3082\uff09\u3002HTML\u69cb\u9020\u30fbJS\u30fb\u9001\u4fe1\u5185\u5bb9\u306f v3.5.0 \u3068\u540c\u4e00\n     v3.6.1: \u30c6\u30fc\u30de\u306e label{line-height:1} \u3067\u540c\u610f\u6587\u30fb\u30d7\u30e9\u30f3\u540d\u306e2\u884c\u76ee\u304c\u8a70\u307e\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63\uff08CSS\u306e\u307f\uff09\n     v3.7.0: \u5168\u8a00\u8a9e\u30c1\u30a7\u30c3\u30af\u5bfe\u5fdc\uff08\u6587\u8a00\u30fbCSS\u306e\u307f\u3002\u5224\u5b9a\u30fb\u9001\u4fe1\u30fb\u8a08\u7b97\u30ed\u30b8\u30c3\u30af\u306f v3.6.1 \u3068\u540c\u4e00\uff09: \u7a7a\u304d\u72b6\u6cc1\u306e\u53d6\u5f97\u4e2d\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u4e0a\u90e8\u306b\u300c\u8aad\u307f\u8fbc\u307f\u4e2d\u300d\u3092\u8868\u793a\uff08CSS :has \u3067\u5224\u5b9a\u30fb\u53d6\u5f97\u5931\u6557\u6642\u306f\u6d88\u3048\u308b\uff09\uff0f\n             \u91d1\u984d\u306e\u533a\u5207\u308a\u3092\u8a00\u8a9e\u5225\u306b\uff08yen() \u306e\u533a\u5207\u308a\u6587\u5b57\u3092 L.thou_sep \u304b\u3089\u3002de\/it\/es \u306f \u00a51.000\uff09\uff0fko \u306e\u30dc\u30bf\u30f3\u5b57\u9593\u3092\u8a70\u3081\u308b\uff0f\u6642\u523b\u30fb\u91d1\u984d\u30fbCheck-in \u306e\u9014\u4e2d\u6539\u884c\u9632\u6b62 .igb-nw -->\n<div id=\"igbike\" data-lang=\"fr\">\n<style>\n\/* v3.6.0 \u65b0\u30c8\u30f3\u30de\u30ca\uff08ig-site\/STYLE.md\uff09: \u82f1\u5b57\/\u6570\u5b57=Josefin Sans\u30fb\u548c\u6587=Zen Maru Gothic\uff08\u4e2d\u97d3\u306f\u5404\u8a00\u8a9e\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff09\u30fb\u767d\u3044\u89d2\u4e38\u30ab\u30fc\u30c9\u30fb\u30d4\u30f3\u30af\u5730\u00d7\u6fc3\u30b0\u30ec\u30fc\u306e\u30dc\u30bf\u30f3\u3002\u898b\u305f\u76ee\u3060\u3051\u306e\u5909\u66f4 *\/\n#igbike{--ig-text:#54595F;--ig-sub:#7A7A7A;--ig-line:#E8C9D1;--ig-rose:#A9707D;--ig-rose2:#CB98A1;--ig-accent:#F5C5D5;--ig-accent-h:#EDB3C6;--ig-bg:#FAF4EF;--ig-pinkbg:#FCEFF3;--ig-red:#B3261E;--ig-green:#2E7D32;\n  --ig-jp:\"Zen Maru Gothic\",\"Noto Sans JP\",\"Hiragino Sans\",sans-serif;--ig-en:\"Josefin Sans\",\"Zen Maru Gothic\",sans-serif;\n  color:var(--ig-text);font-family:var(--ig-jp);font-weight:500;font-size:16px;line-height:1.8;max-width:820px;margin:0 auto;box-sizing:border-box}\n#igbike[data-lang=\"zh\"]{--ig-jp:\"Zen Maru Gothic\",\"Noto Sans TC\",\"PingFang TC\",\"Microsoft JhengHei\",sans-serif;--ig-en:\"Josefin Sans\",\"Zen Maru Gothic\",\"Noto Sans TC\",sans-serif}\n#igbike[data-lang=\"ko\"]{--ig-jp:\"Zen Maru Gothic\",\"Noto Sans KR\",\"Apple SD Gothic Neo\",\"Malgun Gothic\",sans-serif;--ig-en:\"Josefin Sans\",\"Zen Maru Gothic\",\"Noto Sans KR\",sans-serif}\n#igbike *{box-sizing:border-box}\n#igbike b,#igbike strong{font-weight:700}\n#igbike .igb-card{background:#fff;border:0;border-radius:16px;box-shadow:0 10px 30px rgba(169,112,125,.10);padding:32px 32px 28px}\n#igbike .igb-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}\n#igbike .igb-field{display:flex;flex-direction:column;gap:7px}\n#igbike .igb-field.igb-full{grid-column:1 \/ -1}\n#igbike label{font-weight:700;font-size:14.5px;color:var(--ig-text);letter-spacing:.03em;line-height:1.6}\n#igbike label .req{color:var(--ig-rose);font-weight:500;margin-left:6px;font-size:12px}\n#igbike label .opt{color:var(--ig-sub);font-weight:500;margin-left:6px;font-size:12px}\n#igbike input[type=text],#igbike select,#igbike textarea{\n  width:100%;padding:11px 14px;border:1px solid #E6DADD;border-radius:10px;font:inherit;font-family:var(--ig-jp);font-weight:500;font-size:16px;color:var(--ig-text);background:#fff;min-height:48px;transition:border-color .2s,box-shadow .2s}\n#igbike input[type=text]::placeholder{color:#A8A3A6}\n#igbike input[type=text]:focus,#igbike select:focus,#igbike textarea:focus{outline:0;border-color:var(--ig-rose2);box-shadow:0 0 0 3px rgba(245,197,213,.45)}\n#igbike .igb-day:focus{outline:2px solid var(--ig-rose2);outline-offset:1px}\n#igbike .igb-hint{font-size:12.5px;color:var(--ig-sub);line-height:1.6}\n#igbike .igb-pending{display:flex;gap:12px;align-items:flex-start;background:#FDECEA;border:2px solid #D93025;border-radius:12px;padding:14px 16px;margin:4px 0 14px;color:#8A1C12;font-size:15px;line-height:1.7}\n#igbike .igb-pending .igb-pending-ico{font-size:26px;line-height:1.1;flex:none}\n#igbike .igb-pending b.igb-pending-h{display:block;font-size:17px;margin-bottom:2px}\n#igbike .igb-ab-note{display:none;margin-top:6px;padding:11px 14px;border-radius:10px;background:var(--ig-pinkbg);border:0;font-size:13.5px;line-height:1.7;color:var(--ig-text)}\n#igbike .igb-ab-note.show{display:block}\n#igbike .igb-check-link{display:block;margin:12px 0;padding:12px 14px;border:1px solid var(--ig-line);border-radius:10px;background:#fff;font-size:14.5px;word-break:break-all;color:var(--ig-rose)}\n#igbike .igb-cal{border:1px solid #F0E6E9;border-radius:12px;background:#fff;padding:12px 10px 6px}\n#igbike .igb-month{margin:0 0 12px}\n#igbike .igb-month-title{font-family:var(--ig-en);font-size:17px;font-weight:400;letter-spacing:.12em;text-align:center;margin:2px 0 8px;color:var(--ig-text)}\n#igbike .igb-dow,#igbike .igb-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}\n#igbike .igb-dow span{text-align:center;font-size:11.5px;color:var(--ig-sub);padding:2px 0}\n#igbike .igb-dow span:first-child{color:#C0504D}\n#igbike .igb-dow span:last-child{color:#4F6FB3}\n#igbike .igb-day{border:1px solid #F0E6E9;background:#fff;border-radius:8px;min-height:58px;padding:3px 1px 3px;overflow:hidden;font:inherit;font-family:var(--ig-jp);color:var(--ig-text);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;transition:background .15s,border-color .15s}\n#igbike .igb-day:not(:disabled):not(.full):not(.on):hover{border-color:var(--ig-accent);background:#FFF9FB}\n#igbike .igb-day b{font-family:var(--ig-en);font-weight:400;font-size:15px}\n#igbike .igb-day small{font-size:10px;color:var(--ig-sub);white-space:nowrap;display:block;line-height:1.25}\n#igbike .igb-day small.zero{color:var(--ig-red)}\n#igbike .igb-day.on{background:var(--ig-accent);border-color:var(--ig-accent)}\n#igbike .igb-day.on small{color:#54595F}\n#igbike .igb-day:disabled{opacity:.35;cursor:not-allowed;background:#f7f7f7}\n#igbike .igb-day.full{opacity:.5;cursor:not-allowed;background:#f3eeea}\n#igbike .igb-day.full small{color:var(--ig-red)}\n#igbike .igb-stock{font-size:13.5px;margin-top:2px;min-height:1.4em}\n#igbike .igb-day.pad{visibility:hidden}\n\/* v3.7.0 \u7a7a\u304d\u72b6\u6cc1\u306e\u53d6\u5f97\u4e2d\u8868\u793a: \u53d6\u5f97\u524d\u306e\u30bb\u30eb\u306f <small>\u2026<\/small> \u304c1\u500b\u3060\u3051\uff08only-of-type\uff09\uff08\u53d6\u5f97\u5f8c\u306f2\u500b or \u6e80\u8eca\u306e .zero\uff09\u3002\u53d6\u5f97\u5931\u6557\u6642\u306f avail-note \u306e\u76ee\u5370 span \u304c\u6d88\u3048\u308b\u306e\u3067\u51fa\u306a\u3044 *\/\n#igbike .igb-field:has(.igb-ld-mark) .igb-cal:has(.igb-day small:only-of-type:not(.zero))::before{content:attr(data-ld);display:block;text-align:center;font-size:13.5px;line-height:1.6;color:var(--ig-rose);background:var(--ig-pinkbg);border-radius:8px;padding:8px 10px;margin:0 2px 10px}\n#igbike .igb-day small:only-of-type:not(.zero){animation:igbpulse 1.2s ease-in-out infinite}\n@keyframes igbpulse{50%{opacity:.25}}\n#igbike .igb-nw{white-space:nowrap}\n#igbike[data-lang=\"ko\"] .igb-btn{letter-spacing:1px}\n#igbike .igb-sel{font-size:13.5px;margin-top:6px;min-height:1.4em}\n#igbike .igb-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n#igbike .igb-plan-opt{display:flex;align-items:flex-start;gap:10px;border:1px solid #EFE3E7;border-radius:12px;padding:12px 14px;cursor:pointer;background:#fff;font-weight:500;transition:border-color .2s,background .2s}\n#igbike .igb-plan-opt:hover{border-color:var(--ig-accent)}\n#igbike .igb-plan-opt input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:#A9707D}\n#igbike .igb-plan-opt.on{border-color:var(--ig-accent);background:var(--ig-pinkbg);box-shadow:0 0 0 1px var(--ig-accent) inset}\n#igbike .igb-plan-opt .igb-plan-name{font-weight:700;font-size:15px;display:block}\n#igbike .igb-plan-opt .igb-plan-price{font-size:12.5px;color:var(--ig-sub);display:block;line-height:1.6}\n#igbike .igb-plan-opt .igb-plan-price b{font-family:var(--ig-en);font-weight:400;font-size:14px;letter-spacing:.04em;color:var(--ig-text)}\n#igbike .igb-check{display:flex;align-items:flex-start;gap:10px;font-weight:500;font-size:15px;line-height:1.75;cursor:pointer}\n#igbike .igb-rules-link{color:var(--ig-rose);text-decoration:underline;text-underline-offset:3px}\n#igbike .igb-check input{width:20px;height:20px;margin-top:4px;flex:none;accent-color:#A9707D}\n#igbike .igb-quote{margin-top:20px;padding:20px 22px;border-radius:12px;background:var(--ig-bg);border:0}\n#igbike .igb-quote .igb-amount{font-size:32px;font-weight:400;font-family:var(--ig-en);letter-spacing:.04em;line-height:1.2}\n#igbike .igb-quote .igb-amount small{font-size:15px;font-family:var(--ig-jp);font-weight:500;letter-spacing:0;color:var(--ig-sub);margin-left:6px}\n#igbike .igb-quote .igb-plan{font-size:14.5px;margin-top:4px}\n#igbike .igb-quote .igb-deadline{font-size:14px;margin-top:10px;padding-top:10px;border-top:1px solid #EADFD6}\n#igbike .igb-msg{margin-top:12px;padding:12px 14px;border-radius:10px;font-size:14.5px;line-height:1.7;display:none}\n#igbike .igb-msg.show{display:block}\n#igbike .igb-msg.err{background:#FDECEA;color:var(--ig-red);border:1px solid #F5C6C2}\n#igbike .igb-msg.info{background:#fff;color:var(--ig-text);border:1px solid #EFE3E7}\n#igbike .igb-btn{display:inline-block;width:100%;margin-top:20px;padding:18px 48px 16px;border:0;border-radius:10px;background:var(--ig-accent);color:#54595F;font-family:var(--ig-en);font-size:17px;font-weight:400;text-transform:uppercase;letter-spacing:3px;line-height:1.5;cursor:pointer;text-align:center;text-decoration:none!important;transition:background .2s,opacity .2s}\n#igbike .igb-btn:hover,#igbike .igb-btn:focus{background:var(--ig-accent-h);color:#54595F}\n#igbike .igb-btn:disabled{opacity:.45;cursor:not-allowed;background:var(--ig-accent)}\n#igbike .igb-btn.igb-pay{background:var(--ig-accent);color:#54595F}\n#igbike .igb-btn.igb-pay:hover{background:var(--ig-accent-h);color:#54595F}\n#igbike .igb-result{display:none}\n#igbike .igb-result.show{display:block}\n#igbike .igb-result h3{font-family:var(--ig-jp);font-weight:700;font-size:23px;letter-spacing:.04em;line-height:1.5;margin:0 0 12px;color:var(--ig-text)}\n#igbike .igb-result p{margin:0 0 10px}\n#igbike .igb-notice{background:var(--ig-bg);border:0;border-radius:12px;padding:16px 18px;white-space:pre-line;font-size:15px;line-height:1.8;margin:12px 0}\n#igbike .igb-keys{background:#fff;border:2px solid var(--ig-accent);border-radius:12px;padding:14px 18px;margin:12px 0}\n#igbike .igb-keys .igb-key{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #F3E7EB;font-size:15px}\n#igbike .igb-keys .igb-key:last-child{border-bottom:0}\n#igbike .igb-keys .igb-key b{font-family:var(--ig-en);font-weight:400;font-size:23px;letter-spacing:.14em}\n#igbike .igb-shot-top{display:flex;gap:12px;align-items:center;background:#fff4d6;border:2px solid #f0b429;border-radius:12px;padding:12px 16px;margin:14px 0 8px}\n#igbike .igb-shot-top .igb-shot-ico{font-size:30px;line-height:1}\n#igbike .igb-shot-top b{display:block;font-size:16px;color:#7a4b00}\n#igbike .igb-shot-top span{display:block;font-size:13px;color:#7a4b00;margin-top:2px}\n#igbike .igb-shot{margin-top:14px;padding:10px 14px;border:1px dashed var(--ig-line);border-radius:10px;font-size:14px;background:#fff}\n#igbike .igb-kv{width:100%;border-collapse:collapse;font-size:14.5px;margin:10px 0}\n#igbike .igb-kv th,#igbike .igb-kv td{padding:8px 8px;border-bottom:1px solid #F0E6E9;text-align:left;vertical-align:top}\n#igbike .igb-kv th{width:32%;color:var(--ig-sub);font-weight:700}\n#igbike .igb-spin{display:inline-block;width:14px;height:14px;border:2px solid #E8C9D1;border-top-color:#A9707D;border-radius:50%;animation:igbspin .8s linear infinite;vertical-align:-2px;margin-right:6px}\n@keyframes igbspin{to{transform:rotate(360deg)}}\n@media (max-width:600px){\n  #igbike{font-size:15px}\n  #igbike .igb-card{padding:22px 16px 20px;border-radius:14px}\n  #igbike .igb-grid{grid-template-columns:1fr;gap:14px}\n  #igbike .igb-plans{grid-template-columns:1fr}\n  #igbike .igb-cal{padding:8px 4px 4px;border-radius:10px}\n  #igbike .igb-dow,#igbike .igb-days{gap:2px}\n  #igbike .igb-day{min-height:56px;border-radius:6px;padding:2px 0}\n  #igbike .igb-day b{font-size:14px}\n  #igbike .igb-day small{font-size:9px;letter-spacing:-0.03em}\n  #igbike .igb-quote .igb-amount{font-size:28px}\n  #igbike .igb-btn{font-size:16px;letter-spacing:2.5px;padding:17px 18px 15px}\n  #igbike .igb-result h3{font-size:20px}\n}\n<\/style>\n\n<div class=\"igb-card\">\n  <form id=\"igb-form\" novalidate>\n    <div class=\"igb-grid\">\n      <div class=\"igb-field\">\n        <label for=\"igb-name\">Nom (tel qu\u2019indiqu\u00e9 dans la r\u00e9servation)<span class=\"req\">Obligatoire<\/span><\/label>\n        <input type=\"text\" id=\"igb-name\" name=\"name\" autocomplete=\"name\" placeholder=\"ex. Marie Dupont\">\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-room\">Num\u00e9ro de chambre<span class=\"req\">Obligatoire<\/span><\/label>\n        <input type=\"text\" id=\"igb-room\" name=\"room\" inputmode=\"numeric\" placeholder=\"ex. 201\">\n        <div class=\"igb-hint\">Si vous ne connaissez pas encore votre num\u00e9ro de chambre (avant l\u2019arriv\u00e9e), indiquez \u00ab \u00e0 d\u00e9finir \u00bb.<\/div>\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-site\">Site de r\u00e9servation de votre s\u00e9jour<span class=\"req\">Obligatoire<\/span><\/label>\n        <select id=\"igb-site\" name=\"site\"><option value=\"\" selected>Veuillez choisir<\/option><option value=\"official\">Site officiel<\/option><option value=\"booking\">Booking.com<\/option><option value=\"airbnb\">Airbnb<\/option><option value=\"rakuten\">Rakuten Travel<\/option><option value=\"jalan\">Jalan<\/option><option value=\"agoda\">Agoda<\/option><option value=\"expedia\">Expedia<\/option><option value=\"other\">Autre<\/option><\/select>\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-booking\">Num\u00e9ro de r\u00e9servation du s\u00e9jour<span class=\"opt\">Facultatif<\/span><\/label>\n        <input type=\"text\" id=\"igb-booking\" name=\"booking_no\" placeholder=\"Si vous le connaissez\">\n      <\/div>\n      <div class=\"igb-field igb-full\" style=\"margin-top:-6px\"><div class=\"igb-ab-note\" id=\"igb-ab-note\">R\u00e9serv\u00e9 via Airbnb\u00a0? Pour les formules payantes, aucun paiement n\u2019a lieu sur cette page. Apr\u00e8s votre demande, nous vous enverrons <strong>une demande de paiement du suppl\u00e9ment via la messagerie Airbnb<\/strong>, et le code du cadenas vous sera communiqu\u00e9 une fois le paiement confirm\u00e9. (Pour les formules gratuites, le code s\u2019affiche imm\u00e9diatement, comme d\u2019habitude.)<\/div><\/div>\n      <div class=\"igb-field igb-full\">\n        <label>Formule<span class=\"req\">Obligatoire<\/span><\/label>\n        <div class=\"igb-plans\" id=\"igb-plans\">\n          <label class=\"igb-plan-opt\"><input type=\"radio\" name=\"plan\" value=\"short\"><span><span class=\"igb-plan-name\">Jusqu\u2019\u00e0 3 heures (retour le jour m\u00eame)<\/span><span class=\"igb-plan-price\">V\u00e9lo de ville <b>Gratuit<\/b> (une fois par jour) \/ V\u00e9lo hybride <b><span class=\"igb-nw\">\u00a51,000<\/span><\/b><\/span><\/span><\/label>\n          <label class=\"igb-plan-opt\"><input type=\"radio\" name=\"plan\" value=\"full\" checked><span><span class=\"igb-plan-name\">Journ\u00e9e (jusqu\u2019\u00e0 <span class=\"igb-nw\">23:00<\/span>)<\/span><span class=\"igb-plan-price\">V\u00e9lo de ville <b><span class=\"igb-nw\">\u00a51,000<\/span><\/b> \/ V\u00e9lo hybride <b><span class=\"igb-nw\">\u00a51,500<\/span><\/b><\/span><\/span><\/label>\n          <label class=\"igb-plan-opt\"><input type=\"radio\" name=\"plan\" value=\"2d\"><span><span class=\"igb-plan-name\">2 jours<\/span><span class=\"igb-plan-price\">V\u00e9lo de ville <b><span class=\"igb-nw\">\u00a51,500<\/span><\/b> \/ V\u00e9lo hybride <b><span class=\"igb-nw\">\u00a52,000<\/span><\/b><\/span><\/span><\/label>\n          <label class=\"igb-plan-opt\"><input type=\"radio\" name=\"plan\" value=\"3d\"><span><span class=\"igb-plan-name\">3 jours<\/span><span class=\"igb-plan-price\">V\u00e9lo de ville <b><span class=\"igb-nw\">\u00a52,000<\/span><\/b> \/ V\u00e9lo hybride <b><span class=\"igb-nw\">\u00a52,500<\/span><\/b><\/span><\/span><\/label>\n          <label class=\"igb-plan-opt\"><input type=\"radio\" name=\"plan\" value=\"4plus\"><span><span class=\"igb-plan-name\">4 jours ou plus<\/span><span class=\"igb-plan-price\">Tarif 3 jours + par jour suppl\u00e9mentaire\u00a0: V\u00e9lo de ville <b><span class=\"igb-nw\">\u00a51,000<\/span><\/b> \/ V\u00e9lo hybride <b><span class=\"igb-nw\">\u00a51,500<\/span><\/b><\/span><\/span><\/label>\n        <\/div>\n        <div class=\"igb-hint\">Prix par v\u00e9lo, TTC. Les jours de location n\u2019ont pas besoin d\u2019\u00eatre cons\u00e9cutifs, tant qu\u2019ils tombent pendant votre s\u00e9jour.<\/div>\n      <\/div>\n      <div class=\"igb-field igb-full\">\n        <label>Dates de location (d\u2019aujourd\u2019hui \u00e0 30 jours)<span class=\"req\">Obligatoire<\/span><\/label>\n        <div class=\"igb-hint\" id=\"igb-plan-guide\" style=\"font-size:13.5px;color:var(--ig-text)\"><\/div>\n        <div class=\"igb-cal\" id=\"igb-cal\" data-ld=\"Chargement des disponibilit\u00e9s\u2026 (cela peut prendre quelques instants)\"><\/div>\n        <div class=\"igb-sel\" id=\"igb-sel\"><\/div>\n        <div class=\"igb-stock\" id=\"igb-stock\"><\/div>\n        <div class=\"igb-hint\" id=\"igb-avail-note\"><span class=\"igb-ld-mark\" hidden><\/span>Les chiffres indiquent les v\u00e9los disponibles (en haut\u00a0: v\u00e9lo de ville \/ en bas\u00a0: v\u00e9lo hybride). Location possible avant l\u2019arriv\u00e9e\u00a0; impossible apr\u00e8s le d\u00e9part.<\/div>\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-start\">Heure de d\u00e9but<span class=\"req\">Obligatoire<\/span><\/label>\n        <select id=\"igb-start\" name=\"start\"><\/select>\n        <div class=\"igb-hint\">Location de <span class=\"igb-nw\">9:00<\/span> \u00e0 <span class=\"igb-nw\">23:00<\/span>. D\u00e9but entre <span class=\"igb-nw\">9:00<\/span> et <span class=\"igb-nw\">20:00<\/span> (par tranches de 30 min). Pour aujourd\u2019hui, seules les heures situ\u00e9es au moins 30 minutes plus tard peuvent \u00eatre choisies.<\/div>\n      <\/div>\n      <div class=\"igb-field\">\n        <label>&nbsp;<\/label>\n        <div class=\"igb-hint\" id=\"igb-time-note\" style=\"padding-top:10px\">Pour les formules \u00e0 la journ\u00e9e et sur plusieurs jours, merci de rendre le v\u00e9lo avant <span class=\"igb-nw\">23:00<\/span> chaque jour de location.<\/div>\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-city\">V\u00e9los de ville<\/label>\n        <select id=\"igb-city\" name=\"city\"><option value=\"0\">0<\/option><option value=\"1\" selected>1<\/option><option value=\"2\">2<\/option><\/select>\n      <\/div>\n      <div class=\"igb-field\">\n        <label for=\"igb-cross\">V\u00e9los hybrides<\/label>\n        <select id=\"igb-cross\" name=\"cross\"><option value=\"0\" selected>0<\/option><option value=\"1\">1<\/option><option value=\"2\">2<\/option><\/select>\n      <\/div>\n    <\/div>\n\n    <div class=\"igb-quote\" id=\"igb-quote\" aria-live=\"polite\">\n      <div class=\"igb-amount\" id=\"igb-amount\">\u2014<\/div>\n      <div class=\"igb-plan\" id=\"igb-plan\">Le prix s\u2019affichera une fois les informations saisies.<\/div>\n      <div class=\"igb-deadline\" id=\"igb-deadline\"><\/div>\n    <\/div>\n\n    <div class=\"igb-field igb-full\" style=\"margin-top:16px\">\n      <label class=\"igb-check\"><input type=\"checkbox\" id=\"igb-agree\" name=\"agree\"><span>J\u2019accepte les <a href=\"https:\/\/hotel-ishigaki.com\/fr\/termsandconditions\/\" target=\"_blank\" rel=\"noopener\" class=\"igb-rules-link\">conditions g\u00e9n\u00e9rales<\/a> et le <a href=\"#bike-rules\" class=\"igb-rules-link\">r\u00e8glement de location<\/a>. Pour les formules payantes, le paiement vaut acceptation de ces conditions.<\/span><\/label>\n    <\/div>\n\n    <div class=\"igb-msg\" id=\"igb-msg\" role=\"alert\"><\/div>\n    <div class=\"igb-hint\" style=\"margin-top:14px;text-align:center\">Merci de lire le <a href=\"#bike-rules\" class=\"igb-rules-link\">r\u00e8glement de location<\/a> avant l\u2019envoi (lien vers la section du r\u00e8glement sur cette page).<\/div>\n    <button type=\"submit\" class=\"igb-btn\" id=\"igb-submit\">Demander un v\u00e9lo<\/button>\n    <div class=\"igb-hint\" style=\"margin-top:10px;text-align:center\">Apr\u00e8s l\u2019envoi, le r\u00e9capitulatif de votre demande et le code du cadenas (formule gratuite) ou le lien de paiement (formules payantes) s\u2019afficheront sur cet \u00e9cran. Les formules payantes sont confirm\u00e9es d\u00e8s le paiement effectu\u00e9 (pour une demande le jour m\u00eame, merci de payer avant l\u2019heure de d\u00e9but). Aucun e-mail n\u2019est envoy\u00e9\u00a0: pensez \u00e0 faire une capture d\u2019\u00e9cran.<\/div>\n  <\/form>\n\n  <div class=\"igb-result\" id=\"igb-result\"><\/div>\n<\/div>\n\n<script>\n(function(){\n  var GAS_URL = \"https:\/\/script.google.com\/macros\/s\/AKfycbxen4in3lAtpNtHC8O-_B4RBDN97sOUBU3_Un5k03er6EsiF7ua9P_sEDyM3kYfPd_I\/exec\";\n  var L = {\"r_pending_h\":\"Demande re\u00e7ue (en attente de paiement)\",\"pend_h\":\"Votre r\u00e9servation n\u2019est pas encore confirm\u00e9e\",\"pend_paid\":\"Elle sera confirm\u00e9e d\u00e8s que vous aurez effectu\u00e9 le paiement avec le bouton ci-dessous.\",\"pend_ab\":\"Elle sera confirm\u00e9e d\u00e8s que vous aurez r\u00e9gl\u00e9 la demande de suppl\u00e9ment envoy\u00e9e via la messagerie Airbnb.\",\"pend_deadline\":\"Date limite de paiement\u00a0: {dl}. Pass\u00e9 ce d\u00e9lai, la demande est annul\u00e9e automatiquement.\",\"pend_keys\":\"Le code du cadenas s\u2019affichera une fois le paiement effectu\u00e9.\",\"l_cancelled_p\":\"La r\u00e9servation {id} a \u00e9t\u00e9 annul\u00e9e. Si vous souhaitez louer un v\u00e9lo, merci de faire une nouvelle demande sur cette page.\",\"l_cancelled_h\":\"Annul\u00e9e\",\"l_expired_p\":\"La r\u00e9servation {id} a \u00e9t\u00e9 annul\u00e9e car la date limite de paiement est d\u00e9pass\u00e9e. Si vous souhaitez toujours louer un v\u00e9lo, merci de faire une nouvelle demande sur cette page.\",\"l_expired_h\":\"Date limite de paiement d\u00e9pass\u00e9e\",\"l_wait_ab_p\":\"Nous n\u2019avons pas encore pu confirmer le paiement de la r\u00e9servation {id}. Merci de consulter votre messagerie Airbnb. Une fois le paiement effectu\u00e9, rouvrez cette page pour voir le code du cadenas.\",\"v_site\":\"Merci d\u2019indiquer le site sur lequel vous avez r\u00e9serv\u00e9 votre s\u00e9jour.\",\"s_site\":\"R\u00e9serv\u00e9 sur (num\u00e9ro)\",\"r_ab_h\":\"Demande re\u00e7ue\",\"r_ab_p\":\"Nous vous enverrons <strong>une demande de paiement du suppl\u00e9ment via la messagerie Airbnb<\/strong>. Votre r\u00e9servation sera confirm\u00e9e une fois le paiement effectu\u00e9, et nous vous communiquerons alors le code du cadenas.\",\"r_ab_check\":\"\ud83d\udd11 Apr\u00e8s le paiement, consultez votre code de cadenas ici\",\"shot_top_p_ab\":\"Votre num\u00e9ro de r\u00e9servation et le lien vers le code du cadenas ne sont affich\u00e9s que sur cet \u00e9cran. Aucun e-mail ne sera envoy\u00e9.\",\"l_checking_status\":\"V\u00e9rification de votre r\u00e9servation\u2026\",\"l_wait_pay_h\":\"En attente de la confirmation du paiement\",\"l_wait_pay_p\":\"Nous n\u2019avons pas encore pu confirmer le paiement de la r\u00e9servation {id}. Une fois le paiement effectu\u00e9, rouvrez cette page pour voir le code du cadenas.\",\"l_reload\":\"\ud83d\udd04 V\u00e9rifier \u00e0 nouveau\",\"l_status_other\":\"Statut de la r\u00e9servation {id}\u00a0: {status}\",\"plan_name\":{\"short\":\"Jusqu\u2019\u00e0 3 heures\",\"full\":\"Journ\u00e9e\",\"2d\":\"2 jours\",\"3d\":\"3 jours\",\"4plus\":\"4 jours ou plus\"},\"thou_sep\":\",\",\"dow\":[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],\"months\":[\"janv.\",\"f\u00e9vr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"ao\u00fbt\",\"sept.\",\"oct.\",\"nov.\",\"d\u00e9c.\"],\"fmt_day\":\"{w} {d} {mon}\",\"month_title\":\"{mon} {y}\",\"city_short\":\"Ville \",\"cross_short\":\"Hybride \",\"full\":\"Complet\",\"selected\":\"S\u00e9lection\u00a0: {list} ({n} jour(s))\",\"select_none\":\"S\u00e9lectionnez les jours o\u00f9 vous souhaitez louer un v\u00e9lo.\",\"guide_short\":\"Jusqu\u2019\u00e0 3 heures\u00a0: choisissez 1 jour.\",\"guide_full\":\"Journ\u00e9e\u00a0: choisissez 1 jour.\",\"guide_4plus\":\"4 jours ou plus\u00a0: choisissez au moins 4 jours (s\u00e9lectionner le premier jour pr\u00e9s\u00e9lectionne 4 jours cons\u00e9cutifs\u00a0; ils peuvent aussi ne pas se suivre).\",\"guide_n\":\"Formule {need} jours\u00a0: choisissez {need} jours (s\u00e9lectionner le premier jour pr\u00e9s\u00e9lectionne des jours cons\u00e9cutifs\u00a0; ils peuvent aussi ne pas se suivre).\",\"time_short\":\"Jusqu\u2019\u00e0 3 heures\u00a0: merci de rendre le v\u00e9lo dans les 3 heures suivant l\u2019heure de d\u00e9but (au plus tard \u00e0 23:00).\",\"time_full\":\"Pour les formules \u00e0 la journ\u00e9e et sur plusieurs jours, merci de rendre le v\u00e9lo avant 23:00 chaque jour de location.\",\"city_name\":\"v\u00e9lo(s) de ville\",\"cross_name\":\"v\u00e9lo(s) hybride(s)\",\"clamped\":\"Seulement {max} {name} disponible(s) le {day}\u00a0: la quantit\u00e9 a \u00e9t\u00e9 ramen\u00e9e \u00e0 {max}.\",\"stock\":\"Disponibilit\u00e9 pour ces dates\u00a0: v\u00e9lo de ville {c} \/ v\u00e9lo hybride {x}\",\"stock_loading\":\"Disponibilit\u00e9 pour ces dates\u00a0: chargement\u2026\",\"avail_fail\":\"Impossible de charger les disponibilit\u00e9s. Elles seront v\u00e9rifi\u00e9es \u00e0 l\u2019envoi.\",\"err_full_dates\":\"Aucun v\u00e9lo n\u2019est disponible aux dates choisies. Merci de choisir d\u2019autres dates.\",\"err_min_one\":\"Merci de choisir au moins un v\u00e9lo.\",\"err_no_dates\":\"Merci de choisir vos dates de location.\",\"err_4plus\":\"La formule 4 jours ou plus n\u00e9cessite au moins 4 jours (actuellement {n}).\",\"err_mismatch\":\"La formule {plan} n\u00e9cessite {need} jour(s) s\u00e9lectionn\u00e9(s) (actuellement {n}).\",\"err_mismatch_key\":\" n\u00e9cessite \",\"label_short\":\"Jusqu\u2019\u00e0 3 heures ({start}\u2013{end})\",\"free_suffix\":\" \u00b7 v\u00e9lo de ville gratuit\",\"label_full\":\"Journ\u00e9e ({start}\u201323:00)\",\"label_days\":\"{n} jours\",\"err_no_start_today\":\"Aucune heure de d\u00e9but n\u2019est disponible aujourd\u2019hui (la demande doit \u00eatre faite au moins 30 minutes avant l\u2019heure de d\u00e9but).\",\"dl_paid\":\"Demande possible jusqu\u2019\u00e0 30 minutes avant le d\u00e9but ({t})\u00a0; formules payantes confirm\u00e9es d\u00e8s le paiement\",\"late_paid\":\"La demande doit \u00eatre faite au moins 30 minutes avant l\u2019heure de d\u00e9but. Cet horaire ne peut pas \u00eatre accept\u00e9.\",\"err_city_avail\":\"Seulement {n} v\u00e9lo(s) de ville disponible(s) le {day}.\",\"err_cross_avail\":\"Seulement {n} v\u00e9lo(s) hybride(s) disponible(s) le {day}.\",\"amount_placeholder\":\"Choisissez vos dates pour voir le prix\",\"qty_line\":\"V\u00e9los\u00a0: ville {c} \/ hybride {x}\",\"qty_plain\":\"V\u00e9lo de ville {c} \/ V\u00e9lo hybride {x}\",\"line_dates\":\"Dates\u00a0: {list}\",\"line_plan\":\"Formule\u00a0: {p}\",\"sep_list\":\", \",\"sep_parts\":\" \u00b7 \",\"tax\":\"TTC\",\"free_tag\":\" \u00b7 gratuit\",\"dl_prefix\":\"Date limite\u00a0: \",\"v_name\":\"Merci d\u2019indiquer votre nom.\",\"v_room\":\"Merci d\u2019indiquer votre num\u00e9ro de chambre (ou \u00ab \u00e0 d\u00e9finir \u00bb).\",\"v_agree\":\"Merci de cocher la case pour accepter les conditions de location.\",\"sending\":\"Envoi en cours\u2026\",\"e_late_paid\":\"La demande doit \u00eatre faite au moins 30 minutes avant l\u2019heure de d\u00e9but.\",\"e_no_stock\":\"D\u00e9sol\u00e9s, aucun v\u00e9lo n\u2019est disponible aux dates demand\u00e9es. Merci d\u2019essayer d\u2019autres dates ou quantit\u00e9s.\",\"e_bad_dates\":\"Dates non valides. Merci de choisir des dates dans les 30 jours \u00e0 venir.\",\"e_invalid\":\"Certaines informations ne sont pas valides.\",\"e_generic\":\"L\u2019envoi a \u00e9chou\u00e9. Merci de r\u00e9essayer plus tard, ou de nous contacter via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9.\",\"btn_submit\":\"Demander un v\u00e9lo\",\"key_label\":\"Code du cadenas\",\"key_title\":\"Code du cadenas (\u00e0 molette)\",\"shot_top_p\":\"Le code du cadenas n\u2019est affich\u00e9 que sur cet \u00e9cran. Aucun e-mail ne sera envoy\u00e9.\",\"shot_top_h\":\"Merci de faire une capture de cet \u00e9cran\",\"shot_html\":\"Merci de <strong>faire une capture d\u2019\u00e9cran<\/strong> de cette page (aucun e-mail ne sera envoy\u00e9).<br>Pour toute question, contactez-nous via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9 (Booking.com, Airbnb, etc.). Si vous avez r\u00e9serv\u00e9 sur notre site officiel, vous pouvez aussi r\u00e9pondre \u00e0 l\u2019e-mail de confirmation de r\u00e9servation.\",\"s_id\":\"N\u00b0 de r\u00e9servation\",\"s_name_room\":\"Nom \/ Chambre\",\"s_dates\":\"Dates\",\"s_plan\":\"Formule\",\"s_qty\":\"V\u00e9los\",\"s_price\":\"Prix\",\"tax_paren\":\" (TTC)\",\"r_paid_h\":\"Demande re\u00e7ue\",\"r_paid_p\":\"Merci de r\u00e9gler avec le bouton ci-dessous. <strong>Votre r\u00e9servation est confirm\u00e9e d\u00e8s le paiement effectu\u00e9, et le paiement vaut acceptation des conditions.<\/strong>\",\"r_paid_deadline\":\"Date limite de paiement\u00a0: {dl} (la demande est annul\u00e9e automatiquement apr\u00e8s cette date)\",\"r_pay_btn\":\"Proc\u00e9der au paiement\",\"r_pay_hint\":\"Apr\u00e8s le paiement, vous reviendrez sur cette page, o\u00f9 s\u2019affichera le code du cadenas.\",\"r_free_h\":\"Votre demande est enregistr\u00e9e\",\"r_free_hint\":\"Les v\u00e9los se trouvent \u00e0 l\u2019emplacement pr\u00e9vu dans l\u2019enceinte de l\u2019h\u00f4tel (\u00e0 gauche de l\u2019entr\u00e9e du b\u00e2timent). Apr\u00e8s utilisation, merci de remettre le v\u00e9lo au m\u00eame endroit.\",\"l_checking\":\"V\u00e9rification de votre paiement\u2026\",\"l_wait\":\"Merci de patienter un instant.\",\"l_thanks_h\":\"Merci pour votre paiement\",\"l_thanks_p\":\"La r\u00e9servation {id} est confirm\u00e9e.\",\"l_thanks_hint\":\"Les v\u00e9los se trouvent \u00e0 l\u2019emplacement pr\u00e9vu dans l\u2019enceinte de l\u2019h\u00f4tel (\u00e0 gauche de l\u2019entr\u00e9e du b\u00e2timent). Apr\u00e8s utilisation, merci de remettre le v\u00e9lo au m\u00eame endroit. Horaires de location\u00a0: 9:00\u201323:00.\",\"l_accepted_h\":\"Paiement re\u00e7u\",\"l_accepted_p\":\"R\u00e9servation {id} (statut\u00a0: {status}). Une fois la confirmation effectu\u00e9e, nous vous enverrons le code du cadenas via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9.\",\"l_fail_h\":\"Confirmation impossible\",\"l_fail_default\":\"La r\u00e9servation est introuvable.\",\"l_fail_p\":\"Merci de nous contacter via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9 (n\u00b0 de r\u00e9servation {id}).\",\"l_poll_timeout\":\"R\u00e9servation {id}. La confirmation du paiement prend un peu de temps. Merci de v\u00e9rifier \u00e0 nouveau dans un instant avec le bouton ci-dessous (le code du cadenas s\u2019affichera une fois le paiement confirm\u00e9).\",\"l_neterr_h\":\"Erreur de connexion\",\"l_neterr_p\":\"Impossible de v\u00e9rifier l\u2019\u00e9tat de votre paiement. Si le rechargement de la page ne r\u00e9sout pas le probl\u00e8me, merci de nous contacter via la messagerie du site sur lequel vous avez r\u00e9serv\u00e9 (n\u00b0 de r\u00e9servation {id}).\"};\n  var root = document.getElementById(\"igbike\");\n  var LANG = root.getAttribute(\"data-lang\") || \"ja\";\n  var MSG_FIELD = (LANG === \"ja\") ? \"message\" : \"message_en\";   \/\/ GAS \u306e\u6848\u5185\u6587: \u65e5\u672c\u8a9e\u30da\u30fc\u30b8\u306f message\u3001\u305d\u308c\u4ee5\u5916\u306f message_en\n  var RANGE_DAYS = 30;\n  var PLAN_DAYS = { short:1, full:1, \"2d\":2, \"3d\":3, \"4plus\":4 };   \/\/ \u5fc5\u8981\u65e5\u6570\uff084plus \u306f\u6700\u4f4e\uff09\n  var PRICE = { city:{one:1000,two:1500,three:2000,extra:1000,short:0}, cross:{one:1500,two:2000,three:2500,extra:1500,short:1000} };\n  var $ = function(id){ return document.getElementById(id); };\n  var form=$(\"igb-form\"), fName=$(\"igb-name\"), fRoom=$(\"igb-room\"), fSite=$(\"igb-site\"), fBooking=$(\"igb-booking\"), abNote=$(\"igb-ab-note\"), cal=$(\"igb-cal\"), selEl=$(\"igb-sel\"), stockEl=$(\"igb-stock\"), fStart=$(\"igb-start\"), guideEl=$(\"igb-plan-guide\"), timeNote=$(\"igb-time-note\"),\n      fCity=$(\"igb-city\"), fCross=$(\"igb-cross\"), fAgree=$(\"igb-agree\"), msg=$(\"igb-msg\"), btn=$(\"igb-submit\"),\n      amountEl=$(\"igb-amount\"), planEl=$(\"igb-plan\"), dlEl=$(\"igb-deadline\"), result=$(\"igb-result\"), availNote=$(\"igb-avail-note\");\n  var selected = {};      \/\/ \"YYYY-MM-DD\" -> true\n  var avail = null;       \/\/ {\"YYYY-MM-DD\":{city:n,cross:n}} or null (unknown)\n  var msgKind = \"\";       \/\/ \"late\" | \"err\" | \"info\" | \"\"\n  function T(s, v){ return String(s).replace(\/\\{(\\w+)\\}\/g, function(_, k){ return (v && k in v) ? v[k] : \"\"; }); }\n  function plan(){ var r=form.querySelector('input[name=plan]:checked'); return r? r.value : \"full\"; }\n\n  \/\/ ---- utils (JST) ----\n  function pad(n){ return (n<10?\"0\":\"\")+n; }\n  function ymd(d){ return d.getUTCFullYear()+\"-\"+pad(d.getUTCMonth()+1)+\"-\"+pad(d.getUTCDate()); }\n  function parseYmd(s){ var m=\/^(\\d{4})-(\\d{2})-(\\d{2})$\/.exec(s||\"\"); return m? Date.UTC(+m[1],+m[2]-1,+m[3]) : NaN; }\n  function jstMs(dateStr, hh, mm){ var b=parseYmd(dateStr); return isNaN(b)? NaN : b + ((hh*60+mm)*60 - 9*3600)*1000; }\n  function dayLabel(d){ return T(L.fmt_day, {m:d.getUTCMonth()+1, d:d.getUTCDate(), mon:L.months[d.getUTCMonth()], w:L.dow[d.getUTCDay()]}); }\n  function fmtJst(ms){ var d=new Date(ms+9*3600*1000); return dayLabel(d)+\" \"+pad(d.getUTCHours())+\":\"+pad(d.getUTCMinutes()); }\n  function fmtDay(s){ var b=parseYmd(s); if(isNaN(b)) return s; return dayLabel(new Date(b)); }\n  function yen(n){ return \"\u00a5\"+String(n).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, L.thou_sep||\",\"); }   \/\/ v3.7.0 \u533a\u5207\u308a\u6587\u5b57\u306f\u8a00\u8a9e\u5225\uff08\u8868\u793a\u306e\u307f\uff09\n  function esc(s){ return String(s==null?\"\":s).replace(\/[&<>\"']\/g,function(c){return {\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"}[c];}); }\n  function showMsg(kind, html){ msgKind=kind; msg.className=\"igb-msg show \"+(kind===\"info\"?\"info\":\"err\"); msg.innerHTML=html; }   \/\/ kind: late(\u9001\u4fe1\u30d6\u30ed\u30c3\u30af) \/ err(\u9001\u4fe1\u30a8\u30e9\u30fc) \/ info(\u53f0\u6570\u81ea\u52d5\u8abf\u6574)\n  function hideMsg(){ msgKind=\"\"; msg.className=\"igb-msg\"; msg.innerHTML=\"\"; }\n  function todayJstMs(){ var t=Date.now()+9*3600*1000; return t - (t % 86400000); }   \/\/ JST\u306e\u65e5\u4ed8 00:00 (UTC\u57fa\u6e96ms)\n  var TODAY = ymd(new Date(todayJstMs()));\n  var LAST = ymd(new Date(todayJstMs()+RANGE_DAYS*86400000));\n\n  \/\/ ---- start time options ----\n  (function(){ for(var h=9; h<=20; h++){ for(var m=0; m<60; m+=30){ if(h===20&&m>0) break; var v=pad(h)+\":\"+pad(m); var o=document.createElement(\"option\"); o.value=v; o.textContent=v; if(v===\"11:00\") o.selected=true; fStart.appendChild(o);} } })();\n\n  \/\/ ---- calendar (today .. today+30) ----\n  function renderCal(){\n    cal.innerHTML=\"\";\n    var t0=todayJstMs(), tEnd=t0+RANGE_DAYS*86400000;\n    var d=new Date(t0); var y=d.getUTCFullYear(), m=d.getUTCMonth();\n    while(Date.UTC(y,m,1) <= tEnd){\n      var mon=document.createElement(\"div\"); mon.className=\"igb-month\";\n      var title=document.createElement(\"div\"); title.className=\"igb-month-title\"; title.textContent=T(L.month_title,{y:y, m:m+1, mon:L.months[m]}); mon.appendChild(title);\n      var dow=document.createElement(\"div\"); dow.className=\"igb-dow\"; L.dow.forEach(function(w){ var s=document.createElement(\"span\"); s.textContent=w; dow.appendChild(s); }); mon.appendChild(dow);\n      var days=document.createElement(\"div\"); days.className=\"igb-days\";\n      var first=new Date(Date.UTC(y,m,1)).getUTCDay();\n      for(var i=0;i<first;i++){ var p=document.createElement(\"button\"); p.type=\"button\"; p.className=\"igb-day pad\"; p.tabIndex=-1; days.appendChild(p); }\n      var dim=new Date(Date.UTC(y,m+1,0)).getUTCDate();\n      for(var day=1; day<=dim; day++){\n        var ms=Date.UTC(y,m,day), key=ymd(new Date(ms));\n        var b=document.createElement(\"button\"); b.type=\"button\"; b.className=\"igb-day\"; b.setAttribute(\"data-d\",key);\n        var inRange = ms>=t0 && ms<=tEnd;\n        var a = avail && avail[key];\n        var sub = \"\";\n        if(inRange){\n          if(a){ sub = '<small class=\"'+(a.city===0?\"zero\":\"\")+'\">'+L.city_short+a.city+'<\/small><small class=\"'+(a.cross===0?\"zero\":\"\")+'\">'+L.cross_short+a.cross+'<\/small>'; }\n          else if(!avail){ sub = \"<small>\u2026<\/small>\"; }\n        }\n        if(inRange && a && a.city===0 && a.cross===0){ b.classList.add(\"full\"); sub='<small class=\"zero\">'+L.full+'<\/small>'; delete selected[key]; }\n        if(!inRange){ b.disabled=true; }\n        if(selected[key]) b.classList.add(\"on\");\n        b.innerHTML=\"<b>\"+day+\"<\/b>\"+sub;\n        (function(k,btn){ btn.addEventListener(\"click\", function(){ if(btn.classList.contains(\"full\")) return; toggleDate(k); }); })(key,b);\n        days.appendChild(b);\n      }\n      mon.appendChild(days); cal.appendChild(mon);\n      m++; if(m>11){ m=0; y++; }\n    }\n    renderSel();\n  }\n  function renderSel(){\n    var ks=Object.keys(selected).sort(), p=plan(), need=PLAN_DAYS[p];\n    selEl.innerHTML = ks.length ? T(L.selected,{list:\"<strong>\"+ks.map(fmtDay).join(L.sep_list)+\"<\/strong>\", n:ks.length}) : L.select_none;\n    var g;\n    if(p===\"short\") g=L.guide_short;\n    else if(p===\"full\") g=L.guide_full;\n    else if(p===\"4plus\") g=L.guide_4plus;\n    else g=T(L.guide_n,{need:need});\n    guideEl.textContent=g;\n    applyStockLimits(); applyStartLimits();\n    timeNote.textContent = p===\"short\" ? L.time_short : L.time_full;\n  }\n  function minAvail(){\n    \/\/ \u9078\u629e\u4e2d\u306e\u5229\u7528\u65e5\u3059\u3079\u3066\u3067\u306e\u7a7a\u304d\u53f0\u6570\u306e\u6700\u5c0f\u5024\uff08\u672a\u53d6\u5f97\u306e\u65e5\u306f\u4e0a\u96502\uff09\n    var ks=Object.keys(selected), m={city:2, cross:2, known:false};\n    ks.forEach(function(k){ var a=avail && avail[k]; if(a){ m.known=true; m.city=Math.min(m.city,a.city); m.cross=Math.min(m.cross,a.cross); } });\n    return m;\n  }\n  function limitDate(type){\n    \/\/ \u3069\u306e\u65e5\u304c\u4e0a\u9650\u3092\u6c7a\u3081\u3066\u3044\u308b\u304b\uff08\u30e1\u30c3\u30bb\u30fc\u30b8\u7528\uff09\n    var ks=Object.keys(selected).sort(), best=null;\n    ks.forEach(function(k){ var a=avail && avail[k]; if(a && (best===null || a[type] < (avail[best][type]))) best=k; });\n    return best;\n  }\n  function applyStockLimits(){\n    var m=minAvail(), changed=[];\n    [[fCity,\"city\",L.city_name],[fCross,\"cross\",L.cross_name]].forEach(function(t){\n      var sel=t[0], key=t[1], name=t[2], max=Object.keys(selected).length ? m[key] : 2;\n      Array.prototype.forEach.call(sel.options, function(o){ o.disabled = (+o.value > max); });\n      if(+sel.value > max){ sel.value=String(max); var d=limitDate(key); changed.push(T(L.clamped,{day:(d? fmtDay(d) : \"\"), name:name, max:max})); }\n    });\n    var ks=Object.keys(selected).length;\n    stockEl.innerHTML = ks ? (m.known ? T(L.stock,{c:m.city, x:m.cross}) : L.stock_loading) : \"\";\n    if(changed.length){ showMsg(\"info\", changed.map(esc).join(\"<br>\")); }\n    else if(msgKind===\"info\"){ hideMsg(); }\n  }\n  function dayBtn(k){ return cal.querySelector('.igb-day[data-d=\"'+k+'\"]'); }\n  function selectable(k){ var b=dayBtn(k); return b && !b.disabled && !b.classList.contains(\"full\"); }\n  function toggleDate(d){\n    var p=plan(), need=PLAN_DAYS[p], cur=Object.keys(selected).length;\n    if(selected[d]) { delete selected[d]; }\n    else if(need===1){ selected={}; selected[d]=true; }\n    else if(cur===0){\n      \/\/ \u6700\u521d\u306e\u65e5: \u5fc5\u8981\u65e5\u6570\u3076\u3093\u9023\u7d9a\u65e5\u3092\u4eee\u9078\u629e\uff08\u6e80\u8eca\u30fb\u7bc4\u56f2\u5916\u306f\u98db\u3070\u3059\uff09\n      selected={}; var t=parseYmd(d), got=0;\n      while(got<need && t<=parseYmd(LAST)){ var k=ymd(new Date(t)); if(selectable(k)){ selected[k]=true; got++; } t+=86400000; }\n    }\n    else { selected[d]=true; }\n    Array.prototype.forEach.call(cal.querySelectorAll(\".igb-day\"), function(c){ c.classList.toggle(\"on\", !!selected[c.getAttribute(\"data-d\")]); });\n    renderSel(); recalc();\n  }\n  function loadAvail(){\n    var url=GAS_URL+\"?action=bike_avail&from=\"+encodeURIComponent(TODAY)+\"&to=\"+encodeURIComponent(LAST);\n    fetch(url,{method:\"GET\",redirect:\"follow\"}).then(function(r){return r.json();}).then(function(j){\n      if(j && j.ok && j.days){ avail=j.days; }\n      else { avail=null; availNote.textContent=L.avail_fail; }\n      renderCal(); recalc();\n    }).catch(function(){ avail=null; availNote.textContent=L.avail_fail; renderCal(); recalc(); });\n  }\n\n  \/\/ ---- quote (DESIGN \u00a72 \u3068\u540c\u3058\u8a08\u7b97\u3002\u30b5\u30fc\u30d0\u5074\u304c\u6b63) ----\n  function applyStartLimits(){\n    \/\/ \u4eca\u65e5\u3092\u9078\u3093\u3067\u3044\u308b\u5834\u5408\u3001\u958b\u59cb\u6642\u523b\u3092\u300c\u73fe\u5728\u6642\u523b\uff0b30\u5206\u4ee5\u964d\u300d\u306b\u7d5e\u308b\uff08\u6709\u6599\u306e\u5f53\u65e5\u30fb\u76f4\u524d\u7533\u8fbc\u306b\u5bfe\u5fdc\uff09\n    var today = !!selected[TODAY], limit = Date.now() + 30*60*1000, firstOk = null;\n    Array.prototype.forEach.call(fStart.options, function(o){\n      var hh=+o.value.slice(0,2), mm=+o.value.slice(3,5);\n      o.disabled = today && (jstMs(TODAY,hh,mm) < limit);\n      if(!o.disabled && firstOk===null) firstOk=o.value;\n    });\n    if(fStart.options[fStart.selectedIndex] && fStart.options[fStart.selectedIndex].disabled && firstOk!==null) fStart.value=firstOk;\n  }\n  function quote(){\n    var dates=Object.keys(selected).sort(), n=dates.length, city=+fCity.value, cross=+fCross.value, p=plan(), three=(p===\"short\"), need=PLAN_DAYS[p], errors=[];\n    var q={amount:0, plan_label:\"\", free:false, deadline:NaN, dates:dates, city:city, cross:cross, three:three, errors:errors, start:fStart.value};\n    if(city+cross<1){ var mm=minAvail(); errors.push((n>=1 && mm.city===0 && mm.cross===0) ? L.err_full_dates : L.err_min_one); }\n    if(n<1) errors.push(L.err_no_dates);\n    else if(p===\"4plus\" && n<4) errors.push(T(L.err_4plus,{n:n}));\n    else if(p!==\"4plus\" && n!==need){ errors.push(T(L.err_mismatch,{plan:L.plan_name[p], need:need, n:n})); q.mismatch=true; }\n    var sh=+fStart.value.slice(0,2), sm=+fStart.value.slice(3,5);\n    var endLabel = three ? (pad(Math.min(sh+3,23))+\":\"+(sh+3>=23?\"00\":pad(sm))) : \"23:00\";\n    if(three){\n      q.amount = city*PRICE.city.short*n + cross*PRICE.cross.short*n;\n      q.free = (cross===0 && city>=1);\n      q.plan_label = T(L.label_short,{start:fStart.value, end:endLabel}) + (q.free ? L.free_suffix : \"\");\n    } else {\n      var pc, pk, m=Math.max(n,1);   \/\/ \u65e5\u6570\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u9078\u629e\u6570\uff08\u30d7\u30e9\u30f3\u3068\u4e0d\u4e00\u81f4\u306a\u3089\u4e0a\u306e\u30a8\u30e9\u30fc\u3067\u9001\u4fe1\u4e0d\u53ef\uff09\n      if(p===\"full\"||m<=1){ pc=PRICE.city.one; pk=PRICE.cross.one; q.plan_label=T(L.label_full,{start:fStart.value}); }\n      else if(m===2){ pc=PRICE.city.two; pk=PRICE.cross.two; q.plan_label=L.plan_name[\"2d\"]; }\n      else if(m===3){ pc=PRICE.city.three; pk=PRICE.cross.three; q.plan_label=L.plan_name[\"3d\"]; }\n      else { pc=PRICE.city.three+(m-3)*PRICE.city.extra; pk=PRICE.cross.three+(m-3)*PRICE.cross.extra; q.plan_label=T(L.label_days,{n:m}); }\n      q.amount = city*pc + cross*pk;\n    }\n    if(n>=1 && selected[TODAY] && Array.prototype.every.call(fStart.options, function(o){ return o.disabled; })){ errors.push(L.err_no_start_today); q.late=true; q.late_text=L.err_no_start_today; }\n    if(n>=1){\n      var first=dates[0];\n      \/\/ \u6709\u6599\u30fb\u7121\u6599\u3068\u3082\u5229\u7528\u958b\u59cb\u306e30\u5206\u524d\u307e\u3067\uff082026-09-28 \u30eb\u30fc\u30eb\u5909\u66f4\uff09\n      q.deadline = jstMs(first, sh, sm) - 30*60*1000; q.deadline_label=T(L.dl_paid,{t:fmtJst(q.deadline)});\n      if(Date.now() > q.deadline){\n        q.late_text = L.late_paid;\n        errors.push(q.late_text); q.late=true;\n      }\n      if(avail){\n        dates.forEach(function(d){ var a=avail[d]; if(!a) return;\n          if(city>a.city) errors.push(T(L.err_city_avail,{day:fmtDay(d), n:a.city}));\n          if(cross>a.cross) errors.push(T(L.err_cross_avail,{day:fmtDay(d), n:a.cross}));\n        });\n      }\n    }\n    return q;\n  }\n  function isBlocking(e){ return e===L.err_full_dates || e===L.err_min_one || e.indexOf(L.err_mismatch_key)>=0; }\n  function recalc(){\n    var q=quote();\n    if(!q.dates.length){\n      \/\/ \u5229\u7528\u65e5\u672a\u9078\u629e: \u91d1\u984d\u30fb\u30d7\u30e9\u30f3\u540d\u30fb\u7de0\u5207\u306f\u51fa\u3055\u306a\u3044\uff08\u300c\u00a50\u30fb\u7121\u6599\u300d\u304c\u30af\u30ed\u30b9\u30d0\u30a4\u30af\u3082\u7121\u6599\u3068\u8aa4\u8aad\u3055\u308c\u308b\u305f\u3081\uff09\n      amountEl.innerHTML = '\u2014<small>'+L.amount_placeholder+'<\/small>';\n      planEl.textContent = T(L.qty_line,{c:q.city, x:q.cross});\n      dlEl.textContent = \"\";\n    } else {\n      amountEl.innerHTML = yen(q.amount) + '<small>' + L.tax + (q.free? L.free_tag : \"\") + '<\/small>';\n      var parts=[T(L.line_dates,{list:q.dates.map(fmtDay).join(L.sep_list)})];\n      if(q.plan_label) parts.push(T(L.line_plan,{p:q.plan_label}));\n      parts.push(T(L.qty_line,{c:q.city, x:q.cross}));\n      planEl.textContent = parts.join(L.sep_parts);\n      dlEl.textContent = q.deadline_label ? (L.dl_prefix+q.deadline_label) : \"\";\n    }\n    var block = q.late ? q.late_text : (q.errors.filter(isBlocking)[0] || \"\");   \/\/ \u65e5\u6570\u4e0d\u4e00\u81f4\u30fb\u5408\u8a080\u53f0\u3082\u9001\u4fe1\u4e0d\u53ef\n    if(!q.dates.length) block=\"\";   \/\/ \u672a\u9078\u629e\u6642\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u51fa\u3055\u305a\u30dc\u30bf\u30f3\u3060\u3051\u7121\u52b9\n    if(block){ showMsg(\"late\", esc(block)); }\n    else if(msgKind===\"late\"){ hideMsg(); }     \/\/ \u9001\u4fe1\u30a8\u30e9\u30fc\u7b49\u306e\u8868\u793a\u306f\u6d88\u3055\u306a\u3044\n    btn.disabled = !!block || !q.dates.length;\n  }\n\n  \/\/ ---- validate & submit ----\n  function validate(q){\n    var errs=[];\n    if(!fName.value.trim()) errs.push(L.v_name);\n    if(!fRoom.value.trim()) errs.push(L.v_room);\n    if(!fSite.value) errs.push(L.v_site);\n    errs = errs.concat(q.errors);\n    if(!fAgree.checked) errs.push(L.v_agree);\n    return errs;\n  }\n  form.addEventListener(\"submit\", function(ev){\n    ev.preventDefault();\n    var q=quote(), errs=validate(q);\n    if(errs.length){ showMsg(\"err\", errs.map(esc).join(\"<br>\")); return; }\n    var payload={ action:\"bike_submit\", name:fName.value.trim(), room:fRoom.value.trim(), site:fSite.value, booking_no:fBooking.value.trim(), dates:q.dates, start:fStart.value,\n      three_hours:q.three, city:q.city, cross:q.cross, lang:LANG, note:\"\", agree:true, client_amount:q.amount };\n    btn.disabled=true; btn.innerHTML='<span class=\"igb-spin\"><\/span>'+L.sending; hideMsg();\n    fetch(GAS_URL,{method:\"POST\",body:JSON.stringify(payload),redirect:\"follow\"})\n      .then(function(r){ return r.text(); })\n      .then(function(t){ var j; try{ j=JSON.parse(t); }catch(e){ throw {code:\"bad_json\", error:t.slice(0,120)}; } return j; })\n      .then(function(j){ if(!j || !j.ok){ throw j || {code:\"unknown\"}; } renderResult(j, q); })\n      .catch(function(e){\n        var code = e && e.code, text;\n        if(code===\"late_paid\") text=L.e_late_paid;\n        else if(code===\"late_free\") text=L.e_late_paid;   \/\/ \u65e7\u30b3\u30fc\u30c9\u4e92\u63db\uff08\u7de0\u5207\u306f\u5171\u901a\u306e30\u5206\u524d\uff09\n        else if(code===\"no_stock\") text=L.e_no_stock;\n        else if(code===\"bad_dates\") text=L.e_bad_dates;\n        else if(code===\"invalid\") text=L.e_invalid+(e.error? \" (\"+esc(e.error)+\")\":\"\");\n        else text=L.e_generic+(e&&e.error? \"<br><small>\"+esc(e.error)+\"<\/small>\":\"\");\n        showMsg(\"err\", text);\n        btn.disabled=false; btn.textContent=L.btn_submit;\n        loadAvail();\n      });\n  });\n  function guideMsg(j){ var m = j && (j[MSG_FIELD] || j.message); return m ? '<div class=\"igb-notice\">'+esc(m)+'<\/div>' : \"\"; }\n  function keysHtml(keys){\n    if(!keys) return \"\";\n    var rows=[];\n    if(typeof keys===\"string\"){ rows.push('<div class=\"igb-key\"><span>'+L.key_label+'<\/span><b>'+esc(keys)+'<\/b><\/div>'); }\n    else if(Array.isArray(keys)){ keys.forEach(function(k){ if(k&&typeof k===\"object\") rows.push('<div class=\"igb-key\"><span>'+esc(k.label||(LANG===\"ja\"? k.ja : k.en)||k.ja||k.bike||k.name||\"\")+'<\/span><b>'+esc(k.key||k.code||k.value||\"\")+'<\/b><\/div>'); else rows.push('<div class=\"igb-key\"><span>'+L.key_label+'<\/span><b>'+esc(k)+'<\/b><\/div>'); }); }\n    else { Object.keys(keys).forEach(function(k){ rows.push('<div class=\"igb-key\"><span>'+esc(k)+'<\/span><b>'+esc(keys[k])+'<\/b><\/div>'); }); }\n    return rows.length ? '<div class=\"igb-shot-top\"><span class=\"igb-shot-ico\" aria-hidden=\"true\">\ud83d\udcf8<\/span><div><b>'+L.shot_top_h+'<\/b><span>'+L.shot_top_p+'<\/span><\/div><\/div>'+\n      '<div class=\"igb-keys\"><div style=\"font-weight:600;margin-bottom:4px\">'+L.key_title+'<\/div>'+rows.join(\"\")+'<\/div>' : \"\";\n  }\n  var SHOT = '<div class=\"igb-shot\">'+L.shot_html+'<\/div>';\n  function summaryRows(j, q){\n    return '<table class=\"igb-kv\">'+\n      '<tr><th>'+L.s_id+'<\/th><td>'+esc(j.id||\"\")+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_name_room+'<\/th><td>'+esc(fName.value.trim())+' \/ '+esc(fRoom.value.trim())+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_site+'<\/th><td>'+esc(siteLabel())+(fBooking.value.trim()? ' ('+esc(fBooking.value.trim())+')' : '')+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_dates+'<\/th><td>'+esc(q.dates.map(fmtDay).join(L.sep_list))+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_plan+'<\/th><td>'+esc(q.plan_label)+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_qty+'<\/th><td>'+esc(T(L.qty_plain,{c:q.city, x:q.cross}))+'<\/td><\/tr>'+\n      '<tr><th>'+L.s_price+'<\/th><td>'+yen(j.amount!=null? j.amount : q.amount)+L.tax_paren+'<\/td><\/tr><\/table>';\n  }\n  function siteLabel(){ var o=fSite.options[fSite.selectedIndex]; return o && o.value ? o.text : \"\"; }\n  function isAirbnb(){ return fSite.value===\"airbnb\"; }\n  function checkUrl(j){\n    \/\/ \u9375\u756a\u53f7\u306e\u78ba\u8a8d\u7528URL\uff08GAS \u304c status_url\/check_url \u3092\u8fd4\u305b\u3070\u305d\u308c\u3092\u512a\u5148\u3002\u7121\u3051\u308c\u3070 id \u3068 k \u304b\u3089\u540c\u30da\u30fc\u30b8\u306e ?check=1 \u3092\u7d44\u307f\u7acb\u3066\u308b\uff09\n    var u = j && (j.status_url || j.check_url || \"\");\n    if(!u && j && j.id && j.k) u = location.origin + location.pathname + \"?check=1&id=\" + encodeURIComponent(j.id) + \"&k=\" + encodeURIComponent(j.k);\n    return u;\n  }\n  function pendingBox(body, dl){\n    \/\/ \u300c\u307e\u3060\u78ba\u5b9a\u3057\u3066\u3044\u307e\u305b\u3093\u300d\u5f37\u8abf\u67a0\uff08\u898b\u51fa\u3057\u306e\u76f4\u4e0b\u30fb\u53d7\u4ed8\u5185\u5bb9\u3088\u308a\u4e0a\uff09\n    return '<div class=\"igb-pending\" role=\"alert\"><span class=\"igb-pending-ico\" aria-hidden=\"true\">\u26a0\ufe0f<\/span><div><b class=\"igb-pending-h\">'+L.pend_h+'<\/b>'+body+\n      (dl? '<br>'+T(L.pend_deadline,{dl:\"<strong>\"+esc(dl)+\"<\/strong>\"}) : '')+'<br>'+L.pend_keys+'<\/div><\/div>';\n  }\n  function renderResult(j, q){\n    form.style.display=\"none\";\n    var html, message = guideMsg(j);\n    var abPending = (j.status===\"pending_airbnb\") || (isAirbnb() && !q.free && !(j.keys && j.keys.length));\n    if(abPending){\n      var cu = checkUrl(j);\n      var adl = j.pay_deadline_iso ? fmtJst(new Date(j.pay_deadline_iso).getTime()) : \"\";\n      html = '<h3>'+L.r_pending_h+'<\/h3>'+pendingBox(L.pend_ab, adl)+summaryRows(j,q)+message+\n        (cu? '<a class=\"igb-check-link\" href=\"'+esc(cu)+'\">'+L.r_ab_check+'<\/a>' : '')+\n        '<div class=\"igb-shot-top\"><span class=\"igb-shot-ico\" aria-hidden=\"true\">\ud83d\udcf8<\/span><div><b>'+L.shot_top_h+'<\/b><span>'+L.shot_top_p_ab+'<\/span><\/div><\/div>'+SHOT;\n    } else if(j.payment_url){\n      var dl = j.pay_deadline_iso ? fmtJst(new Date(j.pay_deadline_iso).getTime()) : \"\";\n      html = '<h3>'+L.r_pending_h+'<\/h3>'+pendingBox(L.pend_paid, dl)+summaryRows(j,q)+message+\n        '<a class=\"igb-btn igb-pay\" href=\"'+esc(j.payment_url)+'\" rel=\"noopener\">'+L.r_pay_btn+'<\/a>'+\n        '<p class=\"igb-hint\" style=\"margin-top:10px\">'+L.r_pay_hint+'<\/p>'+SHOT;\n    } else {\n      html = '<h3>'+L.r_free_h+'<\/h3>'+summaryRows(j,q)+keysHtml(j.keys)+message+\n        (message? \"\" : '<p class=\"igb-hint\">'+L.r_free_hint+'<\/p>')+SHOT;\n    }\n    result.innerHTML=html; result.className=\"igb-result show\";\n    try{ result.scrollIntoView({behavior:\"smooth\",block:\"start\"}); }catch(e){}\n  }\n\n  \/\/ ---- Stripe \u6c7a\u6e08\u5b8c\u4e86\u30ea\u30c0\u30a4\u30ec\u30af\u30c8 (?paid=1&id=IGB-xxxx&k=...) ----\n  function handlePaidLanding(){\n    var qs = new URLSearchParams(location.search);\n    var paid = qs.get(\"paid\")===\"1\";\n    var check = !paid && qs.get(\"id\") && qs.get(\"k\");      \/\/ ?check=1&id&k\uff08Airbnb \u7b49\u306e\u9375\u756a\u53f7\u78ba\u8a8d\uff09\u2192 bike_status\n    if(!paid && !check) return false;\n    var id=qs.get(\"id\")||\"\", k=qs.get(\"k\")||\"\", s=qs.get(\"s\")||qs.get(\"session_id\")||\"\";\n    form.style.display=\"none\";\n    result.className=\"igb-result show\";\n    result.innerHTML='<h3>'+(check? L.l_checking_status : L.l_checking)+'<\/h3><p><span class=\"igb-spin\"><\/span>'+L.l_wait+'<\/p>';\n    var url = check\n      ? GAS_URL+\"?action=bike_status&id=\"+encodeURIComponent(id)+\"&k=\"+encodeURIComponent(k)\n      : GAS_URL+\"?action=bike_paid&id=\"+encodeURIComponent(id)+\"&k=\"+encodeURIComponent(k)+(s?\"&s=\"+encodeURIComponent(s):\"\");\n    var t0=Date.now(), POLL_MS=3000, POLL_MAX=120000;\n    var stUrl=GAS_URL+\"?action=bike_status&id=\"+encodeURIComponent(id)+\"&k=\"+encodeURIComponent(k);\n    function render(j){\n      var message = guideMsg(j);\n      if(j && j.ok && (j.status===\"paid\"||j.status===\"confirmed\")){\n        result.innerHTML='<h3>'+L.l_thanks_h+'<\/h3><p>'+T(L.l_thanks_p,{id:\"<strong>\"+esc(id)+\"<\/strong>\"})+'<\/p>'+keysHtml(j.keys)+message+\n          (message? \"\" : '<p class=\"igb-hint\">'+L.l_thanks_hint+'<\/p>')+SHOT;\n      } else if(j && j.ok && paid && j.status===\"pending_payment\"){\n        \/\/ v3.5.0: \u652f\u6255\u5b8c\u4e86\u306e\u623b\u308a\u3002\u78ba\u5b9a\uff08Stripe \u306e\u901a\u77e5\uff09\u3092\u5f85\u3064\u9593\u306f\u30dd\u30fc\u30ea\u30f3\u30b0\u3002\u9375\u756a\u53f7\u306f paid \u306b\u306a\u3063\u3066\u304b\u3089\n        if(Date.now()-t0 < POLL_MAX){\n          result.innerHTML='<h3>'+L.l_checking+'<\/h3><p><span class=\"igb-spin\"><\/span>'+L.l_wait+'<\/p>';\n          setTimeout(function(){ get(stUrl); }, POLL_MS);\n          return;\n        }\n        var su = j.status_url || (location.origin + location.pathname + \"?check=1&id=\" + encodeURIComponent(id) + \"&k=\" + encodeURIComponent(k));\n        result.innerHTML='<h3>'+L.l_wait_pay_h+'<\/h3><p>'+T(L.l_poll_timeout,{id:\"<strong>\"+esc(id)+\"<\/strong>\"})+'<\/p>'+\n          '<a class=\"igb-check-link\" href=\"'+esc(su)+'\">'+L.l_reload+'<\/a>'+SHOT;\n      } else if(j && j.ok && check && (j.status===\"pending_airbnb\" || j.status===\"pending_payment\")){\n        var payLink = (j.status===\"pending_payment\" && j.payment_url) ? '<a class=\"igb-btn igb-pay\" href=\"'+esc(j.payment_url)+'\" rel=\"noopener\">'+L.r_pay_btn+'<\/a>' : '';\n        result.innerHTML='<h3>'+L.l_wait_pay_h+'<\/h3><p>'+T(j.status===\"pending_airbnb\"? L.l_wait_ab_p : L.l_wait_pay_p,{id:\"<strong>\"+esc(id)+\"<\/strong>\"})+'<\/p>'+message+payLink+\n          '<a class=\"igb-check-link\" href=\"'+esc(location.href)+'\">'+L.l_reload+'<\/a>'+SHOT;\n      } else if(j && j.ok && check && (j.status===\"expired\" || j.status===\"cancelled\")){\n        result.innerHTML='<h3>'+(j.status===\"expired\"? L.l_expired_h : L.l_cancelled_h)+'<\/h3><p>'+T(j.status===\"expired\"? L.l_expired_p : L.l_cancelled_p,{id:\"<strong>\"+esc(id)+\"<\/strong>\"})+'<\/p>'+message+SHOT;\n      } else if(j && j.ok && check){\n        result.innerHTML='<h3>'+L.l_fail_h+'<\/h3><p>'+T(L.l_status_other,{id:\"<strong>\"+esc(id)+\"<\/strong>\", status:esc(j.status||\"\")})+'<\/p>'+message+SHOT;\n      } else if(j && j.ok){\n        result.innerHTML='<h3>'+L.l_accepted_h+'<\/h3><p>'+T(L.l_accepted_p,{id:\"<strong>\"+esc(id)+\"<\/strong>\", status:esc(j.status||\"\")})+'<\/p>'+message+SHOT;\n      } else {\n        result.innerHTML='<h3>'+L.l_fail_h+'<\/h3><p>'+esc((j&&j.error)||L.l_fail_default)+'<br>'+T(L.l_fail_p,{id:esc(id)})+'<\/p>';\n      }\n    }\n    function get(u){\n      fetch(u,{method:\"GET\",redirect:\"follow\"}).then(function(r){return r.json();}).then(render).catch(function(){\n        if(paid && Date.now()-t0 < POLL_MAX){ setTimeout(function(){ get(stUrl); }, POLL_MS); return; }\n        result.innerHTML='<h3>'+L.l_neterr_h+'<\/h3><p>'+T(L.l_neterr_p,{id:esc(id)})+'<\/p>';\n      });\n    }\n    get(url);\n    return true;\n  }\n\n  \/\/ ---- wire up ----\n  [fStart,fCity,fCross].forEach(function(el){ el.addEventListener(\"change\", recalc); });\n  function abToggle(){ abNote.classList.toggle(\"show\", isAirbnb()); }\n  fSite.addEventListener(\"change\", abToggle);\n  Array.prototype.forEach.call(form.querySelectorAll('input[name=plan]'), function(r){\n    r.addEventListener(\"change\", function(){\n      Array.prototype.forEach.call(form.querySelectorAll(\".igb-plan-opt\"), function(l){ l.classList.toggle(\"on\", l.querySelector(\"input\").checked); });\n      var need=PLAN_DAYS[plan()], ks=Object.keys(selected).sort();\n      if(plan()!==\"4plus\" && ks.length>need){ selected={}; ks.slice(0,need).forEach(function(k){ selected[k]=true; }); }   \/\/ \u591a\u3059\u304e\u308b\u5206\u306f\u5148\u982d\u304b\u3089\u6b8b\u3059\n      Array.prototype.forEach.call(cal.querySelectorAll(\".igb-day\"), function(c){ c.classList.toggle(\"on\", !!selected[c.getAttribute(\"data-d\")]); });\n      renderSel(); recalc();\n    });\n  });\n  Array.prototype.forEach.call(form.querySelectorAll(\".igb-plan-opt\"), function(l){ l.classList.toggle(\"on\", l.querySelector(\"input\").checked); });\n  if(!handlePaidLanding()){ renderCal(); recalc(); loadAvail(); }\n})();\n<\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4d3f0401 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4d3f0401\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-igbtailc\" data-id=\"igbtailc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-27b0440 elementor-widget elementor-widget-heading\" data-id=\"27b0440\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Reservation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fb8e37 igb-jp elementor-widget elementor-widget-heading\" data-id=\"4fb8e37\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">R\u00e9servation et disponibilit\u00e9s<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34df6dd6 elementor-align-center elementor-mobile-align-justify igb-btnf elementor-widget elementor-widget-button\" data-id=\"34df6dd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md\" href=\"https:\/\/hotel-ishigaki.airhost.co\/en\" 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\">Voir les disponibilit\u00e9s<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Bike Rental D\u00e9couvrez l\u2019\u00eele d\u2019Ishigaki \u00e0 votre rythme, \u00e0 v\u00e9lo. Bike Rental Location de v\u00e9los pour nos h\u00f4tes L\u2019Hotel Ishigaki &amp; Chikonkiya propose des v\u00e9los en location \u00e0 ses h\u00f4tes.Jusqu\u2019au terminal des ferries, en centre-ville ou le long de la c\u00f4te\u00a0: partez \u00e0 la d\u00e9couverte de l\u2019\u00eele d\u2019Ishigaki en toute tranquillit\u00e9. V\u00e9lo de ville Id\u00e9al [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_templately_pack_id":"","_templately_imported_at":"","_templately_source":"","_templately_import_session_id":"","_locale":"fr_FR","_original_post":"https:\/\/hotel-ishigaki.com\/?page_id=1571","footnotes":""},"class_list":["post-2581","page","type-page","status-publish","hentry","fr-FR"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"\u3010\u516c\u5f0f\u3011\u30db\u30c6\u30eb\u77f3\u57a3 &amp; \u3061\u3053\u3093\u304d\u3084\u30fc - \u300e\u5cf6\u306e\u4e2d\u5fc3\u3067\u3001\u5fc3\u3068\u8eab\u4f53\u3092\u6574\u3048\u308b\u300f \u30d2\u30ce\u30ad\u304c\u9999\u308b\u9ad8\u7d1a\u30d9\u30c3\u30c9\u3001\u81ea\u7136\u3092\u611b\u3059\u308b\u6d41\u6728\u5bb6\u5177 \u81ea\u5206\u3060\u3051\u306e\u6642\u9593\u3092\u904e\u3054\u305d\u3046\u3002\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki &amp; Chikonkiya\" \/>\n\t\t<meta property=\"og:description\" content=\"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-07T04:42:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-07T07:59:22+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki &amp; Chikonkiya\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#listItem\",\"position\":1,\"name\":\"\\u5bb6\",\"item\":\"https:\\\/\\\/hotel-ishigaki.com\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#listItem\",\"name\":\"BIKE RENTAL (FR)\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#listItem\",\"position\":2,\"name\":\"BIKE RENTAL (FR)\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#listItem\",\"name\":\"\\u5bb6\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#organization\",\"name\":\"\\u30db\\u30c6\\u30eb\\u77f3\\u57a3 & \\u3061\\u3053\\u3093\\u304d\\u3084\\u30fc\",\"description\":\"\\u300e\\u5cf6\\u306e\\u4e2d\\u5fc3\\u3067\\u3001\\u5fc3\\u3068\\u8eab\\u4f53\\u3092\\u6574\\u3048\\u308b\\u300f \\u30d2\\u30ce\\u30ad\\u304c\\u9999\\u308b\\u9ad8\\u7d1a\\u30d9\\u30c3\\u30c9\\u3001\\u81ea\\u7136\\u3092\\u611b\\u3059\\u308b\\u6d41\\u6728\\u5bb6\\u5177 \\u81ea\\u5206\\u3060\\u3051\\u306e\\u6642\\u9593\\u3092\\u904e\\u3054\\u305d\\u3046\\u3002\",\"url\":\"https:\\\/\\\/hotel-ishigaki.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/hotel-ishigaki.com\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/cropped-\\u80cc\\u666f\\u7121\\u3057\\u3061\\u3053\\u3093\\u304d\\u3084\\u30fc\\u30ed\\u30b4\\u306e\\u307f\\u5c0f.png\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#organizationLogo\",\"width\":239,\"height\":239},\"image\":{\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#organizationLogo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#webpage\",\"url\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/\",\"name\":\"Location de v\\u00e9los \\u00e0 Ishigaki | Hotel Ishigaki & Chikonkiya\",\"description\":\"Location de v\\u00e9los pour les h\\u00f4tes de l\\u2019Hotel Ishigaki : v\\u00e9lo de ville gratuit jusqu\\u2019\\u00e0 3 heures, v\\u00e9lo hybride d\\u00e8s \\u00a51,000. Demande en ligne jusqu\\u2019\\u00e0 30 minutes avant.\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/fr\\\/bike_rental\\\/#breadcrumblist\"},\"datePublished\":\"2026-10-07T13:42:10+09:00\",\"dateModified\":\"2026-10-07T16:59:22+09:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#website\",\"url\":\"https:\\\/\\\/hotel-ishigaki.com\\\/\",\"name\":\"\\u30db\\u30c6\\u30eb\\u77f3\\u57a3 & \\u3061\\u3053\\u3093\\u304d\\u3084\\u30fc\",\"description\":\"\\u300e\\u5cf6\\u306e\\u4e2d\\u5fc3\\u3067\\u3001\\u5fc3\\u3068\\u8eab\\u4f53\\u3092\\u6574\\u3048\\u308b\\u300f \\u30d2\\u30ce\\u30ad\\u304c\\u9999\\u308b\\u9ad8\\u7d1a\\u30d9\\u30c3\\u30c9\\u3001\\u81ea\\u7136\\u3092\\u611b\\u3059\\u308b\\u6d41\\u6728\\u5bb6\\u5177 \\u81ea\\u5206\\u3060\\u3051\\u306e\\u6642\\u9593\\u3092\\u904e\\u3054\\u305d\\u3046\\u3002\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/hotel-ishigaki.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki & Chikonkiya","description":"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.","canonical_url":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/hotel-ishigaki.com\/#listItem","position":1,"name":"\u5bb6","item":"https:\/\/hotel-ishigaki.com\/","nextItem":{"@type":"ListItem","@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#listItem","name":"BIKE RENTAL (FR)"}},{"@type":"ListItem","@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#listItem","position":2,"name":"BIKE RENTAL (FR)","previousItem":{"@type":"ListItem","@id":"https:\/\/hotel-ishigaki.com\/#listItem","name":"\u5bb6"}}]},{"@type":"Organization","@id":"https:\/\/hotel-ishigaki.com\/#organization","name":"\u30db\u30c6\u30eb\u77f3\u57a3 & \u3061\u3053\u3093\u304d\u3084\u30fc","description":"\u300e\u5cf6\u306e\u4e2d\u5fc3\u3067\u3001\u5fc3\u3068\u8eab\u4f53\u3092\u6574\u3048\u308b\u300f \u30d2\u30ce\u30ad\u304c\u9999\u308b\u9ad8\u7d1a\u30d9\u30c3\u30c9\u3001\u81ea\u7136\u3092\u611b\u3059\u308b\u6d41\u6728\u5bb6\u5177 \u81ea\u5206\u3060\u3051\u306e\u6642\u9593\u3092\u904e\u3054\u305d\u3046\u3002","url":"https:\/\/hotel-ishigaki.com\/","logo":{"@type":"ImageObject","url":"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png","@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#organizationLogo","width":239,"height":239},"image":{"@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#organizationLogo"}},{"@type":"WebPage","@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#webpage","url":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/","name":"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki & Chikonkiya","description":"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/hotel-ishigaki.com\/#website"},"breadcrumb":{"@id":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/#breadcrumblist"},"datePublished":"2026-10-07T13:42:10+09:00","dateModified":"2026-10-07T16:59:22+09:00"},{"@type":"WebSite","@id":"https:\/\/hotel-ishigaki.com\/#website","url":"https:\/\/hotel-ishigaki.com\/","name":"\u30db\u30c6\u30eb\u77f3\u57a3 & \u3061\u3053\u3093\u304d\u3084\u30fc","description":"\u300e\u5cf6\u306e\u4e2d\u5fc3\u3067\u3001\u5fc3\u3068\u8eab\u4f53\u3092\u6574\u3048\u308b\u300f \u30d2\u30ce\u30ad\u304c\u9999\u308b\u9ad8\u7d1a\u30d9\u30c3\u30c9\u3001\u81ea\u7136\u3092\u611b\u3059\u308b\u6d41\u6728\u5bb6\u5177 \u81ea\u5206\u3060\u3051\u306e\u6642\u9593\u3092\u904e\u3054\u305d\u3046\u3002","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/hotel-ishigaki.com\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"\u3010\u516c\u5f0f\u3011\u30db\u30c6\u30eb\u77f3\u57a3 &amp; \u3061\u3053\u3093\u304d\u3084\u30fc - \u300e\u5cf6\u306e\u4e2d\u5fc3\u3067\u3001\u5fc3\u3068\u8eab\u4f53\u3092\u6574\u3048\u308b\u300f \u30d2\u30ce\u30ad\u304c\u9999\u308b\u9ad8\u7d1a\u30d9\u30c3\u30c9\u3001\u81ea\u7136\u3092\u611b\u3059\u308b\u6d41\u6728\u5bb6\u5177 \u81ea\u5206\u3060\u3051\u306e\u6642\u9593\u3092\u904e\u3054\u305d\u3046\u3002","og:type":"article","og:title":"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki &amp; Chikonkiya","og:description":"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.","og:url":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/","og:image":"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png","og:image:secure_url":"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png","article:published_time":"2026-10-07T04:42:10+00:00","article:modified_time":"2026-10-07T07:59:22+00:00","twitter:card":"summary_large_image","twitter:title":"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki &amp; Chikonkiya","twitter:description":"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.","twitter:image":"https:\/\/hotel-ishigaki.com\/wp-content\/uploads\/2023\/10\/cropped-\u80cc\u666f\u7121\u3057\u3061\u3053\u3093\u304d\u3084\u30fc\u30ed\u30b4\u306e\u307f\u5c0f.png"},"aioseo_meta_data":{"post_id":"2581","title":"Location de v\u00e9los \u00e0 Ishigaki | Hotel Ishigaki & Chikonkiya","description":"Location de v\u00e9los pour les h\u00f4tes de l\u2019Hotel Ishigaki : v\u00e9lo de ville gratuit jusqu\u2019\u00e0 3 heures, v\u00e9lo hybride d\u00e8s \u00a51,000. Demande en ligne jusqu\u2019\u00e0 30 minutes avant.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2026-10-07 04:46:13","updated":"2026-10-07 10:01:44","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/hotel-ishigaki.com\/\" title=\"\u5bb6\">\u5bb6<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBIKE RENTAL (FR)\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"\u5bb6","link":"https:\/\/hotel-ishigaki.com\/"},{"label":"BIKE RENTAL (FR)","link":"https:\/\/hotel-ishigaki.com\/fr\/bike_rental\/"}],"_links":{"self":[{"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/pages\/2581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/comments?post=2581"}],"version-history":[{"count":5,"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/pages\/2581\/revisions"}],"predecessor-version":[{"id":3092,"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/pages\/2581\/revisions\/3092"}],"wp:attachment":[{"href":"https:\/\/hotel-ishigaki.com\/wp-json\/wp\/v2\/media?parent=2581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}