{"id":985,"date":"2026-05-26T10:43:16","date_gmt":"2026-05-26T10:43:16","guid":{"rendered":"https:\/\/www.lessourcesvichy.fr\/?page_id=985"},"modified":"2026-08-04T23:38:11","modified_gmt":"2026-08-04T23:38:11","slug":"accueil","status":"publish","type":"page","link":"https:\/\/www.lessourcesvichy.fr\/","title":{"rendered":"Accueil"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\" prefix=\"og: https:\/\/ogp.me\/ns#\" class=\"no-js\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n\n  <!-- \u2550\u2550\u2550 SEO PRIMAIRE \u2550\u2550\u2550 -->\n  <title>Appart&rsquo;H\u00f4tel Les Sources Vichy \u2013 Location courte dur\u00e9e | Cure thermale &amp; S\u00e9jour pro<\/title>\n  <meta name=\"description\" content=\"Les Sources Vichy : appart'h\u00f4tel 2 Cl\u00e9s Prestige, 17 Rue des Sources, Vichy 03200. Studios, appartements et duplex de 10 \u00e0 33 m\u00b2 pour cure thermale, s\u00e9jour professionnel ou week-end. R\u00e9servation directe au meilleur prix garanti.\" \/>\n  <meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n  <meta name=\"author\" content=\"Les Sources Vichy \u2013 TL Immobiliers\" \/>\n  <link rel=\"canonical\" href=\"https:\/\/www.lessourcesvichy.fr\/\" \/>\n\n  <!-- \u2550\u2550\u2550 VERSIONS LINGUISTIQUES \u2550\u2550\u2550 -->\n  <link rel=\"alternate\" hreflang=\"fr\" href=\"https:\/\/www.lessourcesvichy.fr\/\" \/>\n  <link rel=\"alternate\" hreflang=\"en\" href=\"https:\/\/www.lessourcesvichy.fr\/en\/\" \/>\n  <link rel=\"alternate\" hreflang=\"es\" href=\"https:\/\/www.lessourcesvichy.fr\/es\/\" \/>\n  <link rel=\"alternate\" hreflang=\"x-default\" href=\"https:\/\/www.lessourcesvichy.fr\/\" \/>\n\n\n  <!-- \u2550\u2550\u2550 OPEN GRAPH \u2550\u2550\u2550 -->\n  <meta property=\"og:type\" content=\"website\" \/>\n  <meta property=\"og:site_name\" content=\"Les Sources Vichy\" \/>\n  <meta property=\"og:title\" content=\"Appart'H\u00f4tel Les Sources Vichy \u2013 Location courte dur\u00e9e au c\u0153ur de la ville thermale\" \/>\n  <meta property=\"og:description\" content=\"Appart'h\u00f4tel 2 Cl\u00e9s Prestige \u00e0 Vichy. Studios, appartements et duplex pour cure thermale, s\u00e9jour pro ou week-end. \u00c0 deux pas des Thermes. R\u00e9servation directe au meilleur prix.\" \/>\n  <meta property=\"og:url\" content=\"https:\/\/www.lessourcesvichy.fr\/\" \/>\n  <meta property=\"og:image\" content=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-1.jpg\" \/>\n  <meta property=\"og:image:alt\" content=\"Appartement N\u00b011 avec balcon \u2013 Les Sources Vichy\" \/>\n  <meta property=\"og:locale\" content=\"fr_FR\" \/>\n\n  <!-- \u2550\u2550\u2550 TWITTER CARD \u2550\u2550\u2550 -->\n  <meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n  <meta name=\"twitter:title\" content=\"Appart'H\u00f4tel Les Sources Vichy \u2013 Location courte dur\u00e9e\" \/>\n  <meta name=\"twitter:description\" content=\"Appart'h\u00f4tel 2 Cl\u00e9s Prestige \u00e0 Vichy. Studios et appartements pour cure thermale, s\u00e9jour pro ou week-end. R\u00e9servation directe.\" \/>\n  <meta name=\"twitter:image\" content=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-1.jpg\" \/>\n\n  <!-- \u2550\u2550\u2550 FAVICON \u2550\u2550\u2550 -->\n  <link rel=\"icon\" type=\"image\/png\" href=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2025\/09\/LOGO-Les-sources-Vichy-300x300.png\" \/>\n  <link rel=\"apple-touch-icon\" href=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2025\/09\/LOGO-Les-sources-Vichy-300x300.png\" \/>\n\n  <!-- \u2550\u2550\u2550 SCHEMA.ORG \u2013 LodgingBusiness \u2550\u2550\u2550 -->\n  <script type=\"application\/ld+json\">\n  {\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"LodgingBusiness\",\n    \"@id\": \"https:\/\/www.lessourcesvichy.fr\/#business\",\n    \"name\": \"Les Sources Vichy\",\n    \"alternateName\": \"Appart'H\u00f4tel Les Sources Vichy\",\n    \"description\": \"Appart'h\u00f4tel 2 Cl\u00e9s Prestige au c\u0153ur de la ville thermale de Vichy. 10 logements de 10 \u00e0 33 m\u00b2 \u2014 studios, souplex, appartements et duplex \u2014 pour cure thermale, s\u00e9jour professionnel ou week-end en Auvergne.\",\n    \"url\": \"https:\/\/www.lessourcesvichy.fr\",\n    \"telephone\": \"+33756981477\",\n    \"email\": \"contact@lessourcesvichy.fr\",\n    \"image\": \"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-1.jpg\",\n    \"logo\": \"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2025\/09\/LOGO-Les-sources-Vichy-300x300.png\",\n    \"address\": {\n      \"@type\": \"PostalAddress\",\n      \"streetAddress\": \"17 Rue des Sources\",\n      \"addressLocality\": \"Vichy\",\n      \"postalCode\": \"03200\",\n      \"addressRegion\": \"Auvergne-Rh\u00f4ne-Alpes\",\n      \"addressCountry\": \"FR\"\n    },\n    \"geo\": { \"@type\": \"GeoCoordinates\", \"latitude\": \"46.1237\", \"longitude\": \"3.4261\" },\n    \"priceRange\": \"\u20ac\u20ac\",\n    \"checkinTime\": \"16:00\",\n    \"checkoutTime\": \"10:00\",\n    \"numberOfRooms\": 10,\n    \"amenityFeature\": [\n      { \"@type\": \"LocationFeatureSpecification\", \"name\": \"Wi-Fi gratuit\", \"value\": true },\n      { \"@type\": \"LocationFeatureSpecification\", \"name\": \"Cuisine \u00e9quip\u00e9e\", \"value\": true },\n      { \"@type\": \"LocationFeatureSpecification\", \"name\": \"Arriv\u00e9e autonome\", \"value\": true },\n      { \"@type\": \"LocationFeatureSpecification\", \"name\": \"Ventilateur\", \"value\": true }\n    ],\n    \"containsPlace\": [\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b011 \u2013 Appartement avec balcon\", \"description\": \"Appartement de 23 m\u00b2 avec balcon priv\u00e9 et lit Queen size, 3e \u00e9tage c\u00f4t\u00e9 rue.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 23, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b09 \u2013 Duplex\", \"description\": \"Duplex de 28 m\u00b2 sur deux niveaux, lit Queen size et lit simple 80\u00d7200, 3e \u00e9tage c\u00f4t\u00e9 cour.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 28, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 3 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b08 \u2013 Appartement lit Queen size\", \"description\": \"Appartement de 21 m\u00b2 avec lit Queen size, 2e \u00e9tage c\u00f4t\u00e9 rue.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 21, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b05 \u2013 Appartement lit double\", \"description\": \"Appartement de 21 m\u00b2 avec lit double, 1er \u00e9tage c\u00f4t\u00e9 rue.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 21, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b04 \u2013 Studio 2 personnes\", \"description\": \"Studio de 15 m\u00b2 pour 2 personnes, 1er \u00e9tage c\u00f4t\u00e9 cour.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 15, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b07 \u2013 Studio 2 personnes\", \"description\": \"Studio de 15 m\u00b2 pour 2 personnes, 2e \u00e9tage c\u00f4t\u00e9 cour.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 15, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b02 \u2013 Souplex lits s\u00e9par\u00e9s\", \"description\": \"Souplex de 15 m\u00b2 sur deux niveaux avec lits individuels s\u00e9par\u00e9s, rez-de-chauss\u00e9e c\u00f4t\u00e9 cour.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 15, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 2 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b06 \u2013 Studio 1 personne\", \"description\": \"Studio de 10 m\u00b2 pour un voyageur seul, 2e \u00e9tage c\u00f4t\u00e9 cour.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 10, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 1 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b03 \u2013 Studio 1 personne\", \"description\": \"Studio de 10 m\u00b2 pour un voyageur seul, 1er \u00e9tage c\u00f4t\u00e9 cour. Actuellement en r\u00e9novation.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 10, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 1 } },\n      { \"@type\": \"Accommodation\", \"name\": \"N\u00b010 \u2013 Duplex\", \"description\": \"Duplex de 33 m\u00b2 sur deux niveaux, 3e \u00e9tage c\u00f4t\u00e9 cour. Actuellement en r\u00e9novation.\", \"floorSize\": { \"@type\": \"QuantitativeValue\", \"value\": 33, \"unitCode\": \"MTK\" }, \"occupancy\": { \"@type\": \"QuantitativeValue\", \"maxValue\": 3 } }\n    ],\n    \"sameAs\": [ \"https:\/\/www.facebook.com\/profile.php?id=61575597062406\" ]\n  }\n  <\/script>\n\n  <!-- \u2550\u2550\u2550 SCHEMA.ORG \u2013 BreadcrumbList \u2550\u2550\u2550 -->\n  <script type=\"application\/ld+json\">\n  {\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    \"itemListElement\": [\n      { \"@type\": \"ListItem\", \"position\": 1, \"name\": \"Accueil\", \"item\": \"https:\/\/www.lessourcesvichy.fr\/\" },\n      { \"@type\": \"ListItem\", \"position\": 2, \"name\": \"Nos logements\", \"item\": \"https:\/\/www.lessourcesvichy.fr\/#logements\" },\n      { \"@type\": \"ListItem\", \"position\": 3, \"name\": \"Contact\", \"item\": \"https:\/\/www.lessourcesvichy.fr\/#contact\" }\n    ]\n  }\n  <\/script>\n\n  <!-- \u2550\u2550\u2550 SCHEMA.ORG \u2013 FAQPage \u2550\u2550\u2550 -->\n  <script type=\"application\/ld+json\">\n  {\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n      { \"@type\": \"Question\", \"name\": \"O\u00f9 se situe l'appart'h\u00f4tel Les Sources Vichy ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Au 17 Rue des Sources, 03200 Vichy, \u00e0 quelques minutes \u00e0 pied des Thermes de Vichy et du Parc des Sources.\" } },\n      { \"@type\": \"Question\", \"name\": \"Quels types de logements sont disponibles ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"10 logements de 10 \u00e0 33 m\u00b2 : studios, souplex, appartements et duplex, pour 1 \u00e0 3 personnes, tous enti\u00e8rement meubl\u00e9s et \u00e9quip\u00e9s. 8 sont disponibles actuellement, 2 sont en r\u00e9novation.\" } },\n      { \"@type\": \"Question\", \"name\": \"L'appart'h\u00f4tel est-il adapt\u00e9 pour une cure thermale \u00e0 Vichy ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Oui, avec des tarifs d\u00e9gressifs \u00e0 la semaine et un emplacement \u00e0 deux pas des \u00e9tablissements thermaux.\" } },\n      { \"@type\": \"Question\", \"name\": \"Les logements sont-ils climatis\u00e9s ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Les logements ne sont pas climatis\u00e9s. Chacun dispose d'un ventilateur sur pied pour le confort d'\u00e9t\u00e9, et la plupart donnent c\u00f4t\u00e9 cour, plus frais et plus calme.\" } },\n      { \"@type\": \"Question\", \"name\": \"Comment r\u00e9server au meilleur prix ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"En r\u00e9servant directement sur notre site ou par t\u00e9l\u00e9phone au +33 7 56 98 14 77. Meilleur tarif garanti, sans frais de plateforme.\" } },\n      { \"@type\": \"Question\", \"name\": \"\u00c0 quelle heure puis-je arriver ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Le check-in est autonome \u00e0 partir de 16h, le check-out \u00e0 10h. Vos codes d'acc\u00e8s vous sont envoy\u00e9s le matin m\u00eame de votre arriv\u00e9e.\" } },\n      { \"@type\": \"Question\", \"name\": \"Y a-t-il du stationnement \u00e0 proximit\u00e9 ?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Des places de stationnement sont disponibles \u00e0 proximit\u00e9 imm\u00e9diate en voirie et en parking public.\" } }\n    ]\n  }\n  <\/script>\n\n  <!-- \u2550\u2550\u2550 FONTS \u2550\u2550\u2550 -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=Jost:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\" \/>\n\n  <style>\n\n    \/* \u2500\u2500\u2500 RESET & PROTECTION OVERFLOW \u2500\u2500\u2500 *\/\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    html { scroll-behavior: smooth; }\n    html, body { overflow-x: hidden; max-width: 100vw; position: relative; }\n    img, svg, video, iframe { max-width: 100%; height: auto; }\n    section { overflow: hidden; }\n    .carousel { overflow: hidden; }\n\n    \/* \u2500\u2500\u2500 TOKENS \u2500\u2500\u2500 *\/\n    :root {\n      --cream:   #f5f0e8;\n      --ivory:   #faf8f3;\n      --gold:    #b8975a;\n      --gold-lt: #d4b87a;\n      --teal:    #2d5c5c;   \/* Bleu saphir profond *\/\n      --teal-dk: #1a3a3a;   \/* Saphir intense *\/\n      --stone:   #8a8070;\n      --text:    #2a2420;\n      --serif:   'Cormorant Garamond', Georgia, serif;\n      --sans:    'Jost', sans-serif;\n    }\n\n    body {\n      font-family: var(--sans);\n      background: var(--ivory);\n      color: var(--text);\n      font-weight: 300;\n      line-height: 1.7;\n    }\n\n    \/* Grain texture *\/\n    body::before {\n      content: '';\n      position: fixed; inset: 0;\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.03'\/%3E%3C\/svg%3E\");\n      pointer-events: none;\n      z-index: 0;\n    }\n\n    \/* \u2500\u2500\u2500 SYST\u00c8ME D'IC\u00d4NES \u2500\u2500\u2500 *\/\n    .ico {\n      fill: none;\n      stroke: currentColor;\n      stroke-width: 1.2;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n      display: block;\n    }\n    .atout-icon { width: 30px; height: 30px; color: var(--gold-lt); margin: 0 auto 1.2rem; }\n    .faq-icon   { width: 24px; height: 24px; color: var(--gold); margin-bottom: 0.9rem; }\n    .value-icon { width: 22px; height: 22px; color: var(--gold); margin: 0 auto 0.5rem; }\n    .contact-ico{ width: 17px; height: 17px; color: var(--gold-lt); flex-shrink: 0; }\n    .bed-ico    { width: 14px; height: 14px; color: var(--gold); display: inline-block; vertical-align: -2px; margin-right: 4px; }\n    .badge-key  { width: 16px; height: 16px; color: var(--gold); stroke-width: 1.5; }\n\n    \/* \u2500\u2500\u2500 NAV \u2500\u2500\u2500 *\/\n    nav {\n      position: fixed; top: 0; left: 0; right: 0;\n      z-index: 100;\n      display: flex; align-items: center; justify-content: space-between;\n      padding: 1.4rem 4rem;\n      background: rgba(248,246,241,0.92);\n      backdrop-filter: blur(12px);\n      border-bottom: 1px solid rgba(184,151,90,0.2);\n      transition: padding 0.3s ease, box-shadow 0.3s ease;\n    }\n    nav.scrolled {\n      padding-top: 0.9rem; padding-bottom: 0.9rem;\n      box-shadow: 0 4px 20px rgba(26,58,58,0.07);\n    }\n    .nav-logo {\n      font-family: var(--serif);\n      font-size: 1.35rem; font-weight: 600;\n      color: var(--teal-dk); letter-spacing: 0.04em;\n      text-decoration: none;\n    }\n    .nav-logo span { color: var(--gold); }\n    .nav-links { display: flex; gap: 2.5rem; list-style: none; align-items: center; }\n    .nav-links a {\n      font-family: var(--sans); font-size: 0.78rem; font-weight: 500;\n      letter-spacing: 0.15em; text-transform: uppercase;\n      color: var(--teal-dk); text-decoration: none;\n      position: relative; padding-bottom: 2px;\n    }\n    .nav-links a::after {\n      content: '';\n      position: absolute; bottom: 0; left: 0; right: 100%;\n      height: 1px; background: var(--gold);\n      transition: right 0.3s ease;\n    }\n    .nav-links a:hover::after { right: 0; }\n    .nav-cta {\n      background: var(--teal); color: #fff !important;\n      padding: 0.6rem 1.4rem !important; border-radius: 2px;\n      letter-spacing: 0.12em !important;\n      transition: background 0.2s !important;\n    }\n    .nav-cta:hover { background: var(--teal-dk) !important; }\n    .nav-cta::after { display: none !important; }\n\n\n    \/* \u2500\u2500\u2500 S\u00c9LECTEUR DE LANGUE \u2500\u2500\u2500 *\/\n    .lang-switch { display: flex; align-items: center; gap: 0.55rem; margin-right: 0.4rem; }\n    .lang-switch a {\n      font-size: 0.7rem; font-weight: 500; letter-spacing: 0.12em;\n      text-transform: uppercase; color: var(--stone); text-decoration: none;\n      padding-bottom: 1px; transition: color 0.25s;\n    }\n    .lang-switch a::after { display: none; }\n    .lang-switch a:hover { color: var(--teal-dk); }\n    .lang-switch a[aria-current=\"true\"] { color: var(--gold); border-bottom: 1px solid var(--gold); }\n    .lang-switch .sep { color: rgba(184,151,90,0.5); font-size: 0.7rem; }\n    @media (max-width: 900px) {\n      .lang-switch { margin: 0 0 0.2rem; gap: 0.7rem; }\n      .lang-switch a { font-size: 0.8rem; }\n    }\n\n\n    \/* \u2500\u2500\u2500 S\u00c9LECTEUR DE LANGUE \u2500\u2500\u2500 *\/\n    .lang-switch { display: flex; align-items: center; gap: 0.55rem; margin-right: 0.4rem; }\n    .lang-switch a { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.12em;\n      text-transform: uppercase; color: var(--stone); text-decoration: none;\n      padding-bottom: 1px; transition: color 0.25s; white-space: nowrap; }\n    .lang-switch a::after { display: none; }\n    .lang-switch a:hover { color: var(--teal-dk); }\n    .lang-switch a[aria-current=\"true\"] { color: var(--gold); border-bottom: 1px solid var(--gold); }\n    .lang-switch .sep { color: rgba(184,151,90,0.5); font-size: 0.7rem; }\n    @media (max-width: 1150px) { .lang-switch { margin: 0 0 0.2rem; gap: 0.7rem; } .lang-switch a { font-size: 0.8rem; } }\n\n    \/* \u2500\u2500\u2500 MENU BURGER \u2500\u2500\u2500 *\/\n    .nav-toggle {\n      display: none;\n      background: none; border: none; padding: 6px;\n      cursor: pointer; color: var(--teal-dk);\n      position: relative; z-index: 130;\n    }\n    .nav-toggle svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; }\n    .nav-toggle svg path { transition: transform .3s ease, opacity .2s ease; transform-origin: center; }\n    .nav-toggle[aria-expanded=\"true\"] .bar-top { transform: translateY(6px) rotate(45deg); }\n    .nav-toggle[aria-expanded=\"true\"] .bar-mid { opacity: 0; }\n    .nav-toggle[aria-expanded=\"true\"] .bar-bot { transform: translateY(-6px) rotate(-45deg); }\n    .nav-backdrop { display: none; }\n\n    \/* \u2500\u2500\u2500 BOUTONS \u2500\u2500\u2500 *\/\n    .btn-primary {\n      display: inline-block;\n      background: var(--teal); color: #fff;\n      padding: 0.9rem 2.2rem;\n      font-family: var(--sans); font-size: 0.78rem; font-weight: 500;\n      letter-spacing: 0.18em; text-transform: uppercase;\n      text-decoration: none; border-radius: 2px;\n      transition: background 0.3s, transform 0.2s;\n    }\n    .btn-primary:hover { background: var(--teal-dk); transform: translateY(-1px); }\n    .btn-ghost {\n      display: inline-flex; align-items: center; gap: 0.5rem;\n      color: var(--teal); font-size: 0.78rem; font-weight: 500;\n      letter-spacing: 0.12em; text-transform: uppercase;\n      text-decoration: none;\n      border-bottom: 1px solid rgba(45,92,92,0.3); padding-bottom: 2px;\n      transition: border-color 0.3s, gap 0.3s;\n    }\n    .btn-ghost:hover { border-color: var(--teal); gap: 0.8rem; }\n\n    \/* \u2500\u2500\u2500 HERO \u2500\u2500\u2500 *\/\n    .hero {\n      min-height: 100vh;\n      display: grid; grid-template-columns: 1fr 1fr;\n      padding-top: 80px;\n      position: relative; overflow: hidden;\n    }\n    .hero::before {\n      content: '';\n      position: absolute; inset: 0;\n      background: radial-gradient(ellipse at top right, rgba(45,92,92,0.06) 0%, transparent 60%);\n      pointer-events: none; z-index: 1;\n    }\n    .hero-content {\n      display: flex; flex-direction: column; justify-content: center;\n      padding: 6rem 4rem 6rem 5rem;\n      position: relative; z-index: 2;\n    }\n    .hero-eyebrow {\n      font-size: 0.7rem; font-weight: 500;\n      letter-spacing: 0.25em; text-transform: uppercase;\n      color: var(--gold); margin-bottom: 1.5rem;\n      display: flex; align-items: center; gap: 0.8rem;\n      opacity: 0; animation: fadeUp 0.8s 0.2s forwards;\n    }\n    .hero-eyebrow::before { content: ''; display: block; width: 32px; height: 1px; background: var(--gold); }\n    .hero-title {\n      font-family: var(--serif);\n      font-size: clamp(2.8rem, 5vw, 4.4rem);\n      font-weight: 300; line-height: 1.1;\n      color: var(--teal-dk); margin-bottom: 1.8rem;\n      opacity: 0; animation: fadeUp 0.8s 0.4s forwards;\n    }\n    .hero-title em { font-style: italic; color: var(--gold); }\n    .hero-sub {\n      font-size: 0.95rem; line-height: 1.9;\n      color: var(--stone); max-width: 440px; margin-bottom: 3rem;\n      opacity: 0; animation: fadeUp 0.8s 0.6s forwards;\n    }\n    .hero-actions {\n      display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap;\n      opacity: 0; animation: fadeUp 0.8s 0.8s forwards;\n    }\n    .hero-badge {\n      margin-top: 3.5rem;\n      display: inline-flex; align-items: center; gap: 0.8rem;\n      text-decoration: none; color: inherit; cursor: pointer;\n      transition: transform 0.2s, opacity 0.2s;\n      opacity: 0; animation: fadeUp 0.8s 1s forwards;\n    }\n    .hero-badge:hover { transform: translateY(-2px); opacity: 0.85; }\n    .badge-keys { display: flex; gap: 3px; }\n    .badge-collection {\n      display: block; font-size: 0.6rem; letter-spacing: 0.2em;\n      text-transform: uppercase; color: var(--gold); margin-bottom: 2px;\n    }\n    .badge-text { font-size: 0.72rem; letter-spacing: 0.08em; color: var(--stone); }\n    .badge-text strong { display: block; color: var(--text); font-weight: 500; }\n\n    .hero-visual {\n      position: relative;\n      overflow: visible;   \/* la carte flottante d\u00e9borde volontairement \u00e0 gauche *\/\n      opacity: 0; animation: fadeIn 1.2s 0.3s forwards;\n    }\n    .hero-visual-inner {\n      position: absolute; inset: 0;\n      background: linear-gradient(135deg, var(--teal-dk) 0%, var(--teal) 50%, #3d7a6a 100%);\n      display: flex; align-items: center; justify-content: center;\n    }\n    .hero-pattern {\n      position: absolute; inset: 0; opacity: 0.07;\n      background-image: url(\"data:image\/svg+xml,%3Csvg width='60' height='60' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Ccircle cx='30' cy='30' r='20' fill='none' stroke='%23fff' stroke-width='0.5'\/%3E%3Ccircle cx='30' cy='30' r='10' fill='none' stroke='%23fff' stroke-width='0.5'\/%3E%3Cline x1='10' y1='30' x2='50' y2='30' stroke='%23fff' stroke-width='0.3'\/%3E%3Cline x1='30' y1='10' x2='30' y2='50' stroke='%23fff' stroke-width='0.3'\/%3E%3C\/svg%3E\");\n    }\n    .hero-photo-card {\n      position: relative; z-index: 2;\n      width: 75%; aspect-ratio: 3\/4;\n      background: url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-1.jpg') center\/cover no-repeat;\n      border: 1px solid rgba(255,255,255,0.2);\n      border-radius: 4px;\n      display: flex; align-items: flex-end; overflow: hidden;\n      box-shadow: 0 40px 80px rgba(0,0,0,0.35);\n    }\n    .hero-photo-card::before {\n      content: ''; position: absolute; inset: 0;\n      background: linear-gradient(180deg, rgba(26,58,58,0.05) 0%, rgba(26,58,58,0.78) 100%);\n    }\n    .hero-photo-label { position: relative; z-index: 2; padding: 2rem; color: #fff; }\n    .hero-photo-label p { font-family: var(--serif); font-size: 1.5rem; font-weight: 300; font-style: italic; line-height: 1.3; }\n    .hero-photo-label small { font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; opacity: 0.75; }\n    .hero-accent-card {\n      position: absolute; bottom: 12%; left: -60px; z-index: 10;\n      background: var(--cream); border: 1px solid rgba(184,151,90,0.3);\n      border-radius: 4px; padding: 1.2rem 1.8rem;\n      box-shadow: 0 20px 40px rgba(0,0,0,0.12);\n      display: flex; align-items: center; gap: 1.5rem;\n      opacity: 0; animation: fadeUp 0.8s 1.2s forwards;\n    }\n    .accent-stat { text-align: center; }\n    .accent-sep {\n      width: 1px; align-self: stretch;\n      background: linear-gradient(180deg, transparent, rgba(184,151,90,0.55), transparent);\n    }\n    .hero-accent-card .num { font-family: var(--serif); font-size: 2.2rem; font-weight: 300; color: var(--teal); line-height: 1; }\n    .hero-accent-card .lbl { font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--stone); margin-top: 3px; }\n\n    @media (max-width: 1150px) {\n      .hero-accent-card { left: -28px; padding: 1rem 1.4rem; gap: 1.1rem; }\n      .hero-accent-card .num { font-size: 1.9rem; }\n      .hero-content { padding: 6rem 2.5rem 6rem 3rem; }\n    }\n\n    \/* \u2500\u2500\u2500 DIVIDER \u2500\u2500\u2500 *\/\n    .divider {\n      display: flex; align-items: center; justify-content: center;\n      gap: 1rem; padding: 3rem 0; background: var(--ivory);\n    }\n    .divider::before, .divider::after {\n      content: ''; flex: 1; max-width: 80px; height: 1px;\n      background: linear-gradient(90deg, transparent, var(--gold));\n    }\n    .divider::after { transform: scaleX(-1); }\n    .divider svg { width: 20px; height: 20px; fill: var(--gold); }\n\n    \/* \u2500\u2500\u2500 SECTION HEADERS \u2500\u2500\u2500 *\/\n    .section-header { text-align: center; margin-bottom: 3.5rem; }\n    .section-eyebrow { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.8rem; }\n    .section-title { font-family: var(--serif); font-size: clamp(1.9rem, 3vw, 2.8rem); font-weight: 300; color: var(--teal-dk); line-height: 1.2; }\n    .section-title em { font-style: italic; color: var(--gold); }\n    .section-sub { font-size: 0.92rem; color: var(--stone); max-width: 520px; margin: 1rem auto 0; line-height: 1.8; }\n\n    \/* \u2500\u2500\u2500 ATOUTS \u2500\u2500\u2500 *\/\n    .atouts { background: var(--teal-dk); padding: 6rem 4rem; position: relative; overflow: hidden; }\n    .atouts::before {\n      content: ''; position: absolute; inset: 0;\n      background-image: url(\"data:image\/svg+xml,%3Csvg width='80' height='80' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Ccircle cx='40' cy='40' r='35' fill='none' stroke='rgba(255,255,255,0.03)' stroke-width='1'\/%3E%3C\/svg%3E\");\n    }\n    .atouts .section-title { color: var(--cream); }\n    .atouts .section-eyebrow { color: var(--gold-lt); }\n    .atouts .section-sub { color: rgba(240,238,232,0.6); }\n    .atouts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; max-width: 1000px; margin: 0 auto; position: relative; }\n    .atout-item {\n      background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.04);\n      padding: 2.5rem 2rem; text-align: center;\n      transition: background 0.3s, transform 0.3s;\n    }\n    .atout-item:hover { background: rgba(255,255,255,0.08); transform: translateY(-4px); }\n    .atout-title { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; color: var(--cream); margin-bottom: 0.6rem; }\n    .atout-desc { font-size: 0.8rem; color: rgba(240,238,232,0.55); line-height: 1.7; }\n\n    \/* \u2500\u2500\u2500 BANDEAU THE ORIGINALS \u2500\u2500\u2500 *\/\n\n    \/* \u2500\u2500\u2500 LOGEMENTS \u2500\u2500\u2500 *\/\n    .logements { padding: 7rem 4rem; max-width: 1200px; margin: 0 auto; }\n    .logements-commun {\n      max-width: 640px; margin: -1.5rem auto 3rem;\n      text-align: center; font-size: 0.86rem; line-height: 1.85;\n      color: var(--stone); padding: 1.1rem 1.5rem;\n      border-top: 1px solid rgba(184,151,90,0.2);\n      border-bottom: 1px solid rgba(184,151,90,0.2);\n    }\n    .logements-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }\n    .logement-card {\n      border: 1px solid rgba(184,151,90,0.15); border-radius: 4px;\n      overflow: hidden; transition: box-shadow 0.3s, transform 0.3s;\n      background: #fff; position: relative;\n    }\n    .logement-card:hover { box-shadow: 0 20px 50px rgba(26,58,58,0.12); transform: translateY(-4px); }\n    .logement-card.featured { grid-column: span 2; }\n    .logement-visual { height: 200px; position: relative; overflow: hidden; }\n    .logement-card.featured .logement-visual { height: 260px; }\n    .logement-tag {\n      position: absolute; top: 12px; right: 12px; z-index: 4;\n      background: var(--gold); color: #fff;\n      font-size: 0.65rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase;\n      padding: 3px 10px; border-radius: 1px;\n    }\n    .logement-body { padding: 1.4rem 1.6rem 1.8rem; }\n    .logement-name { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; color: var(--teal-dk); margin-bottom: 0.4rem; text-align: center; }\n    .logement-meta { font-size: 0.75rem; color: var(--stone); letter-spacing: 0.08em; margin-bottom: 0.4rem; text-align: center; }\n    .logement-meta strong { color: var(--teal-dk); font-weight: 500; }\n    .logement-meta-secondary {\n      font-size: 0.72rem; color: var(--stone);\n      letter-spacing: 0.04em; margin-bottom: 0.9rem;\n      padding-bottom: 0.7rem;\n      border-bottom: 1px dashed rgba(184,151,90,0.25);\n      display: flex; align-items: center; justify-content: center; gap: 0.4rem;\n      flex-wrap: wrap; text-align: center;\n    }\n    .logement-meta-secondary strong { color: var(--teal-dk); font-weight: 500; }\n    .logement-meta-secondary .separator { color: var(--gold); font-weight: 500; }\n    .logement-desc { font-size: 0.83rem; color: var(--stone); line-height: 1.75; margin-bottom: 1.2rem; }\n    .logement-link {\n      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase;\n      color: var(--teal); text-decoration: none;\n      display: inline-flex; align-items: center; gap: 0.4rem;\n      border-bottom: 1px solid rgba(45,92,92,0.25); padding-bottom: 2px;\n      transition: gap 0.3s, border-color 0.3s;\n    }\n    .logement-link:hover { gap: 0.7rem; border-color: var(--teal); }\n    .logements-note {\n      text-align: center; margin-top: 3rem; font-size: 0.85rem;\n      color: var(--stone); font-style: italic;\n      max-width: 620px; margin-left: auto; margin-right: auto; line-height: 1.7;\n    }\n    .logements-note strong { color: var(--teal-dk); font-style: normal; }\n    .logements-note .mark { color: var(--gold); }\n\n    \/* \u2500\u2500\u2500 BADGES VENTIL\u00c9 \/ CLIMATIS\u00c9 \u2500\u2500\u2500 *\/\n    .fan-badge, .snow-badge {\n      display: inline-flex; align-items: center; gap: 4px;\n      padding: 2px 8px; border-radius: 100px;\n      font-size: 0.66rem; font-weight: 500; letter-spacing: 0.04em;\n      margin-left: 4px; vertical-align: middle;\n      transition: background 0.3s;\n    }\n    .fan-badge { background: rgba(45,92,92,0.08); color: var(--teal); }\n    .fan-badge:hover { background: rgba(45,92,92,0.15); }\n    .fan-badge svg, .snow-badge svg { width: 11px; height: 11px; transform-origin: center; }\n    .fan-badge svg { animation: fanSpin 12s linear infinite; }\n    @keyframes fanSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n    @media (prefers-reduced-motion: reduce) {\n      .fan-badge svg, .snow-badge svg { animation: none; }\n    }\n\n    \/* \u2500\u2500\u2500 CARROUSEL \u2500\u2500\u2500 *\/\n    .carousel { position: absolute; inset: 0; }\n    .carousel-track { display: flex; height: 100%; transition: transform 0.4s ease; }\n    .carousel-slide { flex: 0 0 100%; height: 100%; position: relative; cursor: zoom-in; }\n    .carousel-slide .slide-img {\n      position: absolute; inset: 0;\n      width: 100%; height: 100%;\n      object-fit: cover; display: block;\n      background: linear-gradient(135deg, var(--teal-dk) 0%, var(--teal) 100%);\n    }\n    .carousel-arrow {\n      position: absolute; top: 50%; transform: translateY(-50%);\n      width: 34px; height: 34px;\n      background: rgba(255,255,255,0.92);\n      border: none; border-radius: 50%;\n      display: flex; align-items: center; justify-content: center;\n      font-size: 1.1rem; color: var(--teal-dk); cursor: pointer;\n      box-shadow: 0 3px 10px rgba(0,0,0,0.18);\n      transition: opacity 0.2s, background 0.2s, transform 0.2s;\n      z-index: 3; opacity: 0; pointer-events: none;\n    }\n    .logement-card:hover .carousel-arrow,\n    .carousel-arrow:focus-visible { opacity: 1; pointer-events: auto; }\n    .carousel-arrow:hover { background: #fff; transform: translateY(-50%) scale(1.1); }\n    .carousel-arrow.prev { left: 10px; }\n    .carousel-arrow.next { right: 10px; }\n    .carousel-counter {\n      position: absolute; top: 12px; left: 12px; z-index: 3;\n      background: rgba(0,0,0,0.55); color: #fff;\n      font-size: 0.68rem; font-weight: 500;\n      padding: 3px 9px; border-radius: 100px;\n      backdrop-filter: blur(4px); letter-spacing: 0.05em;\n    }\n    .carousel-dots {\n      position: absolute; bottom: 10px; left: 50%;\n      transform: translateX(-50%); display: flex; gap: 5px; z-index: 3;\n    }\n    .carousel-dot {\n      width: 6px; height: 6px; border-radius: 50%;\n      background: rgba(255,255,255,0.45);\n      border: none; cursor: pointer; padding: 0; transition: all 0.25s;\n    }\n    .carousel-dot.active { background: #fff; width: 18px; border-radius: 3px; }\n\n    \/* \u2500\u2500\u2500 LIGHTBOX \u2500\u2500\u2500 *\/\n    .lightbox {\n      position: fixed; inset: 0;\n      background: rgba(8,12,24,0.97);\n      z-index: 9999; display: none;\n      align-items: center; justify-content: center;\n      animation: lightboxFade 0.3s ease;\n      backdrop-filter: blur(8px);\n    }\n    .lightbox.active { display: flex; }\n    @keyframes lightboxFade { from { opacity: 0; } to { opacity: 1; } }\n    .lightbox-stage { position: relative; width: 92%; max-width: 1300px; height: 88vh; display: flex; align-items: center; justify-content: center; }\n    .lightbox-img {\n      max-width: 100%; max-height: 100%; width: auto; height: auto;\n      object-fit: contain; border-radius: 4px;\n      box-shadow: 0 30px 80px rgba(0,0,0,0.6);\n      animation: lightboxZoom 0.35s ease;\n    }\n    @keyframes lightboxZoom { from { transform: scale(0.94); opacity: 0.6; } to { transform: scale(1); opacity: 1; } }\n    .lightbox-close {\n      position: absolute; top: -54px; right: 0;\n      width: 44px; height: 44px;\n      background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);\n      border-radius: 50%; color: #fff; font-size: 1.4rem; cursor: pointer;\n      display: flex; align-items: center; justify-content: center;\n      transition: background 0.2s, transform 0.2s;\n    }\n    .lightbox-close:hover { background: rgba(255,255,255,0.22); transform: rotate(90deg); }\n    .lightbox-arrow {\n      position: absolute; top: 50%; transform: translateY(-50%);\n      width: 56px; height: 56px;\n      background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);\n      border-radius: 50%; color: #fff; font-size: 1.6rem; cursor: pointer;\n      display: flex; align-items: center; justify-content: center;\n      transition: background 0.2s; backdrop-filter: blur(10px);\n    }\n    .lightbox-arrow:hover { background: rgba(255,255,255,0.25); }\n    .lightbox-arrow.prev { left: -80px; }\n    .lightbox-arrow.next { right: -80px; }\n    .lightbox-counter { position: absolute; top: -50px; left: 0; color: rgba(255,255,255,0.65); font-family: var(--serif); font-size: 1rem; font-style: italic; }\n    .lightbox-caption { position: absolute; bottom: -44px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,0.7); font-size: 0.85rem; text-align: center; width: 100%; }\n    .lightbox-thumbs { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; max-width: 90%; overflow-x: auto; padding: 6px; }\n    .lightbox-thumb {\n      width: 50px; height: 38px; border-radius: 3px;\n      background-size: cover; background-position: center;\n      cursor: pointer; flex-shrink: 0; opacity: 0.45;\n      border: 2px solid transparent; transition: opacity 0.2s, border-color 0.2s;\n    }\n    .lightbox-thumb.active { opacity: 1; border-color: var(--gold); }\n\n    \/* \u2500\u2500\u2500 HISTOIRE \u2500\u2500\u2500 *\/\n    .histoire-section { padding: 7rem 4rem; max-width: 1180px; margin: 0 auto; position: relative; overflow: visible; }\n    .histoire-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 3.5rem; align-items: center; }\n    .histoire-visual { position: relative; }\n    .histoire-photo {\n      aspect-ratio: 3\/4;\n      background: url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-chambre-1.jpg') center\/cover no-repeat;\n      border-radius: 4px; overflow: hidden; position: relative;\n      box-shadow: 0 30px 60px rgba(45,92,92,0.25);\n    }\n    .histoire-photo::before {\n      content: ''; position: absolute; inset: 0;\n      background: linear-gradient(to top, rgba(26,58,58,0.55) 0%, rgba(26,58,58,0.15) 40%, rgba(26,58,58,0) 100%);\n    }\n    .histoire-photo-label {\n      position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem;\n      background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 100%);\n      color: #fff;\n    }\n    .histoire-photo-label p { font-family: var(--serif); font-size: 1.4rem; font-style: italic; font-weight: 300; line-height: 1.3; margin-bottom: 0.4rem; }\n    .histoire-photo-label small { font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-lt); }\n    .histoire-badge {\n      position: absolute; top: 10%; right: -40px;\n      background: var(--cream); border: 1px solid rgba(184,151,90,0.3);\n      border-radius: 4px; padding: 1.4rem 1.8rem;\n      box-shadow: 0 20px 40px rgba(26,58,58,0.15);\n      text-align: center; min-width: 140px;\n      text-decoration: none; color: inherit; cursor: pointer;\n      transition: transform 0.3s, box-shadow 0.3s; display: block;\n    }\n    .histoire-badge:hover { transform: translateY(-3px); box-shadow: 0 25px 50px rgba(26,58,58,0.22); }\n    .histoire-badge .num { font-family: var(--serif); font-size: 2.4rem; font-weight: 300; color: var(--teal); line-height: 1; margin-bottom: 0.3rem; }\n    .histoire-badge .lbl { font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--stone); }\n    .histoire-content { position: relative; }\n    .histoire-content .section-eyebrow { text-align: left; display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1rem; }\n    .histoire-content .section-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--gold); }\n    .histoire-content h2 {\n      font-family: var(--serif); font-size: clamp(2rem, 3vw, 2.8rem);\n      font-weight: 400; line-height: 1.15; color: var(--teal-dk); margin-bottom: 1.5rem;\n    }\n    .histoire-content h2 em { font-style: italic; color: #7a6428; font-weight: 500; }\n    .histoire-content p { font-size: 0.95rem; line-height: 1.95; color: var(--text); margin-bottom: 1.2rem; }\n    .histoire-content .signature {\n      font-family: var(--serif); font-style: italic; font-size: 1.05rem;\n      color: var(--gold); margin-top: 1.5rem; padding-top: 1.5rem;\n      border-top: 1px solid rgba(184,151,90,0.2);\n    }\n    .histoire-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }\n    .value-item { padding: 1.1rem 0.8rem; text-align: center; background: var(--cream); border-radius: 4px; }\n    .value-label { font-size: 0.72rem; font-weight: 500; letter-spacing: 0.08em; color: var(--teal-dk); }\n\n    \/* \u2500\u2500\u2500 AVIS TRUSTINDEX \u2500\u2500\u2500 *\/\n    .avis-trustindex-section { background: linear-gradient(180deg, var(--ivory) 0%, var(--cream) 100%); padding: 6rem 4rem; }\n    .trustindex-intro { text-align: center; margin-bottom: 3rem; }\n    .trustindex-wrapper {\n      max-width: 1100px; margin: 0 auto;\n      background: var(--cream); border: 1px solid rgba(184,151,90,0.15);\n      border-radius: 4px; padding: 2rem; min-height: 300px; position: relative;\n    }\n    .trustindex-wrapper .ti-widget,\n    .trustindex-wrapper .ti-widget-container,\n    .trustindex-wrapper [class*=\"trustindex\"] { background-color: transparent !important; }\n    .trustindex-wrapper .ti-review-item { background-color: rgba(255,255,255,0.5) !important; border-radius: 6px; }\n\n    \/* \u2500\u2500\u2500 FAQ \u2500\u2500\u2500 *\/\n    .faq-section { padding: 7rem 4rem; }\n    .faq-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; max-width: 1000px; margin: 0 auto; }\n    .faq-item {\n      background: #fff; border: 1px solid rgba(184,151,90,0.12);\n      padding: 2rem 1.8rem; transition: box-shadow 0.3s, transform 0.3s;\n    }\n    .faq-item:hover { box-shadow: 0 8px 30px rgba(26,58,58,0.08); transform: translateY(-3px); }\n    .faq-q { font-family: var(--serif); font-size: 1rem; font-weight: 400; color: var(--teal-dk); margin-bottom: 0.5rem; }\n    .faq-a { font-size: 0.8rem; color: var(--stone); line-height: 1.75; }\n\n    \/* \u2500\u2500\u2500 PROMO GROUPE \u2500\u2500\u2500 *\/\n    .callou-promo {\n      background: var(--cream);\n      border-top: 1px solid rgba(184,151,90,0.2);\n      border-bottom: 1px solid rgba(184,151,90,0.2);\n      padding: 5rem 4rem;\n    }\n    .callou-inner { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }\n    .callou-tag {\n      display: inline-block; background: var(--gold); color: #fff;\n      font-size: 0.65rem; font-weight: 500; letter-spacing: 0.2em;\n      text-transform: uppercase; padding: 4px 14px; margin-bottom: 1.2rem;\n    }\n    .callou-title { font-family: var(--serif); font-size: 2.2rem; font-weight: 300; color: var(--teal-dk); line-height: 1.2; margin-bottom: 1rem; }\n    .callou-title em { font-style: italic; color: var(--gold); }\n    .callou-desc { font-size: 0.9rem; color: var(--stone); line-height: 1.8; margin-bottom: 2rem; }\n    .callou-stars { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 2rem; text-decoration: none; color: inherit; }\n    .keys-display { display: flex; gap: 6px; }\n    .keys-display .ico { width: 22px; height: 22px; color: var(--gold); stroke-width: 1.5; }\n    .keys-label { font-size: 0.8rem; color: var(--stone); }\n    .callou-visual {\n      background: linear-gradient(135deg, var(--teal-dk) 0%, var(--teal) 60%, var(--gold) 100%);\n      border-radius: 4px; aspect-ratio: 4\/3;\n      display: flex; align-items: center; justify-content: center;\n      position: relative; overflow: hidden;\n    }\n    .callou-visual::before {\n      content: ''; position: absolute; inset: 0;\n      background-image: url(\"data:image\/svg+xml,%3Csvg width='40' height='40' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M0 20 L20 0 L40 20 L20 40 Z' fill='none' stroke='rgba(255,255,255,0.06)' stroke-width='1'\/%3E%3C\/svg%3E\");\n    }\n    .callou-visual p { font-family: var(--serif); font-size: 1.4rem; font-style: italic; color: rgba(255,255,255,0.85); text-align: center; position: relative; z-index: 1; padding: 1rem; }\n\n    \/* \u2500\u2500\u2500 VICHY \u2500\u2500\u2500 *\/\n    .vichy-section { padding: 7rem 4rem; max-width: 1200px; margin: 0 auto; }\n    .vichy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }\n    .vichy-item {\n      position: relative; border-radius: 4px; overflow: hidden;\n      aspect-ratio: 3\/4; display: block; text-decoration: none; color: inherit;\n      transition: transform 0.3s, box-shadow 0.3s;\n    }\n    .vichy-item:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(26,58,58,0.15); }\n    .vichy-item:first-child { grid-row: span 2; aspect-ratio: auto; }\n    .vichy-bg { position: absolute; inset: 0; transition: transform 0.5s; background-size: cover; background-position: center; }\n    .vichy-item:hover .vichy-bg { transform: scale(1.06); }\n    .vb-1 { background-image: linear-gradient(160deg, rgba(15,24,40,0.55), rgba(30,48,80,0.55)), url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/08\/vichy-thermes.jpg'); }\n    .vb-2 { background-image: linear-gradient(160deg, rgba(21,18,32,0.55), rgba(42,37,64,0.55)), url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/08\/vichy-rotonde-bocuse.jpg'); }\n    .vb-3 { background-image: linear-gradient(160deg, rgba(13,18,32,0.55), rgba(30,48,80,0.55)), url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/08\/vichy-base-nautique.jpg'); }\n    .vb-4 { background-image: linear-gradient(160deg, rgba(13,21,37,0.55), rgba(30,48,80,0.55)), url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/08\/vichy-hippodrome.jpg'); }\n    .vb-5 { background-image: linear-gradient(160deg, rgba(21,13,32,0.55), rgba(42,26,64,0.55)), url('https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/08\/vichy-grand-marche.jpg'); }\n    .vichy-overlay {\n      position: absolute; inset: 0;\n      background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 60%);\n      display: flex; align-items: flex-end; padding: 1.5rem;\n    }\n    .vichy-label { color: #fff; }\n    .vichy-label h3 { font-family: var(--serif); font-size: 1.1rem; font-weight: 300; margin-bottom: 0.2rem; }\n    .vichy-label p { font-size: 0.72rem; opacity: 0.7; letter-spacing: 0.06em; }\n\n    \/* \u2500\u2500\u2500 CONTACT \u2500\u2500\u2500 *\/\n    .contact-band { background: var(--teal-dk); padding: 5rem 4rem; text-align: center; position: relative; overflow: hidden; }\n    .contact-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(184,151,90,0.1) 0%, transparent 70%); }\n    .contact-band .section-title { color: var(--cream); margin-bottom: 0.5rem; }\n    .contact-band .section-sub { color: rgba(240,238,232,0.6); margin-bottom: 2.5rem; }\n    .contact-info { display: flex; gap: 3rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2.5rem; position: relative; z-index: 1; }\n    .contact-item {\n      display: inline-flex; align-items: center; gap: 0.6rem;\n      color: rgba(240,238,232,0.85); font-size: 0.88rem;\n      text-decoration: none; transition: color 0.3s;\n    }\n    .contact-item:hover { color: var(--gold-lt); }\n    .contact-band .btn-primary { background: var(--gold); position: relative; z-index: 1; }\n    .contact-band .btn-primary:hover { background: var(--gold-lt); }\n\n    \/* \u2500\u2500\u2500 FOOTER \u2500\u2500\u2500 *\/\n    footer {\n      background: var(--teal-dk);\n      border-top: 1px solid rgba(255,255,255,0.06);\n      padding: 3rem 4rem 2rem;\n      display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem;\n    }\n    .footer-brand .nav-logo { display: block; margin-bottom: 0.8rem; color: var(--cream); }\n    .footer-brand p { font-size: 0.8rem; color: rgba(240,238,232,0.45); line-height: 1.7; max-width: 300px; }\n    .footer-col h4 { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 1rem; }\n    .footer-col ul { list-style: none; }\n    .footer-col li { margin-bottom: 0.5rem; }\n    .footer-col a { font-size: 0.82rem; color: rgba(240,238,232,0.5); text-decoration: none; transition: color 0.3s; }\n    .footer-col a:hover { color: var(--cream); }\n    .footer-bottom {\n      grid-column: span 3; padding-top: 1.5rem;\n      border-top: 1px solid rgba(255,255,255,0.06);\n      display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;\n      font-size: 0.72rem; color: rgba(240,238,232,0.3); letter-spacing: 0.05em;\n    }\n\n    \/* \u2500\u2500\u2500 ANIMATIONS \u2500\u2500\u2500 *\/\n    @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }\n    @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n    .reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }\n    .reveal.visible { opacity: 1; transform: none; }\n    @media (prefers-reduced-motion: reduce) {\n      .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }\n      .hero-eyebrow, .hero-title, .hero-sub, .hero-actions, .hero-badge, .hero-visual, .hero-accent-card { animation: none !important; opacity: 1 !important; }\n    }\n    .no-js .reveal { opacity: 1 !important; transform: none !important; }\n\n    \/* \u2500\u2500\u2500 ACCESSIBILIT\u00c9 FOCUS \u2500\u2500\u2500 *\/\n    a:focus-visible, button:focus-visible {\n      outline: 2px solid var(--gold);\n      outline-offset: 3px;\n    }\n\n    \/* \u2500\u2500\u2500 RESPONSIVE \u2500\u2500\u2500 *\/\n    @media (max-width: 900px) {\n      nav { padding: 1rem 1.2rem; }\n      nav.scrolled { padding-top: 0.7rem; padding-bottom: 0.7rem; }\n      .nav-logo { font-size: 1.1rem; }\n      .nav-toggle { display: flex; align-items: center; }\n      .nav-links {\n        position: fixed; top: 0; right: 0;\n        height: 100dvh; width: min(80vw, 320px);\n        flex-direction: column; align-items: flex-start; justify-content: center;\n        gap: 1.7rem;\n        background: var(--ivory);\n        border-left: 1px solid rgba(184,151,90,0.25);\n        padding: 2rem 2.2rem;\n        transform: translateX(100%);\n        transition: transform .35s cubic-bezier(.4,0,.2,1);\n        box-shadow: -20px 0 50px rgba(26,58,58,.12);\n        z-index: 120;\n      }\n      .nav-links.open { transform: none; }\n      .nav-links li { display: block; width: 100%; }\n      .nav-links a { font-size: 0.88rem; letter-spacing: 0.14em; }\n      .nav-cta { display: inline-block; margin-top: 0.4rem; }\n      .nav-backdrop {\n        display: block; position: fixed; inset: 0;\n        background: rgba(26,58,58,.45); backdrop-filter: blur(2px);\n        opacity: 0; pointer-events: none;\n        transition: opacity .3s ease; z-index: 110;\n      }\n      .nav-backdrop.open { opacity: 1; pointer-events: auto; }\n\n      \/* Hero mobile : hauteur naturelle (plus de 100vh \u00e0 moiti\u00e9 vide),\n         contenu cal\u00e9 en haut, et la photo revient sous le texte. *\/\n      .hero {\n        grid-template-columns: 1fr;\n        grid-template-rows: auto auto;\n        min-height: 0;\n        padding-top: 72px;\n      }\n      .hero-content { padding: 2.2rem 1.5rem 2.5rem; }\n      .hero-sub { margin-bottom: 2rem; }\n      .hero-badge { margin-top: 2.2rem; }\n\n      .hero-visual {\n        display: block;\n        position: relative;\n        height: 62vh; min-height: 320px;\n      }\n      .hero-visual-inner { padding: 0; }\n      .hero-photo-card {\n        width: 100%; height: 100%;\n        aspect-ratio: auto;\n        border: none; border-radius: 0;\n        box-shadow: none;\n      }\n      .hero-photo-label { padding: 1.6rem 1.5rem; }\n      .hero-photo-label p { font-size: 1.25rem; }\n      .hero-accent-card {\n        left: auto; right: 1.2rem; bottom: auto; top: 1.2rem;\n        padding: 0.75rem 1.1rem; gap: 0.9rem;\n      }\n      .hero-accent-card .num { font-size: 1.6rem; }\n      .hero-accent-card .lbl { font-size: 0.6rem; }\n      .atouts, .faq-section { padding: 4rem 1.5rem; }\n      .atouts-grid, .faq-grid { grid-template-columns: 1fr; gap: 1px; }\n      .logements { padding: 4rem 1.5rem; }\n      .logements-grid { grid-template-columns: 1fr; }\n      .logement-card.featured { grid-column: span 1; }\n      .carousel-arrow { opacity: 1; pointer-events: auto; }\n      .histoire-section { padding: 4rem 1.5rem; }\n      .histoire-grid { grid-template-columns: 1fr; gap: 2rem; }\n      .histoire-badge { right: 12px; top: 12px; padding: 1rem 1.2rem; min-width: 110px; }\n      .histoire-badge .num { font-size: 1.8rem; }\n      .histoire-values { grid-template-columns: 1fr; gap: 6px; }\n      .avis-trustindex-section { padding: 4rem 1.5rem; }\n      .trustindex-wrapper { padding: 1rem; }\n      .callou-promo { padding: 4rem 1.5rem; }\n      .callou-inner { grid-template-columns: 1fr; gap: 2rem; }\n      .vichy-section { padding: 4rem 1.5rem; }\n      .vichy-grid { grid-template-columns: 1fr 1fr; }\n      .vichy-item:first-child { grid-row: span 1; aspect-ratio: 3\/4; }\n      .contact-band { padding: 4rem 1.5rem; }\n      .contact-info { gap: 1.2rem; flex-direction: column; align-items: center; }\n      footer { grid-template-columns: 1fr; padding: 3rem 1.5rem 2rem; }\n      .footer-bottom { grid-column: span 1; flex-direction: column; gap: 0.5rem; }\n      .lightbox-arrow { left: 8px; width: 44px; height: 44px; font-size: 1.3rem; background: rgba(255,255,255,0.18); }\n      .lightbox-arrow.next { left: auto; right: 8px; }\n      .lightbox-close { top: -50px; right: 50%; transform: translateX(50%); }\n      .lightbox-close:hover { transform: translateX(50%) rotate(90deg); }\n      .lightbox-stage { height: 80vh; }\n      .lightbox-thumbs { display: none; }\n      .lightbox-caption { bottom: -38px; font-size: 0.78rem; }\n      h1, h2, h3, p { overflow-wrap: break-word; }\n    }\n    @media (max-width: 380px) {\n      .nav-logo { font-size: 0.95rem; }\n    }\n\n    \/* \u2550\u2550\u2550 SORTIE DU CONTENEUR DU TH\u00c8ME \u2550\u2550\u2550\n       WordPress enferme le bloc HTML dans un conteneur centr\u00e9 \u00e0 largeur\n       limit\u00e9e. Ces r\u00e8gles font ressortir les grandes sections sur toute\n       la largeur de l \u00e9cran, sans toucher au th\u00e8me. *\/\n    nav, main, footer, .originals-strip {\n      width: 100vw;\n      max-width: 100vw;\n      margin-left: calc(50% - 50vw);\n      margin-right: calc(50% - 50vw);\n    }\n    nav { margin: 0; }   \/* la nav est d\u00e9j\u00e0 en position fixed *\/\n\n    \/* \u2550\u2550\u2550 NAVIGATION : plus de retours \u00e0 la ligne \u2550\u2550\u2550 *\/\n    .nav-logo, .nav-links a, .lang-switch a { white-space: nowrap; }\n    .nav-links { flex-wrap: nowrap; }\n\n    \/* Les libell\u00e9s anglais et espagnols sont plus longs que les fran\u00e7ais :\n       on bascule sur le menu burger plus t\u00f4t. *\/\n    @media (max-width: 1150px) {\n      .nav-toggle { display: flex; align-items: center; }\n      .nav-links {\n        position: fixed; top: 0; right: 0;\n        height: 100dvh; width: min(80vw, 320px);\n        flex-direction: column; align-items: flex-start; justify-content: center;\n        gap: 1.7rem;\n        background: var(--ivory);\n        border-left: 1px solid rgba(184,151,90,0.25);\n        padding: 2rem 2.2rem;\n        transform: translateX(100%);\n        transition: transform .35s cubic-bezier(.4,0,.2,1);\n        box-shadow: -20px 0 50px rgba(26,58,58,.12);\n        z-index: 120; margin: 0;\n      }\n      .nav-links.open { transform: none; }\n      .nav-links li { display: block; width: 100%; }\n      .nav-links a { font-size: 0.88rem; letter-spacing: 0.14em; }\n      .nav-cta { display: inline-block; margin-top: 0.4rem; }\n      .lang-switch { margin: 0 0 0.2rem; gap: 0.7rem; }\n      .nav-backdrop {\n        display: block; position: fixed; inset: 0;\n        background: rgba(26,58,58,.45); backdrop-filter: blur(2px);\n        opacity: 0; pointer-events: none;\n        transition: opacity .3s ease; z-index: 110;\n      }\n      .nav-backdrop.open { opacity: 1; pointer-events: auto; }\n    }\n\n    \/* \u2550\u2550\u2550 FICHES LOGEMENTS : DEUX PAR LIGNE, \u00c0 PARTS \u00c9GALES \u2550\u2550\u2550\n       La fiche \u00ab vedette \u00bb ne s \u00e9tale plus sur deux colonnes : les 8 fiches\n       ont la m\u00eame largeur, la m\u00eame hauteur d image, et leurs liens\n       \u00ab R\u00e9server \u00bb s alignent en bas quelle que soit la longueur du texte. *\/\n    .logements-grid {\n      grid-template-columns: repeat(2, 1fr);\n      gap: 2rem;\n      align-items: stretch;\n    }\n    .logement-card.featured { grid-column: span 1; }\n    .logement-card,\n    .logement-card.featured { display: flex; flex-direction: column; }\n    .logement-visual,\n    .logement-card.featured .logement-visual { height: 320px; flex: 0 0 320px; }\n    .logement-body { display: flex; flex-direction: column; flex: 1; padding: 1.6rem 2rem 2rem; }\n    .logement-desc { flex: 1; font-size: 0.87rem; }\n    .logement-name { font-size: 1.3rem; }\n    .logement-link { align-self: flex-start; margin-top: auto; }\n    .carousel-arrow { width: 40px; height: 40px; font-size: 1.3rem; }\n\n    @media (max-width: 900px) {\n      .logements-grid { grid-template-columns: 1fr; gap: 1.5rem; }\n      .logement-visual,\n      .logement-card.featured .logement-visual { height: 230px; flex: 0 0 230px; }\n      .logement-body { padding: 1.4rem 1.6rem 1.8rem; }\n      .logement-name { font-size: 1.15rem; }\n    }\n  \n    \/* \u2550\u2550\u2550 EMPLACEMENT PHOTO EN ATTENTE \u2550\u2550\u2550 *\/\n    .photo-pending {\n      position: absolute; inset: 0;\n      background: linear-gradient(135deg, var(--teal-dk) 0%, var(--teal) 100%);\n      display: flex; align-items: center; justify-content: center;\n      text-align: center;\n    }\n    .photo-pending::before {\n      content: ''; position: absolute; inset: 0;\n      background-image: url(\"data:image\/svg+xml,%3Csvg width='60' height='60' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Ccircle cx='30' cy='30' r='20' fill='none' stroke='rgba(255,255,255,0.06)' stroke-width='0.6'\/%3E%3C\/svg%3E\");\n    }\n    .photo-pending span {\n      position: relative; z-index: 1;\n      font-family: var(--serif); font-style: italic;\n      font-size: 1.05rem; line-height: 1.4;\n      color: rgba(255,255,255,0.55);\n      letter-spacing: 0.03em;\n    }\n    .logement-card.renovation .logement-visual { filter: grayscale(0.5) brightness(0.9); }\n    .logement-tag.renovation { background: #8a6f4a; }\n    .logement-link.disabled {\n      color: var(--stone); border-bottom-color: rgba(138,128,112,0.3);\n      cursor: default; pointer-events: none;\n    }\n\n    \/* \u2550\u2550\u2550 LOGEMENTS : DEUX PAR LIGNE \u2550\u2550\u2550 *\/\n    .logements { max-width: 1300px; }\n    .logements-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; }\n    .logement-visual { height: 340px; flex: 0 0 340px; }\n    .logement-body { padding: 1.7rem 2.1rem 2.1rem; }\n    .logement-name { font-size: 1.32rem; }\n    .logement-desc { font-size: 0.88rem; }\n\n    @media (max-width: 900px) {\n      .logements-grid { grid-template-columns: 1fr; gap: 1.5rem; }\n      .logement-visual { height: 230px; flex: 0 0 230px; }\n      .logement-body { padding: 1.4rem 1.6rem 1.8rem; }\n      .logement-name { font-size: 1.15rem; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <!-- \u2500\u2500\u2500 NAVIGATION \u2500\u2500\u2500 -->\n  <nav id=\"mainnav\" role=\"navigation\" aria-label=\"Navigation principale\">\n    <a href=\"\/\" class=\"nav-logo\" aria-label=\"Les Sources Vichy \u2013 Accueil\">Les Sources <span>Vichy<\/span><\/a>\n    <button id=\"navToggle\" class=\"nav-toggle\" aria-label=\"Ouvrir le menu\" aria-expanded=\"false\" aria-controls=\"navLinks\">\n      <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"bar-top\" d=\"M3 6h18\"\/><path class=\"bar-mid\" d=\"M3 12h18\"\/><path class=\"bar-bot\" d=\"M3 18h18\"\/><\/svg>\n    <\/button>\n    <ul class=\"nav-links\" id=\"navLinks\" role=\"list\">\n      <li><a href=\"#logements\">Logements<\/a><\/li>\n      <li><a href=\"#histoire\">Histoire<\/a><\/li>\n      <li><a href=\"#avis\">Avis<\/a><\/li>\n      <li><a href=\"#vichy\">Vichy<\/a><\/li>\n      <li><a href=\"#faq\">FAQ<\/a><\/li>\n      <li><a href=\"#contact\">Contact<\/a><\/li>\n      <li class=\"lang-switch\"><a href=\"\/\" hreflang=\"fr\" lang=\"fr\" aria-current=\"true\">FR<\/a><span class=\"sep\" aria-hidden=\"true\">\u00b7<\/span><a href=\"\/en\/\" hreflang=\"en\" lang=\"en\">EN<\/a><span class=\"sep\" aria-hidden=\"true\">\u00b7<\/span><a href=\"\/es\/\" hreflang=\"es\" lang=\"es\">ES<\/a><\/li>\n      <li><a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"nav-cta\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server \u2013 ouverture dans un nouvel onglet\">R\u00e9server<\/a><\/li>\n    <\/ul>\n    <div class=\"nav-backdrop\" id=\"navBackdrop\"><\/div>\n  <\/nav>\n\n  <!-- \u2550\u2550\u2550 PLEINE LARGEUR \u2550\u2550\u2550 -->\n  <script>\n  (function () {\n    var start = document.getElementById('mainnav');\n    if (!start) return;\n    var node = start.parentElement;\n    while (node && node !== document.body && node.nodeType === 1) {\n      var cs = getComputedStyle(node);\n      if (cs.maxWidth !== 'none')      node.style.maxWidth = 'none';\n      if (cs.width !== 'auto')         node.style.width = 'auto';\n      if (parseFloat(cs.paddingLeft))  node.style.paddingLeft = '0';\n      if (parseFloat(cs.paddingRight)) node.style.paddingRight = '0';\n      if (cs.overflowX === 'hidden')   node.style.overflowX = 'visible';\n      if (cs.transform !== 'none')     node.style.transform = 'none';\n      if (cs.contain !== 'none')       node.style.contain = 'none';\n      node.style.marginLeft = '0';\n      node.style.marginRight = '0';\n      node = node.parentElement;\n    }\n  })();\n  <\/script>\n\n  <main id=\"main-content\">\n\n  <!-- \u2500\u2500\u2500 HERO \u2500\u2500\u2500 -->\n  <section class=\"hero\" aria-label=\"Pr\u00e9sentation Les Sources Vichy\">\n    <div class=\"hero-content\">\n      <p class=\"hero-eyebrow\">Appart&rsquo;h\u00f4tel \u2014 Vichy, Auvergne<\/p>\n      <h1 class=\"hero-title\">\n        Vivez Vichy<br>\n        au rythme<br>\n        <em>des Sources<\/em>\n      <\/h1>\n      <p class=\"hero-sub\">\n        Notre appart&rsquo;h\u00f4tel Vichy vous accueille au c\u0153ur de la cit\u00e9 thermale class\u00e9e UNESCO. Studios, appartements et duplex alliant confort moderne et \u00e9l\u00e9gance Belle \u00c9poque \u2014 \u00e0 deux pas des Thermes, pour une nuit comme pour plusieurs semaines.\n      <\/p>\n      <div class=\"hero-actions\">\n        <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"btn-primary\" target=\"_blank\" rel=\"noopener\">V\u00e9rifier les disponibilit\u00e9s<\/a>\n        <a href=\"#logements\" class=\"btn-ghost\">Voir nos logements \u2192<\/a>\n      <\/div>\n      <a href=\"\/charte-cles-prestige\/\" class=\"hero-badge\" aria-label=\"D\u00e9couvrir la Charte Qualit\u00e9 Cl\u00e9s Prestige\">\n        <div class=\"badge-keys\" aria-hidden=\"true\">\n          <svg class=\"ico badge-key\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n          <svg class=\"ico badge-key\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n        <\/div>\n        <div class=\"badge-text\">\n          <small class=\"badge-collection\">Collection Priv\u00e9e<\/small>\n          <strong>2 Cl\u00e9s Prestige<\/strong>\n        <\/div>\n      <\/a>\n    <\/div>\n    <div class=\"hero-visual\">\n      <div class=\"hero-visual-inner\">\n        <div class=\"hero-pattern\"><\/div>\n        <div class=\"hero-photo-card\" role=\"img\" aria-label=\"Appartement N\u00b011 avec balcon, Les Sources Vichy\">\n          <div class=\"hero-photo-label\">\n            <small>17 Rue des Sources \u00b7 03200 Vichy<\/small>\n            <p>L&rsquo;art de s\u00e9journer<br>dans la ville thermale<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"hero-accent-card\">\n          <div class=\"accent-stat\">\n            <div class=\"num\">10<\/div>\n            <div class=\"lbl\">logements<\/div>\n          <\/div>\n          <span class=\"accent-sep\" aria-hidden=\"true\"><\/span>\n          <div class=\"accent-stat\">\n            <div class=\"num\">8<\/div>\n            <div class=\"lbl\">disponibles<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 DIVIDER \u2500\u2500\u2500 -->\n  <div class=\"divider\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\"><path d=\"M12 2l2.4 7.4H22l-6.2 4.5 2.4 7.4L12 17l-6.2 4.3 2.4-7.4L2 9.4h7.6z\"\/><\/svg>\n  <\/div>\n\n  <!-- \u2500\u2500\u2500 ATOUTS \u2500\u2500\u2500 -->\n  <section class=\"atouts\" aria-label=\"Nos atouts\">\n    <div class=\"section-header reveal\">\n      <p class=\"section-eyebrow\">Pourquoi nous choisir<\/p>\n      <h2 class=\"section-title\">Appart&rsquo;h\u00f4tel Vichy,<br><em>la libert\u00e9 d&rsquo;un appartement<\/em><\/h2>\n      <p class=\"section-sub\">La flexibilit\u00e9 d&rsquo;un logement ind\u00e9pendant, les prestations d&rsquo;un h\u00f4tel \u2014 sans compromis.<\/p>\n    <\/div>\n    <div class=\"atouts-grid\">\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n        <p class=\"atout-title\">Arriv\u00e9e autonome<\/p>\n        <p class=\"atout-desc\">Check-in \u00e0 partir de 16h, codes d&rsquo;acc\u00e8s envoy\u00e9s le matin de l&rsquo;arriv\u00e9e.<\/p>\n      <\/div>\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg>\n        <p class=\"atout-title\">Emplacement central<\/p>\n        <p class=\"atout-desc\">17 Rue des Sources \u2014 \u00e0 quelques minutes \u00e0 pied des Thermes, du Parc des Sources et du centre-ville.<\/p>\n      <\/div>\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 3v8a3 3 0 0 0 6 0V3M9 11v10M15 3c-1.5 2-2 4-2 6s.5 3 2 3v9\"\/><\/svg>\n        <p class=\"atout-title\">Enti\u00e8rement \u00e9quip\u00e9<\/p>\n        <p class=\"atout-desc\">Cuisine \u00e9quip\u00e9e, Wi-Fi haut d\u00e9bit, literie de qualit\u00e9 \u2014 tout est pr\u00eat \u00e0 votre arriv\u00e9e.<\/p>\n      <\/div>\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M11 20A7 7 0 0 1 4 13c0-5 5-9 13-9 0 6-2 12-6 14z\"\/><path d=\"M4.5 19.5C7 15 10 12 15 9.5\"\/><\/svg>\n        <p class=\"atout-title\">Id\u00e9al cure thermale<\/p>\n        <p class=\"atout-desc\">S\u00e9jours d&rsquo;une semaine ou plus \u00e0 tarif d\u00e9gressif. Votre base de repos entre les soins.<\/p>\n      <\/div>\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"7\" width=\"19\" height=\"13\" rx=\"2\"\/><path d=\"M9 7V5a1.5 1.5 0 0 1 1.5-1.5h3A1.5 1.5 0 0 1 15 5v2M2.5 12.5h19\"\/><\/svg>\n        <p class=\"atout-title\">S\u00e9jours professionnels<\/p>\n        <p class=\"atout-desc\">Bureau de travail, connexion fibre et facture simplifi\u00e9e \u2014 pens\u00e9 pour les missions longues.<\/p>\n      <\/div>\n      <div class=\"atout-item reveal\">\n        <svg class=\"ico atout-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M20.5 12.5l-8 8a2 2 0 0 1-2.8 0l-6.2-6.2a2 2 0 0 1-.6-1.4V4.5a2 2 0 0 1 2-2h8.4a2 2 0 0 1 1.4.6l5.8 5.8a2 2 0 0 1 0 2.8z\"\/><circle cx=\"8\" cy=\"8\" r=\"1.4\"\/><\/svg>\n        <p class=\"atout-title\">R\u00e9servation directe<\/p>\n        <p class=\"atout-desc\">Meilleur tarif garanti en direct, sans interm\u00e9diaire ni frais de plateforme.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 LOGEMENTS \u2500\u2500\u2500 -->\n  <section class=\"logements\" id=\"logements\" aria-label=\"Nos h\u00e9bergements \u00e0 Vichy\">\n    <div class=\"section-header reveal\">\n      <p class=\"section-eyebrow\">Nos h\u00e9bergements<\/p>\n      <h2 class=\"section-title\">10 logements,<br><em>de 10 \u00e0 33 m\u00b2<\/em><\/h2>\n      <p class=\"section-sub\">Studios, souplex, appartements et duplex, pour 1 \u00e0 3 voyageurs. Chaque logement a son caract\u00e8re, tous partagent le m\u00eame niveau d&rsquo;exigence.<\/p>\n    <\/div>\n\n    <p class=\"logements-commun reveal\">\n      Dans chaque logement : cuisine \u00e9quip\u00e9e, salle d&rsquo;eau privative, literie de qualit\u00e9,\n      Wi-Fi haut d\u00e9bit, ventilateur sur pied et linge de maison fourni.\n      Deux logements \u2014 les N\u00b03 et N\u00b010 \u2014 sont actuellement en r\u00e9novation.\n    <\/p>\n\n    <div class=\"logements-grid\">\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <div class=\"carousel\" data-carousel>\n            <div class=\"carousel-track\">\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-1.jpg\" alt=\"Chambre avec lit Queen size, appartement N\u00b011 avec balcon\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-2.jpg\" alt=\"Espace nuit de l'appartement N\u00b011, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-chambre-3.jpg\" alt=\"Chambre lumineuse de l'appartement N\u00b011 avec balcon\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-cuisine-1.jpg\" alt=\"Cuisine \u00e9quip\u00e9e de l'appartement N\u00b011\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-cuisine-2.jpg\" alt=\"Coin cuisine de l'appartement N\u00b011, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n11-vichy-salle-de-bain-1.jpg\" alt=\"Salle de bain de l'appartement N\u00b011\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n            <\/div>\n            <button class=\"carousel-arrow prev\" data-prev aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n            <button class=\"carousel-arrow next\" data-next aria-label=\"Photo suivante\">&rsaquo;<\/button>\n            <div class=\"carousel-counter\"><span data-current>1<\/span>\/<span data-total>1<\/span><\/div>\n            <div class=\"carousel-dots\"><\/div>\n          <\/div>\n          <span class=\"logement-tag\">Coup de c\u0153ur<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">23 m\u00b2 \u00b7 Balcon \u00b7 <strong>3e \u00e9tage, c\u00f4t\u00e9 rue<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit Queen size 160\u00d7200<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b011 : Appartement avec balcon<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Notre logement le plus demand\u00e9. Le balcon priv\u00e9, au troisi\u00e8me, donne sur la rue des Sources \u2014 l&rsquo;endroit pour le caf\u00e9 du matin avant les soins. 23 m\u00b2 lumineux, \u00e0 cinq minutes \u00e0 pied des Thermes.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b011\">R\u00e9server ce logement \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <div class=\"carousel\" data-carousel>\n            <div class=\"carousel-track\">\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-chambre-1.jpg\" alt=\"Chambre du duplex N\u00b09 avec lit Queen size\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-chambre-2.jpg\" alt=\"Espace nuit du duplex N\u00b09, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-chambre-3.jpg\" alt=\"Chambre lumineuse du duplex N\u00b09\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-chambre-4.jpg\" alt=\"Coin chambre du duplex N\u00b09\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-cuisine-1.jpg\" alt=\"Cuisine \u00e9quip\u00e9e du duplex N\u00b09\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-cuisine-2.jpg\" alt=\"Coin cuisine du duplex N\u00b09, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-escalier-1.jpg\" alt=\"Escalier du duplex N\u00b09 sur deux niveaux\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-escalier-2.jpg\" alt=\"Acc\u00e8s mezzanine du duplex N\u00b09\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n9-vichy-escalier-3.jpg\" alt=\"Duplex N\u00b09 sur deux niveaux, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n            <\/div>\n            <button class=\"carousel-arrow prev\" data-prev aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n            <button class=\"carousel-arrow next\" data-next aria-label=\"Photo suivante\">&rsaquo;<\/button>\n            <div class=\"carousel-counter\"><span data-current>1<\/span>\/<span data-total>1<\/span><\/div>\n            <div class=\"carousel-dots\"><\/div>\n          <\/div>\n          <span class=\"logement-tag\">Le plus spacieux<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">28 m\u00b2 \u00b7 2 niveaux \u00b7 <strong>3e \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit Queen 160\u00d7200 + lit 80\u00d7200<\/strong> <span class=\"separator\">\u00b7<\/span> 3 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b09 : Duplex<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Espace de vie en bas, coin nuit en mezzanine : le volume d&rsquo;une petite maison au troisi\u00e8me \u00e9tage. C\u00f4t\u00e9 cour, donc silencieux. Pour trois voyageurs, ou deux qui aiment avoir de la place.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b09\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <div class=\"carousel\" data-carousel>\n            <div class=\"carousel-track\">\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-vue-ensemble-1.jpg\" alt=\"Vue d'ensemble du studio N\u00b04\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-chambre-1.jpg\" alt=\"Chambre du studio N\u00b04, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-chambre-2.jpg\" alt=\"Espace nuit du studio N\u00b04\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-chambre-3.jpg\" alt=\"Coin chambre du studio N\u00b04\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-cuisine-1.jpg\" alt=\"Cuisine \u00e9quip\u00e9e du studio N\u00b04\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-cuisine-2.jpg\" alt=\"Coin cuisine du studio N\u00b04, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-salle-de-bain-1.jpg\" alt=\"Salle de bain du studio N\u00b04\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n4-vichy-salle-de-bain-2.jpg\" alt=\"Salle d'eau du studio N\u00b04, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n            <\/div>\n            <button class=\"carousel-arrow prev\" data-prev aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n            <button class=\"carousel-arrow next\" data-next aria-label=\"Photo suivante\">&rsaquo;<\/button>\n            <div class=\"carousel-counter\"><span data-current>1<\/span>\/<span data-total>1<\/span><\/div>\n            <div class=\"carousel-dots\"><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">15 m\u00b2 \u00b7 <strong>1er \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit double<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b04 : Studio 2 personnes<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Tout l&rsquo;essentiel dans un espace optimis\u00e9, au premier \u00e9tage c\u00f4t\u00e9 cour. Le format juste pour une nuit d&rsquo;\u00e9tape ou un week-end \u00e0 Vichy, sans payer pour des m\u00e8tres carr\u00e9s inutilis\u00e9s.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b04\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <div class=\"carousel\" data-carousel>\n            <div class=\"carousel-track\">\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-chambre-1.jpg\" alt=\"Chambre du souplex N\u00b02 avec lits s\u00e9par\u00e9s\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-chambre-2.jpg\" alt=\"Espace nuit du souplex N\u00b02, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-chambre-3.jpg\" alt=\"Chambre lumineuse du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-cuisine-1-scaled.jpg\" alt=\"Cuisine \u00e9quip\u00e9e du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-cuisine-2-scaled.jpg\" alt=\"Coin cuisine du souplex N\u00b02, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-salle-de-bain-1-scaled.jpg\" alt=\"Salle de bain du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-salle-de-bain-2-scaled.jpg\" alt=\"Salle d'eau du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-escalier-1.jpg\" alt=\"Escalier du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n2-vichy-escalier-2.jpg\" alt=\"Acc\u00e8s aux deux niveaux du souplex N\u00b02\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n            <\/div>\n            <button class=\"carousel-arrow prev\" data-prev aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n            <button class=\"carousel-arrow next\" data-next aria-label=\"Photo suivante\">&rsaquo;<\/button>\n            <div class=\"carousel-counter\"><span data-current>1<\/span>\/<span data-total>1<\/span><\/div>\n            <div class=\"carousel-dots\"><\/div>\n          <\/div>\n          <span class=\"logement-tag\">Lits s\u00e9par\u00e9s<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">15 m\u00b2 \u00b7 2 niveaux \u00b7 <strong>RDC, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>2 lits s\u00e9par\u00e9s<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b02 : Souplex<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Un souplex en rez-de-chauss\u00e9e, avec ses deux niveaux et ses lits individuels s\u00e9par\u00e9s. Pens\u00e9 pour deux voyageurs qui pr\u00e9f\u00e8rent chacun son couchage \u2014 amis, coll\u00e8gues, ou curistes de longue dur\u00e9e.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b02\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <div class=\"carousel\" data-carousel>\n            <div class=\"carousel-track\">\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n6-vichy-chambre-1.png\" alt=\"Chambre du studio N\u00b06 pour une personne\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n6-vichy-cuisine-1.png\" alt=\"Cuisine du studio N\u00b06, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n6-vichy-placard-1.png\" alt=\"Rangements du studio N\u00b06\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n6-vichy-salle-de-bain-1.png\" alt=\"Salle de bain du studio N\u00b06\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n              <div class=\"carousel-slide\"><img class=\"slide-img\" src=\"https:\/\/www.lessourcesvichy.fr\/wp-content\/uploads\/2026\/05\/studio-n6-vichy-salle-de-bain-2.png\" alt=\"Salle d'eau du studio N\u00b06, Les Sources Vichy\" loading=\"lazy\" decoding=\"async\" \/><\/div>\n            <\/div>\n            <button class=\"carousel-arrow prev\" data-prev aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n            <button class=\"carousel-arrow next\" data-next aria-label=\"Photo suivante\">&rsaquo;<\/button>\n            <div class=\"carousel-counter\"><span data-current>1<\/span>\/<span data-total>1<\/span><\/div>\n            <div class=\"carousel-dots\"><\/div>\n          <\/div>\n          <span class=\"logement-tag\">Solo<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">10 m\u00b2 \u00b7 Meilleur tarif \u00b7 <strong>2e \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit simple<\/strong> <span class=\"separator\">\u00b7<\/span> 1 personne<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b06 : Studio 1 personne<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Dix m\u00e8tres carr\u00e9s pens\u00e9s pour une personne seule, au calme c\u00f4t\u00e9 cour. Notre tarif le plus accessible, sans rien retirer de l&rsquo;essentiel : cuisine \u00e9quip\u00e9e, salle d&rsquo;eau privative et rangements.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b06\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <!-- PHOTOS \u00c0 FOURNIR \u2014 cette fiche utilisait les photos du N\u00b04 -->\n          <div class=\"photo-pending\" role=\"img\" aria-label=\"Photographies \u00e0 venir pour le N\u00b07 : Studio 2 personnes\">\n            <span>Photographies<br>\u00e0 venir<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">15 m\u00b2 \u00b7 <strong>2e \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit double<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b07 : Studio 2 personnes<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">M\u00eame agencement que le N\u00b04, un \u00e9tage plus haut. C\u00f4t\u00e9 cour, au calme, avec cuisine \u00e9quip\u00e9e et salle d&rsquo;eau privative.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b07\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <!-- PHOTOS \u00c0 FOURNIR -->\n          <div class=\"photo-pending\" role=\"img\" aria-label=\"Photographies \u00e0 venir pour le N\u00b08 : Appartement lit Queen size\">\n            <span>Photographies<br>\u00e0 venir<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">21 m\u00b2 \u00b7 <strong>2e \u00e9tage, c\u00f4t\u00e9 rue<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit Queen size<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b08 : Appartement lit Queen size<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Vingt-et-un m\u00e8tres carr\u00e9s au deuxi\u00e8me \u00e9tage, c\u00f4t\u00e9 rue. Am\u00e9nagement soign\u00e9 et lit Queen size \u2014 le confort d&rsquo;un appartement sans la contrainte d&rsquo;un studio.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b08\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <!-- PHOTOS \u00c0 FOURNIR -->\n          <div class=\"photo-pending\" role=\"img\" aria-label=\"Photographies \u00e0 venir pour le N\u00b05 : Appartement lit double\">\n            <span>Photographies<br>\u00e0 venir<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">21 m\u00b2 \u00b7 <strong>1er \u00e9tage, c\u00f4t\u00e9 rue<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit double<\/strong> <span class=\"separator\">\u00b7<\/span> 2 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b05 : Appartement lit double<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Le m\u00eame volume que le N\u00b08, au premier \u00e9tage. Fonctionnel, bien agenc\u00e9, au meilleur rapport surface-prix de la r\u00e9sidence.<\/p>\n          <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"logement-link\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server le logement N\u00b05\">R\u00e9server \u2192<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal renovation\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <!-- PHOTOS \u00c0 FOURNIR \u2014 utilisait les photos du N\u00b06 -->\n          <div class=\"photo-pending\" role=\"img\" aria-label=\"Photographies \u00e0 venir pour le N\u00b03 : Studio 1 personne\">\n            <span>Photographies<br>\u00e0 venir<\/span>\n          <\/div>\n          <span class=\"logement-tag renovation\">En r\u00e9novation<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">10 m\u00b2 \u00b7 <strong>1er \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit simple<\/strong> <span class=\"separator\">\u00b7<\/span> 1 personne<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b03 : Studio 1 personne<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Studio solo, compact et fonctionnel. <strong>Actuellement en r\u00e9novation<\/strong> \u2014 de retour prochainement.<\/p>\n          <span class=\"logement-link disabled\">Indisponible pour le moment<\/span>\n        <\/div>\n      <\/article>\n\n      <article class=\"logement-card reveal renovation\" itemscope itemtype=\"https:\/\/schema.org\/Accommodation\">\n        <div class=\"logement-visual\">\n          <!-- PHOTOS \u00c0 FOURNIR -->\n          <div class=\"photo-pending\" role=\"img\" aria-label=\"Photographies \u00e0 venir pour le N\u00b010 : Duplex\">\n            <span>Photographies<br>\u00e0 venir<\/span>\n          <\/div>\n          <span class=\"logement-tag renovation\">En r\u00e9novation<\/span>\n        <\/div>\n        <div class=\"logement-body\">\n          <p class=\"logement-meta\" itemprop=\"floorSize\">33 m\u00b2 \u00b7 2 niveaux \u00b7 <strong>3e \u00e9tage, c\u00f4t\u00e9 cour<\/strong> <span class=\"fan-badge\" title=\"Ventilateur sur pied\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>Ventil\u00e9<\/span><\/p>\n          <p class=\"logement-meta-secondary\"><svg class=\"ico bed-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg> <strong>Lit Queen 160\u00d7200 + lit 80\u00d7200<\/strong> <span class=\"separator\">\u00b7<\/span> 3 personnes<\/p>\n          <h3 class=\"logement-name\" itemprop=\"name\">N\u00b010 : Duplex<\/h3>\n          <p class=\"logement-desc\" itemprop=\"description\">Notre plus grand logement, 33 m\u00b2 sur deux niveaux. <strong>Actuellement en r\u00e9novation<\/strong> \u2014 de retour prochainement.<\/p>\n          <span class=\"logement-link disabled\">Indisponible pour le moment<\/span>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 NOTRE HISTOIRE \u2500\u2500\u2500 -->\n  <section class=\"histoire-section\" id=\"histoire\" aria-label=\"Notre histoire\">\n    <div class=\"histoire-grid\">\n\n      <div class=\"histoire-visual reveal\">\n        <div class=\"histoire-photo\" role=\"img\" aria-label=\"Appartement des Sources Vichy, 17 rue des Sources\">\n          <div class=\"histoire-photo-label\">\n            <p>\u00ab&nbsp;Continuer \u00e0 prendre soin,<br>autrement.&nbsp;\u00bb<\/p>\n            <small>Marine &amp; Anthony<\/small>\n          <\/div>\n        <\/div>\n        <a href=\"\/charte-cles-prestige\/\" class=\"histoire-badge\" aria-label=\"D\u00e9couvrir la Charte Qualit\u00e9 Cl\u00e9s Prestige\">\n          <div class=\"num\">2 Cl\u00e9s<\/div>\n          <div class=\"lbl\">Prestige<\/div>\n        <\/a>\n      <\/div>\n\n      <div class=\"histoire-content reveal\">\n        <p class=\"section-eyebrow\">Notre histoire<\/p>\n        <h2>D&rsquo;une vie<br>\u00e0 <em>l&rsquo;autre<\/em><\/h2>\n        <p>Pendant de longues ann\u00e9es, Marine a veill\u00e9 sur des vies. Cadre de sant\u00e9 au service de r\u00e9animation de Vichy, elle a appris l&rsquo;essentiel : la valeur d&rsquo;un regard, d&rsquo;un mot juste, d&rsquo;un geste qui rassure. Chaque jour, elle a vu na\u00eetre cette \u00e9vidence \u2014 il ne reste de pr\u00e9cieux que les instants partag\u00e9s, et la beaut\u00e9 du monde qui nous entoure.<\/p>\n        <p>Cette ville, elle l&rsquo;aime profond\u00e9ment. Sa lumi\u00e8re dor\u00e9e sur les toits Belle \u00c9poque, ses sources mill\u00e9naires, l&rsquo;\u00e9l\u00e9gance silencieuse de ses parcs. Vichy n&rsquo;est pas seulement une ville thermale : c&rsquo;est un art de vivre, un souffle, une promesse.<\/p>\n        <p>Avec Anthony, son mari et complice de tous les projets, ils ont fait un choix : celui de tourner une page pour en \u00e9crire une nouvelle. Quitter la blouse pour ouvrir une porte. Continuer \u00e0 prendre soin \u2014 mais autrement. Offrir aux voyageurs ce que cette ville leur a donn\u00e9 : un refuge, une parenth\u00e8se, un moment de gr\u00e2ce.<\/p>\n        <p><em>C&rsquo;est ainsi qu&rsquo;est n\u00e9 Les Sources Vichy, fond\u00e9 sur une conviction simple : chaque s\u00e9jour m\u00e9rite d&rsquo;\u00eatre un beau souvenir.<\/em><\/p>\n\n        <p class=\"signature\">\u2014 Marine &amp; Anthony<\/p>\n\n        <div class=\"histoire-values\">\n          <div class=\"value-item\">\n            <svg class=\"ico value-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 20.5S3.5 15 3.5 9.2A4.7 4.7 0 0 1 12 6.6a4.7 4.7 0 0 1 8.5 2.6c0 5.8-8.5 11.3-8.5 11.3z\"\/><\/svg>\n            <span class=\"value-label\">Prendre soin de vous<\/span>\n          <\/div>\n          <div class=\"value-item\">\n            <svg class=\"ico value-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 9l9-5 9 5M3 9h18M5.5 9v9M9.5 9v9M14.5 9v9M18.5 9v9M3 20h18\"\/><\/svg>\n            <span class=\"value-label\">Esprit Belle \u00c9poque<\/span>\n          <\/div>\n          <div class=\"value-item\">\n            <svg class=\"ico value-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 3h12l3.5 5.5L12 21 2.5 8.5z\"\/><path d=\"M2.5 8.5h19M9 3 6 8.5 12 21l6-12.5L15 3\"\/><\/svg>\n            <span class=\"value-label\">Moments pr\u00e9cieux<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 AVIS CLIENTS (Trustindex) \u2500\u2500\u2500 -->\n  <section class=\"avis-trustindex-section\" id=\"avis\" aria-label=\"Avis clients v\u00e9rifi\u00e9s\">\n    <div class=\"trustindex-intro reveal\">\n      <p class=\"section-eyebrow\">Avis v\u00e9rifi\u00e9s<\/p>\n      <h2 class=\"section-title\">Ils ont s\u00e9journ\u00e9<br><em>aux Sources Vichy<\/em><\/h2>\n      <p class=\"section-sub\">Des avis 100 % authentiques, synchronis\u00e9s en temps r\u00e9el depuis Google, Booking et Airbnb via Trustindex.<\/p>\n    <\/div>\n    <div class=\"trustindex-wrapper reveal\">\n      <script defer async src=\"https:\/\/cdn.trustindex.io\/loader.js?8902a3154343797fcc5602ccc2f\"><\/script>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 FAQ \u2500\u2500\u2500 -->\n  <section class=\"faq-section\" id=\"faq\" aria-label=\"Questions fr\u00e9quentes\">\n    <div class=\"section-header reveal\">\n      <p class=\"section-eyebrow\">Questions fr\u00e9quentes<\/p>\n      <h2 class=\"section-title\">Tout savoir avant<br><em>de r\u00e9server<\/em><\/h2>\n    <\/div>\n    <div class=\"faq-grid\">\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg>\n        <p class=\"faq-q\">O\u00f9 \u00eates-vous situ\u00e9s ?<\/p>\n        <p class=\"faq-a\">Au 17 Rue des Sources, 03200 Vichy \u2014 \u00e0 quelques minutes \u00e0 pied des Thermes et du Parc des Sources.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M3 8v11M21 19v-6a2 2 0 0 0-2-2H9V8a1 1 0 0 0-1-1H3M3 15h18\"\/><circle cx=\"6.5\" cy=\"11.5\" r=\"1.5\"\/><\/svg>\n        <p class=\"faq-q\">Quels logements proposez-vous ?<\/p>\n        <p class=\"faq-a\">10 logements de 10 \u00e0 33 m\u00b2 : studios, souplex, appartements et duplex, pour 1 \u00e0 3 personnes, tous enti\u00e8rement \u00e9quip\u00e9s. 8 sont disponibles actuellement, 2 sont en r\u00e9novation.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M11 20A7 7 0 0 1 4 13c0-5 5-9 13-9 0 6-2 12-6 14z\"\/><path d=\"M4.5 19.5C7 15 10 12 15 9.5\"\/><\/svg>\n        <p class=\"faq-q\">Id\u00e9al pour une cure thermale ?<\/p>\n        <p class=\"faq-a\">Oui, avec des tarifs d\u00e9gressifs \u00e0 la semaine, parfaits pour les curistes des Thermes de Vichy.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(120 12 12)\"\/><path d=\"M12 10 C 12 6, 15 4, 18 5 C 16 8, 14 9, 12 10 Z\" transform=\"rotate(240 12 12)\"\/><\/svg>\n        <p class=\"faq-q\">Les logements sont-ils climatis\u00e9s ?<\/p>\n        <p class=\"faq-a\">Non. Chaque logement dispose d&rsquo;un ventilateur sur pied pour le confort d&rsquo;\u00e9t\u00e9, et la plupart donnent c\u00f4t\u00e9 cour, plus frais et plus calme.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M20.5 12.5l-8 8a2 2 0 0 1-2.8 0l-6.2-6.2a2 2 0 0 1-.6-1.4V4.5a2 2 0 0 1 2-2h8.4a2 2 0 0 1 1.4.6l5.8 5.8a2 2 0 0 1 0 2.8z\"\/><circle cx=\"8\" cy=\"8\" r=\"1.4\"\/><\/svg>\n        <p class=\"faq-q\">Comment r\u00e9server au meilleur prix ?<\/p>\n        <p class=\"faq-a\">En r\u00e9servant directement sur ce site ou par t\u00e9l\u00e9phone au +33 7 56 98 14 77 \u2014 meilleur tarif garanti, sans frais de plateforme.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n        <p class=\"faq-q\">\u00c0 quelle heure puis-je arriver ?<\/p>\n        <p class=\"faq-a\">Le check-in est autonome \u00e0 partir de 16h, le check-out \u00e0 10h. Vos codes d&rsquo;acc\u00e8s sont envoy\u00e9s le matin m\u00eame \u2014 aucune attente.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"3\"\/><path d=\"M10 17V8h3.2a2.9 2.9 0 0 1 0 5.8H10\"\/><\/svg>\n        <p class=\"faq-q\">Y a-t-il du stationnement ?<\/p>\n        <p class=\"faq-a\">Des places de stationnement sont disponibles \u00e0 proximit\u00e9 en voirie et en parking public.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 3h10M7 21h10M17 3v3.5c0 2-3.2 3.5-5 5.5-1.8-2-5-3.5-5-5.5V3M17 21v-3.5c0-2-3.2-3.5-5-5.5-1.8 2-5 3.5-5 5.5V21\"\/><\/svg>\n        <p class=\"faq-q\">S\u00e9jour de plusieurs semaines ?<\/p>\n        <p class=\"faq-a\">C&rsquo;est notre c\u0153ur de client\u00e8le. Les tarifs sont d\u00e9gressifs d\u00e8s la semaine, et le linge est renouvel\u00e9 pendant votre s\u00e9jour. Contactez-nous pour un devis sur mesure.<\/p>\n      <\/div>\n\n      <div class=\"faq-item reveal\">\n        <svg class=\"ico faq-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"5\" width=\"19\" height=\"14\" rx=\"2\"\/><path d=\"M3 7l9 6 9-6\"\/><\/svg>\n        <p class=\"faq-q\">Une question particuli\u00e8re ?<\/p>\n        <p class=\"faq-a\">\u00c9crivez-nous \u00e0 contact@lessourcesvichy.fr. Marine et Anthony r\u00e9pondent personnellement, en g\u00e9n\u00e9ral dans la journ\u00e9e.<\/p>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 PROMO CALLOU \u2500\u2500\u2500 -->\n  <section class=\"callou-promo reveal\">\n    <div class=\"callou-inner\">\n      <div>\n        <span class=\"callou-tag\">Notre nouvelle adresse<\/span>\n        <h2 class=\"callou-title\">Les Sources Callou \u2014<br><em>4 Cl\u00e9s Prestige<\/em><\/h2>\n        <p class=\"callou-desc\">Fort du succ\u00e8s des Sources Vichy, le groupe TL Immobiliers a ouvert une r\u00e9sidence haut de gamme au 3 rue Louis Blanc : 20 appartements, ascenseur, bagagerie, finitions d&rsquo;exception. Membre du r\u00e9seau The Originals Residence.<\/p>\n        <a href=\"\/charte-cles-prestige\/\" class=\"callou-stars\" aria-label=\"D\u00e9couvrir la Charte Qualit\u00e9 Cl\u00e9s Prestige\">\n          <div class=\"keys-display\" aria-hidden=\"true\">\n            <svg class=\"ico\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n            <svg class=\"ico\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n            <svg class=\"ico\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n            <svg class=\"ico\" viewBox=\"0 0 24 24\"><circle cx=\"8\" cy=\"16\" r=\"3.2\"\/><path d=\"M10.3 13.7 20 4M17 7l2.5 2.5M14.5 9.5 17 12\"\/><\/svg>\n          <\/div>\n          <p class=\"keys-label\">4 Cl\u00e9s Prestige \u2014 Collection Priv\u00e9e<\/p>\n        <\/a>\n        <a href=\"https:\/\/www.lessourcescallou.fr\" class=\"btn-primary\" target=\"_blank\" rel=\"noopener\">D\u00e9couvrir Les Sources Callou<\/a>\n      <\/div>\n      <div class=\"callou-visual\"><p>\u00ab&nbsp;L&rsquo;esprit d&rsquo;une grande maison<br>vichyssoise&nbsp;\u00bb<\/p><\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 VICHY \u2500\u2500\u2500 -->\n  <section class=\"vichy-section\" id=\"vichy\" aria-label=\"Vichy et ses alentours\">\n    <div class=\"section-header reveal\">\n      <p class=\"section-eyebrow\">Vichy &amp; ses alentours<\/p>\n      <h2 class=\"section-title\">Une ville,<br><em>mille raisons d&rsquo;y venir<\/em><\/h2>\n      <p class=\"section-sub\">Class\u00e9e au patrimoine mondial de l&rsquo;UNESCO, Vichy conjugue bien-\u00eatre thermal, architecture Belle \u00c9poque et art de vivre auvergnat.<\/p>\n    <\/div>\n    <div class=\"vichy-grid\">\n      <a href=\"https:\/\/vy-resort.com\/\" class=\"vichy-item reveal\" target=\"_blank\" rel=\"noopener\" aria-label=\"D\u00e9couvrir les Thermes de Vichy (site officiel)\"><div class=\"vichy-bg vb-1\" role=\"img\" aria-label=\"Les Thermes de Vichy\"><\/div><div class=\"vichy-overlay\"><div class=\"vichy-label\"><h3>Les Thermes de Vichy<\/h3><p>Soins thermaux \u00b7 Bien-\u00eatre \u00b7 Patrimoine UNESCO<\/p><\/div><\/div><\/a>\n      <a href=\"https:\/\/www.maisons-bocuse.com\/nos-brasseries\/brasserie-la-rotonde\/\" class=\"vichy-item reveal\" target=\"_blank\" rel=\"noopener\" aria-label=\"D\u00e9couvrir La Rotonde Bocuse (site officiel)\"><div class=\"vichy-bg vb-2\" role=\"img\" aria-label=\"La Rotonde Bocuse\"><\/div><div class=\"vichy-overlay\"><div class=\"vichy-label\"><h3>La Rotonde Bocuse<\/h3><p>Gastronomie \u00b7 Bord de lac<\/p><\/div><\/div><\/a>\n      <a href=\"https:\/\/www.clubnautiquedevichy.com\" class=\"vichy-item reveal\" target=\"_blank\" rel=\"noopener\" aria-label=\"D\u00e9couvrir le Club Nautique de Vichy (site officiel)\"><div class=\"vichy-bg vb-3\" role=\"img\" aria-label=\"Base nautique de Vichy\"><\/div><div class=\"vichy-overlay\"><div class=\"vichy-label\"><h3>Base nautique<\/h3><p>Allier \u00b7 Sports \u00b7 Loisirs<\/p><\/div><\/div><\/a>\n      <a href=\"https:\/\/www.coursesvichy.fr\/\" class=\"vichy-item reveal\" target=\"_blank\" rel=\"noopener\" aria-label=\"D\u00e9couvrir l&#039;Hippodrome de Vichy-Bellerive (site officiel)\"><div class=\"vichy-bg vb-4\" role=\"img\" aria-label=\"L'Hippodrome de Vichy\"><\/div><div class=\"vichy-overlay\"><div class=\"vichy-label\"><h3>L&rsquo;Hippodrome<\/h3><p>Courses \u00b7 \u00c9v\u00e9nements \u00b7 Nocturnes<\/p><\/div><\/div><\/a>\n      <a href=\"https:\/\/www.legrandmarche-vichy.fr\" class=\"vichy-item reveal\" target=\"_blank\" rel=\"noopener\" aria-label=\"D\u00e9couvrir le Grand March\u00e9 de Vichy (site officiel)\"><div class=\"vichy-bg vb-5\" role=\"img\" aria-label=\"Grand March\u00e9 de Vichy\"><\/div><div class=\"vichy-overlay\"><div class=\"vichy-label\"><h3>Grand March\u00e9<\/h3><p>Terroir \u00b7 Saveurs \u00b7 Convivialit\u00e9<\/p><\/div><\/div><\/a>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500\u2500 CONTACT \u2500\u2500\u2500 -->\n  <section class=\"contact-band\" id=\"contact\" aria-label=\"Contact et r\u00e9servation\">\n    <div class=\"section-header reveal\" style=\"position:relative;z-index:1;\">\n      <p class=\"section-eyebrow\">Nous contacter<\/p>\n      <h2 class=\"section-title\">Pr\u00eat \u00e0 r\u00e9server<br><em>votre s\u00e9jour ?<\/em><\/h2>\n      <p class=\"section-sub\">Marine &amp; Anthony sont disponibles pour r\u00e9pondre \u00e0 toutes vos questions et personnaliser votre s\u00e9jour.<\/p>\n    <\/div>\n    <div class=\"contact-info\">\n      <a href=\"tel:+33756981477\" class=\"contact-item\" aria-label=\"Appeler Les Sources Vichy\">\n        <svg class=\"ico contact-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6.5 3.5h3l1.5 4-2 1.5a12 12 0 0 0 6 6l1.5-2 4 1.5v3a1.5 1.5 0 0 1-1.7 1.5A17 17 0 0 1 5 5.2a1.5 1.5 0 0 1 1.5-1.7z\"\/><\/svg>\n        +33 7 56 98 14 77\n      <\/a>\n      <a href=\"mailto:contact@lessourcesvichy.fr\" class=\"contact-item\" aria-label=\"Envoyer un email aux Sources Vichy\">\n        <svg class=\"ico contact-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"5\" width=\"19\" height=\"14\" rx=\"2\"\/><path d=\"M3 7l9 6 9-6\"\/><\/svg>\n        contact@lessourcesvichy.fr\n      <\/a>\n      <span class=\"contact-item\">\n        <svg class=\"ico contact-ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg>\n        17 Rue des Sources, 03200 Vichy\n      <\/span>\n    <\/div>\n    <a href=\"https:\/\/tlimmobilier.thais-hotel.com\/direct-booking\/calendar?nbPersons=1\" class=\"btn-primary\" target=\"_blank\" rel=\"noopener\" aria-label=\"R\u00e9server en direct au meilleur tarif garanti\">\n      R\u00e9server en direct \u2014 meilleur tarif garanti\n    <\/a>\n  <\/section>\n\n  <\/main>\n\n  <!-- \u2500\u2500\u2500 LIGHTBOX \u2500\u2500\u2500 -->\n  <div class=\"lightbox\" id=\"lightbox\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Galerie photo plein \u00e9cran\">\n    <div class=\"lightbox-stage\">\n      <button class=\"lightbox-close\" id=\"lbClose\" aria-label=\"Fermer la galerie\">&#10005;<\/button>\n      <span class=\"lightbox-counter\"><span id=\"lbCurrent\">1<\/span> \/ <span id=\"lbTotal\">1<\/span><\/span>\n      <button class=\"lightbox-arrow prev\" id=\"lbPrev\" aria-label=\"Photo pr\u00e9c\u00e9dente\">&lsaquo;<\/button>\n      <img decoding=\"async\" class=\"lightbox-img\" id=\"lbImg\" src=\"\" alt=\"\" \/>\n      <button class=\"lightbox-arrow next\" id=\"lbNext\" aria-label=\"Photo suivante\">&rsaquo;<\/button>\n      <p class=\"lightbox-caption\" id=\"lbCaption\"><\/p>\n      <div class=\"lightbox-thumbs\" id=\"lbThumbs\"><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2500\u2500\u2500 FOOTER \u2500\u2500\u2500 -->\n  <footer role=\"contentinfo\">\n    <div class=\"footer-brand\">\n      <a href=\"\/\" class=\"nav-logo\">Les Sources <span>Vichy<\/span><\/a>\n      <p>Les Sources Vichy, appart&rsquo;h\u00f4tel au c\u0153ur de la ville thermale. Une adresse confortable et accessible, pens\u00e9e pour tous vos s\u00e9jours \u2014 cures, week-ends et d\u00e9placements professionnels. Labellis\u00e9 2 Cl\u00e9s Prestige.<\/p>\n    <\/div>\n    <div class=\"footer-col\">\n      <h4>Navigation<\/h4>\n      <ul>\n        <li><a href=\"\/\">Accueil<\/a><\/li>\n        <li><a href=\"#logements\">Nos logements<\/a><\/li>\n        <li><a href=\"#vichy\">Vichy &amp; alentours<\/a><\/li>\n        <li><a href=\"#faq\">FAQ<\/a><\/li>\n        <li><a href=\"#contact\">Contact<\/a><\/li>\n        <li><a href=\"\/charte-cles-prestige\/\">Charte qualit\u00e9 Cl\u00e9s Prestige<\/a><\/li>\n        <li><a href=\"\/mentions-legales\/\">Mentions l\u00e9gales<\/a><\/li>\n      <\/ul>\n    <\/div>\n    <div class=\"footer-col\">\n      <h4>Groupe TL Immobiliers<\/h4>\n      <ul>\n        <li><a href=\"https:\/\/www.lessourcescallou.fr\" target=\"_blank\" rel=\"noopener\">Les Sources Callou<\/a><\/li>\n        <li><a href=\"https:\/\/www.logementspontduchateau.fr\" target=\"_blank\" rel=\"noopener\">Logements Pont-du-Ch\u00e2teau<\/a><\/li>\n        <li><a href=\"tel:+33756981477\">+33 7 56 98 14 77<\/a><\/li>\n        <li><a href=\"mailto:contact@lessourcesvichy.fr\">contact@lessourcesvichy.fr<\/a><\/li>\n      <\/ul>\n      <address style=\"font-style:normal;margin-top:1rem;font-size:0.75rem;color:rgba(245,240,232,0.3);line-height:1.7;\">\n        17 Rue des Sources<br>\n        03200 Vichy<br>\n        France\n      <\/address>\n    <\/div>\n    <div class=\"footer-bottom\">\n      <span>\u00a9 2026 Les Sources Vichy \u2014 Appart&rsquo;h\u00f4tel \u00e0 Vichy<\/span>\n      <span>17 Rue des Sources \u00b7 03200 Vichy \u00b7 +33 7 56 98 14 77<\/span>\n    <\/div>\n  <\/footer>\n\n  <script>\n    document.documentElement.classList.remove('no-js');\n\n    \/* \u2500\u2500\u2500 SCROLL REVEAL \u2500\u2500\u2500 *\/\n    const reveals = document.querySelectorAll('.reveal');\n    const observer = new IntersectionObserver((entries) => {\n      entries.forEach((entry, i) => {\n        if (entry.isIntersecting) {\n          setTimeout(() => entry.target.classList.add('visible'), i * 80);\n          observer.unobserve(entry.target);\n        }\n      });\n    }, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });\n    reveals.forEach(el => observer.observe(el));\n\n    \/* \u2500\u2500\u2500 NAV COMPACTE AU SCROLL \u2500\u2500\u2500 *\/\n    const nav = document.getElementById('mainnav');\n    window.addEventListener('scroll', () => {\n      nav.classList.toggle('scrolled', window.scrollY > 60);\n    }, { passive: true });\n\n    \/* \u2500\u2500\u2500 MENU BURGER \u2500\u2500\u2500 *\/\n    const navToggle = document.getElementById('navToggle');\n    const navLinks = document.getElementById('navLinks');\n    const navBackdrop = document.getElementById('navBackdrop');\n    if (navToggle && navLinks && navBackdrop) {\n      const setNav = (open) => {\n        navLinks.classList.toggle('open', open);\n        navBackdrop.classList.toggle('open', open);\n        navToggle.setAttribute('aria-expanded', String(open));\n        navToggle.setAttribute('aria-label', open ? 'Fermer le menu' : 'Ouvrir le menu');\n        document.body.style.overflow = open ? 'hidden' : '';\n      };\n      navToggle.addEventListener('click', () => setNav(!navLinks.classList.contains('open')));\n      navBackdrop.addEventListener('click', () => setNav(false));\n      navLinks.querySelectorAll('a').forEach(a => a.addEventListener('click', () => setNav(false)));\n      document.addEventListener('keydown', e => { if (e.key === 'Escape') setNav(false); });\n    }\n\n    \/* \u2500\u2500\u2500 LIGHTBOX \u2500\u2500\u2500 *\/\n    const lightbox   = document.getElementById('lightbox');\n    const lbImg      = document.getElementById('lbImg');\n    const lbCurrent  = document.getElementById('lbCurrent');\n    const lbTotal    = document.getElementById('lbTotal');\n    const lbCaption  = document.getElementById('lbCaption');\n    const lbThumbs   = document.getElementById('lbThumbs');\n    let lbImages = [];\n    let lbIndex  = 0;\n    let lbOpener = null;\n\n    function openLightbox(carousel, startIndex) {\n      lbImages = Array.from(carousel.querySelectorAll('.carousel-slide img'))\n                      .map(img => ({ src: img.currentSrc || img.src, alt: img.alt || '' }));\n      if (!lbImages.length) return;\n      lbIndex = startIndex < lbImages.length ? startIndex : 0;\n      lbTotal.textContent = lbImages.length;\n      lbThumbs.innerHTML = '';\n      lbImages.forEach((im, i) => {\n        const thumb = document.createElement('button');\n        thumb.type = 'button';\n        thumb.className = 'lightbox-thumb' + (i === lbIndex ? ' active' : '');\n        thumb.style.backgroundImage = 'url(\"' + im.src + '\")';\n        thumb.setAttribute('aria-label', 'Photo ' + (i + 1));\n        thumb.addEventListener('click', () => showLbImage(i));\n        lbThumbs.appendChild(thumb);\n      });\n      showLbImage(lbIndex);\n      lightbox.classList.add('active');\n      document.body.style.overflow = 'hidden';\n      document.getElementById('lbClose').focus();\n    }\n\n    function showLbImage(i) {\n      lbIndex = (i + lbImages.length) % lbImages.length;\n      lbImg.src = lbImages[lbIndex].src;\n      lbImg.alt = lbImages[lbIndex].alt;\n      lbCurrent.textContent = lbIndex + 1;\n      lbCaption.textContent = lbImages[lbIndex].alt;\n      lbThumbs.querySelectorAll('.lightbox-thumb').forEach((t, idx) => {\n        t.classList.toggle('active', idx === lbIndex);\n      });\n    }\n\n    function closeLightbox() {\n      lightbox.classList.remove('active');\n      document.body.style.overflow = '';\n      if (lbOpener) { lbOpener.focus(); lbOpener = null; }\n    }\n\n    \/* \u2500\u2500\u2500 CARROUSELS \u2500\u2500\u2500 *\/\n    document.querySelectorAll('[data-carousel]').forEach(carousel => {\n      const track   = carousel.querySelector('.carousel-track');\n      const slides  = carousel.querySelectorAll('.carousel-slide');\n      const total   = slides.length;\n      const counter = carousel.querySelector('[data-current]');\n      const totalEl = carousel.querySelector('[data-total]');\n      const dotsBox = carousel.querySelector('.carousel-dots');\n      let index = 0;\n\n      if (totalEl) totalEl.textContent = total;\n\n      \/\/ Les puces sont g\u00e9n\u00e9r\u00e9es ici plut\u00f4t qu'\u00e9crites en dur dans le HTML\n      const dots = [];\n      if (dotsBox) {\n        for (let i = 0; i < total; i++) {\n          const dot = document.createElement('button');\n          dot.type = 'button';\n          dot.className = 'carousel-dot' + (i === 0 ? ' active' : '');\n          dot.setAttribute('aria-label', 'Photo ' + (i + 1));\n          dot.addEventListener('click', e => { e.stopPropagation(); go(i); });\n          dotsBox.appendChild(dot);\n          dots.push(dot);\n        }\n      }\n\n      const go = (i) => {\n        index = (i + total) % total;\n        track.style.transform = 'translateX(-' + (index * 100) + '%)';\n        if (counter) counter.textContent = index + 1;\n        dots.forEach((d, idx) => d.classList.toggle('active', idx === index));\n      };\n\n      const prev = carousel.querySelector('[data-prev]');\n      const next = carousel.querySelector('[data-next]');\n      if (prev) prev.addEventListener('click', e => { e.stopPropagation(); go(index - 1); });\n      if (next) next.addEventListener('click', e => { e.stopPropagation(); go(index + 1); });\n\n      \/\/ Swipe tactile\n      let touchStartX = 0;\n      carousel.addEventListener('touchstart', e => { touchStartX = e.changedTouches[0].screenX; }, { passive: true });\n      carousel.addEventListener('touchend', e => {\n        const diff = e.changedTouches[0].screenX - touchStartX;\n        if (Math.abs(diff) > 50) go(diff < 0 ? index + 1 : index - 1);\n      }, { passive: true });\n\n      \/\/ Clic sur la photo \u2192 lightbox\n      slides.forEach(slide => {\n        slide.addEventListener('click', e => {\n          if (e.target.closest('.carousel-arrow') || e.target.closest('.carousel-dot')) return;\n          lbOpener = carousel.querySelector('[data-next]');\n          openLightbox(carousel, index);\n        });\n      });\n    });\n\n    if (lightbox) {\n      document.getElementById('lbClose').addEventListener('click', closeLightbox);\n      document.getElementById('lbPrev').addEventListener('click', () => showLbImage(lbIndex - 1));\n      document.getElementById('lbNext').addEventListener('click', () => showLbImage(lbIndex + 1));\n      lightbox.addEventListener('click', e => { if (e.target === lightbox) closeLightbox(); });\n      document.addEventListener('keydown', e => {\n        if (!lightbox.classList.contains('active')) return;\n        if (e.key === 'Escape')     closeLightbox();\n        if (e.key === 'ArrowLeft')  showLbImage(lbIndex - 1);\n        if (e.key === 'ArrowRight') showLbImage(lbIndex + 1);\n      });\n      let lbTouchX = 0;\n      lightbox.addEventListener('touchstart', e => { lbTouchX = e.changedTouches[0].screenX; }, { passive: true });\n      lightbox.addEventListener('touchend', e => {\n        const diff = e.changedTouches[0].screenX - lbTouchX;\n        if (Math.abs(diff) > 50) showLbImage(diff < 0 ? lbIndex + 1 : lbIndex - 1);\n      }, { passive: true });\n    }\n  <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Appart&rsquo;H\u00f4tel Les Sources Vichy \u2013 Location courte dur\u00e9e | Cure thermale &amp; S\u00e9jour pro Les Sources Vichy Logements Histoire Avis Vichy FAQ Contact FR\u00b7EN\u00b7ES R\u00e9server Appart&rsquo;h\u00f4tel \u2014 Vichy, Auvergne Vivez Vichy au rythme des Sources Notre appart&rsquo;h\u00f4tel Vichy vous accueille au c\u0153ur de la cit\u00e9 thermale class\u00e9e UNESCO. Studios, appartements et duplex alliant confort moderne [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-985","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/pages\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/comments?post=985"}],"version-history":[{"count":21,"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/pages\/985\/revisions"}],"predecessor-version":[{"id":1079,"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/pages\/985\/revisions\/1079"}],"wp:attachment":[{"href":"https:\/\/www.lessourcesvichy.fr\/index.php\/wp-json\/wp\/v2\/media?parent=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}