/* home.css — V10 bloc 8 (lot 8E) : styles du calculateur et de l'accueil, sortis du <style> inline (cache navigateur,
   une seule source). Le socle commun est dans omyeu-base.css ; les quatre règles ci-dessous reproduisent les
   valeurs que l'accueil avait avant le lot (écarts assumés avec les pages). */
body{line-height:1.5}
.header-inner{max-width:600px;justify-content:flex-start;gap:normal}
.header-voiture{margin-left:0}
footer a{cursor:pointer}
@media(max-width:480px){header{padding:8px 14px}.brand-mark{width:28px;height:28px}.brand-name{font-size:16px}.brand-tagline{font-size:10px}.header-voiture{padding:6px 10px;font-size:11px}.header-voiture .header-voiture-label{display:none}}
@media(max-width:480px){.header-alerte{padding:6px 10px;font-size:11px;margin-left:6px}.header-alerte-label{display:none}}
main{max-width:600px;margin:0 auto;padding:0 0 80px}
.page-title{font-family:'DM Serif Display',serif;font-weight:400;font-size:21px;color:var(--navy);text-align:center;margin:18px 16px 12px;line-height:1.3}
.ad-header{margin:10px 12px 0;display:none}
.ad-header.visible{display:block}
.filters-card{background:var(--foam);margin:10px 12px;border-radius:var(--radius);padding:14px 13px 13px;box-shadow:var(--shadow);border:1px solid var(--border)}
.toggle-row{display:flex;gap:7px;margin-bottom:7px}
.toggle-btn{flex:1;padding:9px 5px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--sand);color:var(--soft);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;cursor:pointer;text-align:center;transition:all .18s}
.toggle-btn.active{border-color:var(--navy);background:var(--navy);color:var(--foam)}
.ville-section{margin:0 0 10px 0}
.ville-label{font-size:11px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.chips-row{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:7px 12px;background:var(--sand);border:1px solid var(--border);color:var(--text);border-radius:20px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .18s;font-variant-ligatures:none}
.chip:hover:not(:disabled){border-color:var(--ocean);color:var(--navy)}
.chip.active{background:var(--navy);border-color:var(--navy);color:var(--foam)}
.chip-soon{opacity:.8;cursor:default;position:relative;padding-right:14px}
.chip-soon:hover{border-color:var(--border);color:var(--text)}
.chip-badge{font-size:10px;background:var(--sun-soft);color:#7a5000;padding:1px 5px;border-radius:8px;margin-left:4px;font-weight:700;letter-spacing:.03em;vertical-align:middle}
/* V8 — Panneau "Autre ville" (autocomplétion gare SNCF) */
.autre-ville-field{position:relative;display:inline-flex;align-items:center;flex:0 1 200px;min-width:160px;max-width:220px}
.autre-ville-input{width:100%;box-sizing:border-box;padding:7px 30px 7px 13px;font-size:12px;border:1px solid var(--border);border-radius:20px;background:var(--sand);color:var(--text);font-family:'DM Sans',sans-serif}
.autre-ville-input::placeholder{color:var(--text);opacity:.75}
.autre-ville-input:focus{outline:none;border-color:var(--ocean);background:#fff}
.autre-ville-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:var(--border);color:var(--navy);border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}
.autre-ville-suggestions{position:absolute;left:0;top:calc(100% + 4px);z-index:20;min-width:100%;width:max-content;max-width:320px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.12);max-height:260px;overflow-y:auto}
.autre-ville-sugg-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border)}
.autre-ville-sugg-item:last-child{border-bottom:none}
.autre-ville-sugg-item:hover,.autre-ville-sugg-item.active{background:var(--foam)}
.autre-ville-sugg-name{font-size:13px;color:var(--navy);font-weight:600}
.autre-ville-status{margin-top:8px;font-size:12px;color:var(--soft)}
.autre-ville-status.error{color:#c0392b}
.autre-ville-status.loading{color:var(--ocean)}
.autre-ville-status a{color:var(--ocean)}
.paris-transfer-wrap{margin-top:10px;padding-top:9px;border-top:1px dashed var(--border)}
.row2{display:flex;gap:9px;margin-bottom:11px}
.field{flex:1;display:flex;flex-direction:column;gap:3px}
.field label{font-size:11px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.05em}
.field input{padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text);background:var(--sand);width:100%;transition:border-color .15s}
.field input:focus{outline:none;border-color:var(--ocean)}
.options-row{display:flex;gap:8px;margin-bottom:11px;flex-wrap:wrap}
.opt-tog{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--text);background:var(--sand);border:0.5px solid var(--border);border-radius:20px;padding:5px 10px 5px 6px;cursor:pointer;user-select:none;white-space:nowrap}
.opt-clickable:hover{border-color:var(--ocean)}
.opt-disabled{opacity:.5;cursor:default;pointer-events:none;position:relative}
.opt-badge{position:absolute;bottom:-6px;right:-4px;background:var(--sun-soft);color:#7a5000;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;letter-spacing:.03em;white-space:nowrap}
.pill{width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;transition:background .2s;flex-shrink:0;display:inline-block;vertical-align:middle}
.pill.on{background:var(--ocean)}
.pill::after{content:'';position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.pill.on::after{left:18px}
.corresp-section{margin-bottom:11px}
.corresp-block{background:var(--sand);border-radius:10px;border:0.5px solid var(--border);padding:8px 10px;margin-bottom:7px}
.corresp-title{font-size:11px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
/* V7.1 (item L) — Note taxi factorisée sous les toggles */
.taxi-info{background:#f5e6d0;border:0.5px solid #d8b890;border-radius:10px;padding:7px 10px;margin-bottom:11px;display:flex;align-items:flex-start;gap:7px;font-size:11px;color:#7a5500;line-height:1.5}
.taxi-info[hidden]{display:none !important}
.taxi-info-icon{font-size:13px;flex-shrink:0;line-height:1.3}
.taxi-info-text{flex:1}
.taxi-info .taxi-link{color:#7a5500;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.taxi-info .taxi-link:hover{color:#5a3d00}
.corresp-line{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:4px}
.corresp-lbl{font-size:11px;color:var(--soft);white-space:nowrap}
.cbtn{padding:4px 10px;border:1.5px solid var(--border);border-radius:14px;background:var(--foam);color:var(--soft);font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}
.cbtn.active{border-color:var(--navy);background:var(--navy);color:var(--foam)}
.cbtn:hover:not(.active){border-color:var(--ocean);color:var(--ocean)}
.sort-row{display:flex;gap:6px;align-items:center}
.sort-lbl{font-size:11px;font-weight:600;color:var(--soft);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.sbtn{padding:5px 11px;border:1.5px solid var(--border);border-radius:20px;background:var(--sand);color:var(--soft);font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}
.sbtn.active{border-color:var(--navy);background:var(--navy);color:var(--foam)}
.ad-slot{margin:0 12px 8px;display:none}.ad-slot.visible{display:block}
.ad-inner{background:#eef5ff;border:1px solid #c0d8f5;border-radius:var(--radius-sm);padding:9px 12px;display:flex;align-items:center;gap:10px}
.ad-emoji{font-size:20px;flex-shrink:0}.ad-content{flex:1}
.ad-img{width:44px;height:44px;object-fit:cover;border-radius:8px;display:block}   /* V10 bloc 2 : vignette d'une annonce mise en avant */
.ad-label{font-size:10px;color:var(--soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1px}
.ad-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:2px;line-height:1.35}
.ad-text{font-size:12px;color:var(--text);font-weight:500;line-height:1.3}
.ad-cta{display:inline-block;margin-top:3px;font-size:11px;font-weight:600;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--oceans)}
#results-wrap{padding:0 12px;min-height:480px}
#results-count{font-size:11px;color:var(--soft);padding:7px 0 3px;font-weight:500}
.result-card{background:var(--foam);border-radius:var(--radius);margin-bottom:9px;border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s}
.result-card.tight{border-left:3px solid var(--sun2)}
.result-card:hover{box-shadow:var(--shadow-lg)}
.card-header{padding:9px 12px 4px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card-meta{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.badge-via{background:var(--navy);color:var(--foam)}
.badge-cie{background:#ddeeff;color:var(--ocean);border:0.5px solid #b0ceee}
.badge-warn{background:var(--warn-bg);color:var(--warn)}
.badge-j1{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;background:var(--warn-bg);color:var(--warn);vertical-align:middle;margin-left:6px;letter-spacing:.04em}
.badge-cargo{background:#f0e6d6;color:#7a5500;border:0.5px solid #d4c4a0}
.badge-taxi{background:#f5e6d0;color:#8a5500;border:0.5px solid #d8b890}
.badge-tension{background:#fff0e0;color:#c06000;border:0.5px solid #e0b880;animation:pulse-tension 2s infinite}
.badge-complet{background:#fde8e8;color:#b82020;border:0.5px solid #e0a0a0}
.badge-guichet{background:#e8f1fb;color:#1f4e8c;border:0.5px solid #a9c4e6;text-transform:none;letter-spacing:0}
.tl-navire{font-size:11px;color:#667;font-style:italic;margin-left:2px}
/* V10 (19/10/2026) — mode commercial du train (TGV InOui, Ouigo, Intercités, TER), même pastille que le port sur les pages villes */
.tl-mode{margin-left:6px;font-size:11px;font-weight:600;color:var(--navy);background:var(--sand2);padding:1px 7px;border-radius:4px;white-space:nowrap;vertical-align:middle}
@keyframes pulse-tension{0%,100%{opacity:1}50%{opacity:.7}}
.card-dur{font-size:11px;font-weight:500;color:var(--soft);white-space:nowrap}
.card-times{font-size:21px;font-weight:500;padding:2px 12px 5px;color:var(--text)}
.card-times em{color:var(--soft);font-size:14px;font-style:normal;margin:0 4px}
.timeline{padding:8px 12px 9px;background:var(--sand);border-top:1px solid var(--sand2);display:flex;flex-direction:column;gap:4px}
.tl-step{display:flex;align-items:center;gap:8px;font-size:12px}
.tl-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}
.tl-main{flex:1;color:var(--text);line-height:1.4}
.tl-t{color:var(--soft);font-weight:500;font-size:11px}
.tl-wait{font-size:11px;color:var(--soft);padding-left:26px}
.tl-wait.tight{color:var(--warn);font-weight:600}
.tl-wait.tres{color:#cc2200}
.tl-wait.info{color:var(--ocean);font-weight:500}
.tl-note{font-size:11px;color:var(--soft);padding-left:26px;font-style:italic;margin-top:-2px;margin-bottom:2px}
.tl-note.corresp-courte{color:#a15c00;font-weight:600}
/* V7.1 (item A) — Alertes inline sur la ligne du segment (Forte tension / Complet / Places limitées) */
.tl-alert{display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.03em;margin-left:6px;vertical-align:middle;white-space:nowrap}
/* V9.1 — Accompagnateur recherché : note dépliable sous le segment concerné */
.accomp-note{margin:2px 0 5px 26px;font-size:12px}
.accomp-trajet{padding:0 9px}
.accomp-trajet .accomp-note{margin-left:0}
.accomp-note summary{cursor:pointer;display:inline-block;background:#e8f4ee;color:#1e6e46;border:0.5px solid #9ecdb4;border-radius:8px;padding:2px 9px;font-weight:600;font-size:11px;list-style:none}
.accomp-note summary::-webkit-details-marker{display:none}
.accomp-note summary:hover{background:#dcefe4}
.accomp-note[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}
.accomp-body{border:1px solid #9ecdb4;border-radius:0 10px 10px 10px;background:#fff;padding:12px 14px;max-width:440px;box-shadow:0 2px 8px rgba(30,110,70,.08)}
.accomp-body p{margin:0 0 8px;font-size:12.5px;line-height:1.5}
.accomp-item+.accomp-item{margin-top:12px;padding-top:12px;border-top:1px dashed #cde5d7}
.accomp-disclaimer{color:var(--soft);font-size:10.5px;font-style:italic;margin-top:10px!important;margin-bottom:0!important;line-height:1.45}
.accomp-contact-form{display:flex;flex-direction:column;gap:7px}
.accomp-contact-form .accomp-hp{position:absolute;left:-9999px;height:1px;width:1px;opacity:0}
.accomp-contact-form input:not(.accomp-hp),.accomp-contact-form textarea{width:100%;box-sizing:border-box;border:1px solid #cde5d7;border-radius:8px;padding:8px 10px;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text);background:#f8fbf9;transition:border-color .15s,background .15s;-webkit-appearance:none;appearance:none}
.accomp-contact-form input:not(.accomp-hp):focus,.accomp-contact-form textarea:focus{outline:none;border-color:#1e6e46;background:#fff}
.accomp-contact-form ::placeholder{color:#5c6f80;opacity:1}
.accomp-contact-form textarea{resize:vertical;min-height:52px}
.acf-row{display:flex;gap:7px}
.acf-row input{flex:1;min-width:0}
.acf-chk{display:flex;align-items:flex-start;gap:7px;font-size:12px;line-height:1.4;color:var(--text);cursor:pointer}
.accomp-contact-form .acf-chk input{width:15px;height:15px;margin:1px 0 0;padding:0;border:0;border-radius:3px;background:none;flex-shrink:0;-webkit-appearance:checkbox;appearance:auto;accent-color:#1e6e46;cursor:pointer}
.acf-chk a{color:#1e6e46;text-decoration:underline}
.acf-btn{align-self:flex-start;border:none;background:#1e6e46;color:#fff;border-radius:20px;padding:9px 18px;font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s}
.acf-btn:hover{background:#165636}
.acf-btn:disabled{opacity:.55;cursor:default}
.accomp-msg{font-size:12px;line-height:1.4}
.accomp-msg:empty{display:none}
.accomp-msg.ok{color:#1e6e46;font-weight:500}
.accomp-msg.err{color:#b82020;font-weight:500}
.card-actions{padding:7px 9px 9px;display:flex;gap:5px}
.action-btn{flex:1;padding:9px 4px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--foam);color:var(--text);font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:3px;text-align:center;transition:all .15s;line-height:1.3}
.action-btn:hover{border-color:var(--ocean);color:var(--ocean);background:#f0f6ff}
.action-btn.share-btn{flex:0 0 auto;padding:9px 12px;font-size:13px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--navy);color:#fff;padding:10px 20px;border-radius:30px;font-size:13px;font-weight:500;opacity:0;transition:all .3s;z-index:500;white-space:nowrap;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.expiry-warn{margin:10px 12px 0;background:#fff8e0;border:1px solid #f0c040;border-radius:var(--radius-sm);padding:9px 12px;font-size:12px;color:#7a5000;display:none}
.expiry-warn.visible{display:block}
.elargi-banner{margin:10px 12px;background:#eef5fc;border:1px solid #9dc1e6;border-radius:var(--radius-sm);padding:9px 12px;font-size:12px;color:#1c4a73;line-height:1.55}
.elargi-retour{margin-left:6px;background:#fff;border:1px solid #9dc1e6;border-radius:6px;padding:3px 8px;font-size:11px;color:#1c4a73;cursor:pointer}
.plus-attente{display:block;width:calc(100% - 24px);margin:6px 12px 12px;background:var(--sand);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:12px;color:var(--navy);cursor:pointer;text-align:center}
.empty-state{text-align:center;padding:48px 20px;display:none}
.empty-state.visible{display:block}
.empty-icon{font-size:42px;margin-bottom:10px}
.empty-state .empty-title{font-family:'DM Serif Display',serif;font-size:18px;color:var(--navy);margin-bottom:6px}
/* V9.1 — Carte "Depuis toutes les gares" : même langage visuel que les cartes résultats */
.gares-card{background:var(--foam);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin:18px 12px 0}
.gares-card h2{font-family:'DM Serif Display',serif;font-size:17px;color:var(--navy);margin:0 0 8px}
.gares-card p{font-size:13px;line-height:1.6;color:var(--text);margin:0 0 8px}
.gares-card .gares-villes{font-size:12px;color:var(--soft);margin:0}
.gares-card a{color:var(--navy)}
.empty-state p{font-size:13px;color:var(--soft);line-height:1.6;margin-bottom:18px}
.empty-ctas{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:380px;margin:0 auto}
.empty-cta{padding:9px 8px;background:var(--foam);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--navy);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;line-height:1.3;text-align:center}
.empty-cta:hover{border-color:var(--ocean);background:#f0f6ff;color:var(--ocean)}
.empty-contact{font-size:12px;color:var(--soft);margin-top:18px}
.empty-contact a{color:var(--ocean);text-decoration:underline}
#loading{text-align:center;padding:40px 20px;display:none;color:var(--soft);font-size:13px}
#loading.visible{display:block}
.spinner{display:inline-block;width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--ocean);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:8px}
@keyframes spin{to{transform:rotate(360deg)}}
.seo-section{background:var(--foam);border-top:1px solid var(--border);padding:32px 0 20px}
.seo-inner{max-width:600px;margin:0 auto;padding:0 16px}
.seo-inner h1{font-family:'DM Serif Display',serif;font-size:20px;color:var(--navy);margin-bottom:12px;line-height:1.3}
.seo-inner .lead{font-family:'DM Serif Display',serif;font-style:italic;font-size:15px;color:var(--ocean);margin-bottom:14px;line-height:1.4}
.seo-inner h2{font-family:'DM Serif Display',serif;font-size:16px;color:var(--navy);margin:20px 0 8px;line-height:1.3}
.seo-inner p{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:10px}
.seo-inner a{color:var(--ocean);text-decoration:none;border-bottom:1px solid var(--oceans)}
.seo-inner a:hover{color:var(--navy)}
.seo-inner details{background:var(--sand);border:0.5px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden}
.seo-inner summary{padding:10px 12px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}
.seo-inner summary::before{content:'▸';color:var(--soft);font-size:11px;transition:transform .2s}
.seo-inner details[open] summary::before{transform:rotate(90deg)}
.seo-inner details p{padding:0 12px 10px;margin:0;font-size:12px;color:var(--soft);line-height:1.6}
.seo-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 18px}
.seo-card{display:flex;align-items:flex-start;gap:8px;background:var(--sand);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 11px;text-decoration:none;border-bottom:none;transition:all .15s}
.seo-card:hover{background:var(--foam);border-color:var(--ocean);box-shadow:var(--shadow);transform:translateY(-1px)}
.seo-card-emoji{font-size:18px;flex-shrink:0;line-height:1.2}
.seo-card-body{flex:1;min-width:0}
.seo-card-title{display:block;font-size:12px;font-weight:600;color:var(--navy);margin-bottom:2px;line-height:1.3}
.seo-card-teaser{display:block;font-size:11px;color:var(--soft);line-height:1.4}.seo-card-center{grid-column:1 / -1;justify-self:center;max-width:50%}
.seo-table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0 14px;background:var(--foam);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.seo-table th{text-align:left;padding:6px 8px;background:var(--sand2);color:var(--soft);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;border-bottom:1px solid var(--border)}
.seo-table td{padding:7px 8px;color:var(--text);border-bottom:1px solid var(--border);line-height:1.4}
.seo-table td:first-child{font-weight:500;color:var(--navy)}
.seo-table tr:last-child td{border-bottom:none}
@media(max-width:380px){.card-times{font-size:18px}.action-btn{font-size:10px;padding:8px 2px}.corresp-line{gap:3px}.cbtn{padding:3px 7px;font-size:10px}.seo-cards{grid-template-columns:1fr}}
