/* GÉNÉRÉ par outils-portee-css.py depuis v6.css : chaque sélecteur est limité à la zone .ffgp du parcours. Ne pas modifier à la main. */
.ffgp{letter-spacing:normal;line-height:normal}
.ffgp :where(*),.ffgp :where(*)::before,.ffgp :where(*)::after{margin:revert;padding:revert;border:revert}
.ffgp :where(h1,h2,h3,h4,h5,h6){letter-spacing:normal}
.ffgp :where(a){text-decoration:revert}
.ffgp :where(img){display:revert}
.ffgp :where(ul,ol){list-style:revert}
.ffgp :where(button){background:revert}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('/assets/fonts/dmsans/dmsans-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:300 700;font-display:swap;src:url('/assets/fonts/dmsans/dmsans-italic.woff2') format('woff2')}
@font-face{font-family:'DM Sans Fallback';src:local('Arial');size-adjust:90.66%;ascent-override:110.3%;descent-override:34.47%;line-gap-override:0%}
@font-face{font-family:'Plus Jakarta Sans Fallback';src:local('Arial');size-adjust:104%;ascent-override:102.16%;descent-override:24.04%;line-gap-override:0%}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/plusjakartasans/plusjakartasans-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/plusjakartasans/plusjakartasans-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
.ffgp{--ink:#252039;--muted:#625c6e;--violet:#604184;--green:#175e47;--line:#e1dae8;--shadow:0 12px 35px #33213d12;--accent:#175e47;--pale:#e8f3ee;--bright:#b2e3c9;--heading:'Plus Jakarta Sans','Plus Jakarta Sans Fallback',sans-serif;--text:'DM Sans','DM Sans Fallback',sans-serif}
.ffgp, .ffgp *{box-sizing:border-box}
.ffgp{margin:0;background:#fbfafc;color:var(--ink);font:17px/1.7 var(--text);-webkit-font-smoothing:antialiased}
.ffgp button, .ffgp input, .ffgp select{font:inherit;color:inherit}
.ffgp button, .ffgp a, .ffgp summary, .ffgp input, .ffgp select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ffgp button, .ffgp summary{cursor:pointer}
.ffgp button:disabled{cursor:default}
.ffgp h1, .ffgp h2, .ffgp h3, .ffgp h4, .ffgp p{margin:0}
.ffgp h1, .ffgp h2, .ffgp h3, .ffgp h4, .ffgp button, .ffgp .brand{font-family:var(--heading)}
.ffgp h1, .ffgp h2, .ffgp h3, .ffgp h4{font-weight:800}
.ffgp p{max-width:72ch}
.ffgp a{color:inherit;text-underline-offset:4px}
.ffgp a:hover{color:var(--accent)}
.ffgp :is(a,button,summary,select,input):focus-visible{outline:3px solid #8055bc;outline-offset:4px}
.ffgp img{max-width:100%}
.ffgp [hidden]{display:none!important}
.ffgp ::selection{background:#dcc9f6}
.ffgp .wrap{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.ffgp .prototype{background:#eee6f5;color:#604975;font-size:10px;text-align:center;padding:4px 16px;font-weight:600;letter-spacing:.2px}
.ffgp .top{background:#fff;border-bottom:1px solid var(--line)}
.ffgp .top .wrap{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.ffgp .brand{font-weight:800;letter-spacing:-.6px;line-height:1.25;font-size:16px;text-decoration:none}
.ffgp .brand span{display:block;font:700 10px var(--text);color:var(--accent);letter-spacing:1.6px;margin-top:5px}
.ffgp .contact{font-size:13px;text-decoration:none}
.ffgp .contact strong{font-weight:500;color:var(--muted);margin-right:8px}
.ffgp .fil{display:flex;flex-wrap:wrap;gap:5px 10px;padding:21px 0;color:var(--muted);font-size:12px}
.ffgp .fil i{font-style:normal;color:#998b9f}
.ffgp .fil span[aria-current]{color:var(--ink);font-weight:600}
.ffgp .hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.16fr);column-gap:50px;align-items:start;padding:37px 35px 35px;background:radial-gradient(ellipse at 100% 20%,#80629838,transparent 65%),linear-gradient(125deg,#f5f0fa,#edf5ef);border:1px solid #e9e1ed;border-radius:28px}
.ffgp .identity{grid-column:1;grid-row:1;position:relative}
.ffgp .course-mark{display:flex;align-items:center;gap:13px;margin-bottom:23px}
.ffgp .course-mark img{width:38px;height:38px;object-fit:contain}
.ffgp .eyebrow{font:800 11px/1.5 var(--text);letter-spacing:2px;text-transform:uppercase;color:var(--accent)}
.ffgp .identity h1{font-size:28px;line-height:1.2;letter-spacing:-1px;margin:0 0 28px}
.ffgp .identity h1 span{display:block;font-size:clamp(48px,4.6vw,68px);letter-spacing:-2.8px;color:var(--accent);margin-top:8px;line-height:1.08}
.ffgp .location-card{background:var(--pale);border:1px solid color-mix(in srgb,var(--accent) 18%,white);border-radius:20px;padding:17px 18px;box-shadow:var(--shadow)}
.ffgp .location-card .place-line{border-left:3px solid var(--bright);padding-left:14px;font-size:14px;line-height:1.55;color:var(--ink)}
.ffgp .place-line strong{display:block;font-size:12px;color:var(--accent);font-weight:700;margin-bottom:5px}
.ffgp .selected-address{display:block}
.ffgp .selected-address br{display:none}
.ffgp .identity-links{display:flex;flex-wrap:wrap;gap:10px 23px;margin:15px 0 0;font-size:12px;font-weight:650}
.ffgp .map-card{grid-column:1;grid-row:2;align-self:start;margin-top:24px;background:var(--pale);border:1px solid color-mix(in srgb,var(--accent) 18%,white);border-radius:25px;overflow:hidden;box-shadow:var(--shadow)}
.ffgp .map-card figure{margin:0}
.ffgp .map-frame{min-height:252px;position:relative}
.ffgp .map-card iframe{position:relative;z-index:1;display:block;width:100%;height:252px;border:0;background:transparent}
.ffgp .map-fallback{position:absolute;inset:0;margin:0;padding:25px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:8px;color:var(--muted);font-size:12px}
.ffgp .map-fallback b{color:var(--accent);font-family:var(--heading);font-weight:700;font-size:15px;line-height:1.45}
.ffgp .map-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 17px;background:var(--pale);font-size:12px}
.ffgp .map-card figcaption span{font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:800;color:var(--accent)}
.ffgp .map-card figcaption a{font-weight:700}
.ffgp #map{scroll-margin-top:28px}
.ffgp .reservation{grid-column:2;grid-row:1/3;min-width:0;background:#fff;border:1px solid var(--line);border-radius:25px;padding:25px;box-shadow:var(--shadow)}
.ffgp .panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.ffgp .panel-top h2{font-size:21px;letter-spacing:-.7px;line-height:1.3}
.ffgp .panel-top>span{font-size:9px;letter-spacing:1px;color:var(--accent);font-weight:800;white-space:nowrap}
.ffgp .offers{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ffgp .offers legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ffgp .offer{position:relative;display:flex;flex-direction:column;gap:6px;padding:13px 14px;border:1px solid #ded4e6;border-radius:17px;background:#f7f3fb;cursor:pointer;min-width:0;transition:background .15s,border-color .15s,box-shadow .15s}
.ffgp .offer input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ffgp .offer:has(input:focus-visible){outline:3px solid #8055bc;outline-offset:3px}
.ffgp .offer:has(input:checked){background:var(--pale);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ffgp .offer-name{display:flex;align-items:center;justify-content:space-between;gap:5px;font:800 13px/1.35 var(--heading);letter-spacing:-.3px}
.ffgp .radio-dot{width:14px;height:14px;border:1px solid #b2a4bf;border-radius:50%;flex-shrink:0;background:#fff}
.ffgp .offer input:checked~.offer-name .radio-dot{border:4px solid var(--accent)}
.ffgp .offer-price{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
.ffgp .offer-price b{white-space:nowrap;font:800 22px/1.2 var(--heading);letter-spacing:-1px}
.ffgp .offer-price small{font-size:11px;color:var(--muted);white-space:nowrap}
.ffgp .offer-composition{font-size:12px;line-height:1.5;color:var(--muted)}
.ffgp .offer input:checked~.offer-composition{color:#305945}
.ffgp .included{font-size:11px;color:var(--muted);margin:12px 0 17px}
.ffgp .included b{font-weight:600;color:var(--ink)}
.ffgp .week .field-label{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ffgp .field-label{display:block;font-size:13px;font-weight:700;margin:0 0 6px}
.ffgp .field-label span{font-weight:400;font-size:11px;color:var(--muted)}
.ffgp .select{width:100%;min-height:48px;max-width:100%;padding:11px 13px;font:500 14px/1.5 var(--text);border:1px solid #c9b9d7;border-radius:12px;background:#fff;color:var(--ink)}
.ffgp .week-help{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 16px}
.ffgp .week-help strong{font-weight:600;color:var(--ink)}
.ffgp .distance-start{border:1px solid var(--line);border-radius:12px;background:#f3edf8;color:var(--violet);padding:12px 14px;margin:10px 0;font-size:13px}
.ffgp .purchase-line{display:flex;align-items:baseline;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:12px;margin:14px 0 12px}
.ffgp .purchase-line .selected-title{font-size:12px;color:var(--muted)}
.ffgp .purchase-line .selected-title b{font-weight:700;color:var(--ink)}
.ffgp .purchase-line strong{font:800 28px/1.2 var(--heading);color:var(--ink);letter-spacing:-1px;white-space:nowrap}
.ffgp .purchase-line small{font-size:10px;display:block;color:var(--muted)}
.ffgp .cta{border:1px solid transparent;border-radius:99px;background:var(--violet);color:#fff;padding:15px 23px;min-height:51px;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;font:700 14px/1.45 var(--heading);text-align:left;transition:box-shadow .18s,background .18s}
.ffgp .cta:hover{background:#50346e;box-shadow:0 8px 24px #35234b22}
.ffgp .cta>span[aria-hidden]{font-size:20px;line-height:1}
.ffgp .reassure{color:var(--muted);font-size:11px;text-align:center;margin-top:10px}
.ffgp .reassure b{color:var(--ink);font-weight:500}
.ffgp .offer-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ffgp .distance-mode .location-card{background:#f3edf8;border-color:var(--line)}
.ffgp .distance-mode .place-line{border-color:#dcc9f6}
.ffgp .distance-mode .place-line strong{color:var(--violet)}
.ffgp .assurances{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:27px 0;border-bottom:1px solid var(--line)}
.ffgp .assurances p{font-size:13px;color:var(--muted)}
.ffgp .assurances strong{display:block;color:var(--ink);font-size:14px;font-weight:700;margin-bottom:2px}
.ffgp .section-title{font-size:clamp(27px,3vw,39px);letter-spacing:-1.1px;line-height:1.25;font-weight:800}
.ffgp .reading{display:grid;grid-template-columns:245px minmax(0,1fr);gap:44px;padding:58px 0}
.ffgp .reading-aside{position:sticky;top:28px;align-self:start}
.ffgp .reading-aside .eyebrow{margin-bottom:16px}
.ffgp .reading-aside h2{font-size:32px}
.ffgp .sommaire{display:flex;flex-direction:column;gap:10px;margin-top:27px;font-size:13px}
.ffgp .sommaire a{text-decoration:none;color:var(--muted)}
.ffgp .sommaire a:hover{text-decoration:underline}
.ffgp .sommaire .book-again{color:var(--accent);font-weight:700;margin-top:8px}
.ffgp .chap{margin-bottom:13px;scroll-margin-top:28px;border:1px solid var(--line);background:#f3edf8;border-radius:22px;overflow:hidden}
.ffgp .chap:nth-child(2n){background:#f7f3fb}
.ffgp .lecture>summary{display:flex;align-items:center;gap:16px;padding:23px 25px;list-style:none;min-height:80px}
.ffgp .lecture>summary::-webkit-details-marker{display:none}
.ffgp .lecture>summary h2{font-size:21px;letter-spacing:-.5px;line-height:1.3}
.ffgp .chap-num{width:25px;font-size:12px;font-weight:700;color:var(--accent);flex-shrink:0}
.ffgp .chap-action{margin-left:auto;font-size:25px;font-weight:400;line-height:1;color:var(--violet)}
.ffgp .chap-action:before{content:'+'}
.ffgp .lecture[open] .chap-action:before{content:'−'}
.ffgp .corps{font:16px/1.8 var(--text);padding:0 25px 26px 66px;color:var(--muted);overflow-wrap:anywhere;max-width:72ch}
.ffgp .corps p{margin-bottom:16px}
.ffgp .corps h3, .ffgp .corps h4{font-size:17px;line-height:1.45;letter-spacing:-.4px;margin:23px 0 11px;color:var(--ink)}
.ffgp .corps h3:first-child{margin-top:0}
.ffgp .corps ul, .ffgp .corps ol{padding-left:19px;margin:14px 0 22px}
.ffgp .corps li{margin:6px 0}
.ffgp .corps a{color:var(--violet)}
.ffgp .corps table{width:100%;border-collapse:collapse;font-size:13px}
.ffgp .corps th, .ffgp .corps td{padding:8px 4px;border-bottom:1px solid var(--line)}
.ffgp .corps details{margin:14px 0}
.ffgp .nearby{padding:35px;background:#efe7f7;border:1px solid var(--line);border-radius:25px;margin-bottom:26px;box-shadow:var(--shadow)}
.ffgp .nearby-header{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:30px}
.ffgp .nearby-header .eyebrow{margin-bottom:13px}
.ffgp .nearby-header p{font-size:15px;max-width:300px;color:var(--muted)}
.ffgp .proches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ffgp .proche{background:#fff9;border:1px solid #dacfe5;padding:18px;border-radius:18px;min-width:0}
.ffgp .km{font-size:11px;display:block;font-weight:600;color:var(--violet);margin-bottom:12px}
.ffgp .proche b{display:block;font-family:var(--heading);font-weight:800;font-size:15px;letter-spacing:-.4px;line-height:1.4}
.ffgp .proche i{display:block;font-family:var(--text);font-style:normal;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}
.ffgp .proche p{font-size:13px;line-height:1.5;min-height:39px;margin:12px 0;color:var(--muted)}
.ffgp .proche a{font-size:12px;font-weight:700;color:var(--violet)}
.ffgp .distances{font-size:11px;color:var(--muted);margin-top:20px}
.ffgp .national{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px;background:var(--pale);padding:35px;border:1px solid color-mix(in srgb,var(--accent) 18%,white);border-radius:25px;box-shadow:var(--shadow)}
.ffgp .national .eyebrow{margin-bottom:16px}
.ffgp .national h2{font-size:clamp(27px,3vw,39px);line-height:1.25;letter-spacing:-1.1px}
.ffgp .national p{font-size:15px;color:var(--muted);margin:15px 0}
.ffgp .national select{max-width:330px}
.ffgp .national .map-source{font-size:11px;margin-top:25px}
.ffgp .france svg{display:block;width:100%;height:auto;max-height:390px;touch-action:pan-y}
.ffgp .france .terre{fill:#fff;stroke:var(--bright);stroke-width:1.3;stroke-linejoin:round}
.ffgp .france .pt{fill:var(--accent);opacity:.45}
.ffgp .france .pt.proche{opacity:1}
.ffgp .france .pt.vu, .ffgp .france .pt.ici{fill:var(--violet);opacity:1}
.ffgp .france .pt.ici{stroke:#fff;stroke-width:2.5}
.ffgp .france .halo{fill:none;stroke:var(--violet);stroke-width:1.5;opacity:.45}
.ffgp .france .lib{font:800 17px var(--heading);fill:var(--violet);paint-order:stroke;stroke:#fff;stroke-width:5px}
.ffgp .other{padding:35px 0;display:flex;gap:30px;align-items:center;border-bottom:1px solid var(--line)}
.ffgp .other h2{font-size:17px;letter-spacing:-.4px}
.ffgp .pastilles{display:flex;flex-wrap:wrap;gap:10px}
.ffgp .pastilles a{font-size:12px;text-decoration:none;background:#f3edf8;border:1px solid var(--line);color:var(--violet);border-radius:99px;padding:9px 14px;font-weight:650}
.ffgp .footer{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);padding:25px 0 35px}
.ffgp .barre{display:none;position:fixed;z-index:20;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px #33213d12;padding:10px 16px calc(10px + env(safe-area-inset-bottom));align-items:center;gap:12px}
.ffgp .barre.is-hidden{visibility:hidden;pointer-events:none}
.ffgp .barre .t{flex:1;min-width:0}
.ffgp .barre .t b{display:block;font:800 20px/1.2 var(--heading);letter-spacing:-.7px}
.ffgp .barre .t span{display:block;font-size:10px;line-height:1.4;color:var(--muted);margin-top:2px}
.ffgp .barre .cta{width:auto;min-height:44px;font-size:11px;padding:11px 16px}
.ffgp dialog{border:1px solid var(--line);border-radius:25px;background:#fbfafc;color:var(--ink);padding:28px;max-width:470px;width:calc(100% - 32px);box-shadow:var(--shadow)}
.ffgp dialog::backdrop{background:#30213f99}
.ffgp dialog h2{font-size:28px;line-height:1.25;letter-spacing:-1px;margin:13px 0}
.ffgp dialog p{font-size:16px;line-height:1.7;margin:10px 0}
.ffgp dialog small{font-size:12px;color:var(--muted)}
.ffgp dialog .cta{margin-top:20px}
.ffgp .no-script{padding:12px 14px;background:#f3edf8;border:1px solid var(--line);border-radius:12px;font-size:13px;margin-bottom:15px}
@media(max-width:1100px){.ffgp .wrap{width:calc(100% - 48px)}
.ffgp .hero{padding:26px;column-gap:28px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.ffgp .identity h1{font-size:25px}
.ffgp .identity h1 span{font-size:54px}
.ffgp .reservation{padding:21px}
.ffgp .reading{grid-template-columns:220px minmax(0,1fr);gap:30px}
.ffgp .corps{padding-left:25px}
.ffgp .proches{grid-template-columns:1fr 1fr}
.ffgp .proche p{min-height:0}}
@media(max-width:760px){body.ffgp-corps{padding-bottom:85px}
.ffgp .wrap{width:calc(100% - 32px)}
.ffgp .prototype{font-size:9px;padding:3px 8px;line-height:1.4}
.ffgp .top .wrap{min-height:52px;gap:10px}
.ffgp .brand{font-size:12px;letter-spacing:-.3px}
.ffgp .brand span{font-size:8px;letter-spacing:1.1px;margin-top:3px}
.ffgp .contact{font-size:11px}
.ffgp .contact strong{display:none}
.ffgp .fil{font-size:10px;gap:4px 7px;padding:12px 0}
.ffgp .hero{display:flex;flex-direction:column;gap:0;padding:17px 13px;border-radius:24px}
.ffgp .identity{width:100%}
.ffgp .course-mark{position:absolute;right:0;top:4px;margin:0}
.ffgp .course-mark img{width:31px;height:31px}
.ffgp .course-mark .eyebrow{display:none}
.ffgp .identity h1{font-size:18px;letter-spacing:-.65px;margin:0 0 12px;line-height:1.3;padding-right:35px}
.ffgp .identity h1 span{font-size:49px;letter-spacing:-2px;margin-top:2px;line-height:1.08}
.ffgp .location-card{padding:9px 12px;border-radius:16px;box-shadow:none}
.ffgp .location-card .place-line{font-size:12px;line-height:1.45;padding-left:10px}
.ffgp .place-line strong{font-size:11px;line-height:1.4;margin-bottom:3px}
.ffgp .identity-links{font-size:10px;line-height:1.5;margin:9px 0 14px;gap:17px}
.ffgp .reservation{width:100%;order:2;padding:15px 13px;border-radius:20px;box-shadow:var(--shadow)}
.ffgp .panel-top{margin-bottom:11px;gap:8px}
.ffgp .panel-top h2{font-size:17px;letter-spacing:-.6px;line-height:1.3}
.ffgp .panel-top>span{font-size:8px;letter-spacing:.6px}
.ffgp .offers{gap:7px}
.ffgp .offer{padding:10px;gap:5px;border-radius:14px}
.ffgp .offer-name{font-size:12px;letter-spacing:-.25px}
.ffgp .radio-dot{width:12px;height:12px}
.ffgp .offer-price{gap:7px}
.ffgp .offer-price b{font-size:21px;letter-spacing:-.7px}
.ffgp .offer-price small{font-size:10px}
.ffgp .offer-composition{font-size:12px;line-height:1.4}
.ffgp .included{font-size:10px;line-height:1.5;margin:9px 0 12px}
.ffgp .field-label{font-size:12px;margin-bottom:5px}
.ffgp .field-label span{font-size:10px}
.ffgp .select{font-size:13px;padding:10px;min-height:44px}
.ffgp .week-help{font-size:11px;line-height:1.5;margin:7px 0 10px}
.ffgp .purchase-line{padding-top:9px;margin:10px 0}
.ffgp .purchase-line .selected-title{font-size:11px}
.ffgp .purchase-line strong{font-size:23px}
.ffgp .purchase-line small{font-size:9px}
.ffgp .cta{font-size:12px;padding:13px 16px;min-height:47px}
.ffgp .reassure{font-size:10px;margin-top:7px;line-height:1.4}
.ffgp .map-card{order:3;width:100%;margin-top:17px;border-radius:22px}
.ffgp .map-card iframe{height:210px}
.ffgp .map-frame{min-height:210px}
.ffgp .map-card figcaption{padding:12px 14px;font-size:11px}
.ffgp .map-card figcaption span{font-size:9px}
.ffgp .map-fallback{font-size:11px}
.ffgp .map-fallback b{font-size:13px}
.ffgp .assurances{grid-template-columns:1fr;gap:15px;padding:22px 3px}
.ffgp .assurances p{font-size:12px;border-left:3px solid var(--bright);padding-left:12px}
.ffgp .assurances strong{font-size:13px}
.ffgp .reading{display:block;padding:36px 0}
.ffgp .reading-aside{position:static}
.ffgp .reading-aside h2{font-size:29px}
.ffgp .reading-aside .eyebrow{font-size:10px;margin-bottom:10px}
.ffgp .sommaire{flex-direction:row;flex-wrap:wrap;gap:8px 16px;font-size:11px;margin:18px 0 24px}
.ffgp .sommaire a{text-decoration:underline}
.ffgp .sommaire .book-again{margin:0}
.ffgp .chap{border-radius:20px;margin-bottom:10px}
.ffgp .lecture>summary{gap:10px;padding:19px 16px;min-height:70px}
.ffgp .lecture>summary h2{font-size:18px;letter-spacing:-.5px}
.ffgp .chap-num{font-size:11px;width:20px}
.ffgp .corps{font-size:15px;line-height:1.8;padding:0 16px 22px}
.ffgp .corps h3{font-size:16px}
.ffgp .section-title{font-size:28px;letter-spacing:-1px}
.ffgp .nearby{padding:25px 18px;border-radius:22px;margin-bottom:22px}
.ffgp .nearby-header{display:block;margin-bottom:22px}
.ffgp .nearby-header .eyebrow{font-size:10px;margin-bottom:11px}
.ffgp .nearby-header p{font-size:13px;margin-top:13px}
.ffgp .proches{gap:10px;grid-template-columns:1fr 1fr}
.ffgp .proche{padding:13px 11px;border-radius:16px}
.ffgp .km{font-size:10px;margin-bottom:10px}
.ffgp .proche b{font-size:13px;overflow-wrap:anywhere;letter-spacing:-.4px}
.ffgp .proche i{font-size:11px}
.ffgp .proche p{font-size:12px;margin:10px 0;min-height:36px}
.ffgp .proche a{font-size:11px}
.ffgp .distances{font-size:10px;line-height:1.6;margin-top:17px}
.ffgp .national{display:flex;flex-direction:column;gap:12px;padding:25px 20px;border-radius:22px}
.ffgp .national h2{font-size:29px}
.ffgp .national p{font-size:14px}
.ffgp .national .map-source{font-size:10px}
.ffgp .france{width:100%}
.ffgp .france svg{max-height:300px}
.ffgp .other{display:block;padding:27px 0}
.ffgp .other h2{font-size:16px;margin-bottom:15px}
.ffgp .pastilles{gap:8px}
.ffgp .pastilles a{font-size:11px;padding:8px 12px}
.ffgp .footer{font-size:11px;padding:22px 0 27px}
.ffgp .barre{display:flex}}
@media(max-width:760px){.ffgp .purchase-line{display:none}}
@media(max-width:359px){.ffgp .wrap{width:calc(100% - 24px)}
.ffgp .hero{padding:14px 10px}
.ffgp .identity h1 span{font-size:44px;letter-spacing:-1.8px}
.ffgp .brand{font-size:11px}
.ffgp .contact{font-size:10px}
.ffgp .reservation{padding:13px 10px}
.ffgp .panel-top h2{font-size:15px}
.ffgp .panel-top>span{font-size:7px}
.ffgp .offer{padding:8px}
.ffgp .offer-name{font-size:11px}
.ffgp .offer-price b{font-size:19px}
.ffgp .offer-price small{font-size:10px}
.ffgp .offer-composition{font-size:11px;line-height:1.45}
.ffgp .location-card{padding:9px}
.ffgp .cta{font-size:11px;padding:12px 13px}
.ffgp .barre{padding-inline:12px}
.ffgp .barre .cta{font-size:10px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.ffgp, .ffgp *{transition:none!important}}
@media print{.ffgp .prototype, .ffgp .barre, .ffgp .cta, .ffgp .sommaire, .ffgp dialog{display:none!important}
.ffgp .wrap{width:auto}
.ffgp .hero, .ffgp .reading{display:block}
.ffgp .reservation{margin-top:20px}
.ffgp .map-card{display:none}
.ffgp .corps{max-width:none}}
.ffgp .v6-note{background:#eee6f5;color:#604975;font-size:11px;font-weight:600;letter-spacing:.2px;padding:5px 16px;display:flex;gap:6px 16px;flex-wrap:wrap;justify-content:center;text-align:center}
.ffgp .v6-note a{color:#604184;font-weight:800}
.ffgp .retour{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--violet);text-decoration:none;padding:10px 0}
.ffgp .retour:hover{text-decoration:underline}
.ffgp .page{padding:18px 0 72px}
.ffgp .kicker{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.ffgp .titre-page{font-size:clamp(28px,4vw,44px);line-height:1.12;letter-spacing:-1.4px;margin:0 0 10px}
.ffgp .chapo{color:var(--muted);font-size:17px;line-height:1.7;max-width:62ch}
.ffgp .carte{background:#fff;border:1px solid var(--line);border-radius:25px;padding:28px;box-shadow:var(--shadow)}
.ffgp .carte.pale{background:#f3edf8;box-shadow:none}
.ffgp .carte.verte{background:var(--pale);border-color:color-mix(in srgb,var(--accent) 18%,white);box-shadow:none}
.ffgp .deux-col{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:960px){.ffgp .deux-col{grid-template-columns:420px minmax(0,1fr);align-items:start}
.ffgp .deux-col .ticket{position:sticky;top:18px}}
.ffgp .mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#efe8f5;border-radius:99px;padding:5px;margin:0 0 14px}
.ffgp .mode button{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;font-family:var(--heading);font-weight:700;font-size:14px;line-height:1.25;padding:11px 10px;border-radius:99px;color:var(--muted)}
.ffgp .mode button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 6px 18px #33213d1f}
.ffgp .mode button:focus-visible{outline:3px solid #8055bc;outline-offset:2px}
.ffgp .mode-question{font-family:var(--heading);font-weight:800;font-size:15px;margin:0 0 8px}
.ffgp .offers.par-mode{grid-template-columns:1fr 1fr}
.ffgp .alerte{border:1px solid #e6c9a8;background:#fdf4e7;border-radius:18px;padding:14px 16px;font-size:15px;line-height:1.55;margin:0 0 16px}
.ffgp .alerte b{display:block;font-family:var(--heading);font-size:16px;margin-bottom:2px}
.ffgp .alerte.erreur{border-color:#e7b9b6;background:#fdeeed;color:#7a1f1b}
.ffgp .lien{color:var(--violet);font-weight:700}
.ffgp .ticket{font-variant-numeric:tabular-nums;border-top:6px solid var(--violet);border-radius:25px}
.ffgp .ticket .tete{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.ffgp .ticket .logos{display:flex;gap:3px;flex:0 0 auto}
.ffgp .ticket .logos img{width:34px;height:34px;object-fit:contain}
.ffgp .ticket .logos.trois img{width:22px;height:22px}
.ffgp .ticket .petit{font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.2px}
.ffgp .ticket .t{font-family:var(--heading);font-weight:800;font-size:17px;line-height:1.3;display:block}
.ffgp .ticket .ligne{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);font-size:14.5px;line-height:1.45}
.ffgp .ticket .ligne small{display:block;color:var(--muted);font-size:13px}
.ffgp .ticket .ligne>span:last-child{white-space:nowrap;flex-shrink:0;color:var(--accent);font-weight:700;font-size:13px}
.ffgp .ticket .tot{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px;font-family:var(--heading);font-weight:800}
.ffgp .ticket .tot .prix{font-size:30px;letter-spacing:-1px;color:var(--ink)}
.ffgp .ticket .sous{font-size:13px;color:var(--muted);margin-top:4px}
.ffgp .ticket .actions{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:14px}
.ffgp .champs{display:grid;gap:16px;grid-template-columns:1fr;margin-top:18px}
@media(min-width:640px){.ffgp .champs.deux{grid-template-columns:1fr 1fr}
.ffgp .champ.plein{grid-column:1/-1}}
.ffgp .champ label{display:block;font-weight:700;font-size:14.5px;margin-bottom:6px}
.ffgp .champ label span{font-weight:500;color:var(--muted)}
.ffgp .champ input, .ffgp .champ textarea, .ffgp .champ select{width:100%;font:inherit;font-size:16px;padding:13px 15px;border:1.5px solid var(--line);border-radius:14px;background:#fff;color:var(--ink)}
.ffgp .champ textarea{min-height:110px;resize:vertical}
.ffgp .champ input:focus, .ffgp .champ textarea:focus, .ffgp .champ select:focus{outline:3px solid #8055bc55;border-color:var(--violet)}
.ffgp .champ .aide{font-size:13px;color:var(--muted);margin-top:5px}
.ffgp .champ.faux input, .ffgp .champ.faux textarea{border-color:#b3261e;background:#fff8f7}
.ffgp .champ .msg{display:none;font-size:13.5px;font-weight:700;color:#b3261e;margin-top:6px}
.ffgp .champ.faux .msg{display:block}
.ffgp .case{display:flex;gap:11px;align-items:flex-start;background:#f3edf8;border-radius:16px;padding:14px 16px;margin-top:18px;font-size:14.5px;line-height:1.5}
.ffgp .case input{width:20px;height:20px;margin-top:2px;flex:0 0 auto;accent-color:var(--violet)}
.ffgp .case.faux{outline:2px solid #b3261e}
.ffgp .cta.plein{width:100%;margin-top:18px}
.ffgp .suite{font-size:13.5px;color:var(--muted);text-align:center;margin-top:10px}
.ffgp .zone-paiement{border:1.5px dashed var(--line);border-radius:18px;padding:16px;background:#faf7fc;margin-top:14px}
.ffgp .zone-paiement b{font-family:var(--heading)}
.ffgp .recap-coords{display:grid;gap:4px;font-size:15px;margin-top:10px}
.ffgp .recap-coords span{color:var(--muted)}
.ffgp details.changer{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.ffgp details.changer summary{font-weight:700;color:var(--violet);font-size:14.5px}
.ffgp details.changer .offers{margin-top:12px}
.ffgp .recherche{position:relative;margin-top:16px}
.ffgp .recherche input{width:100%;font:inherit;font-size:17px;padding:16px 18px 16px 48px;border:2px solid var(--line);border-radius:99px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23604184' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 18px 50%}
.ffgp .recherche input:focus{outline:3px solid #8055bc55;border-color:var(--violet)}
.ffgp .resultats{list-style:none;margin:8px 0 0;padding:6px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);max-height:340px;overflow:auto}
.ffgp .resultats li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 14px;border-radius:14px;cursor:pointer;font-size:15.5px;line-height:1.35}
.ffgp .resultats li small{display:block;color:var(--muted);font-size:13px}
.ffgp .resultats li .etq{flex:0 0 auto;font-size:11.5px;font-weight:800;letter-spacing:.4px;color:var(--accent);background:var(--pale);border-radius:99px;padding:4px 9px}
.ffgp .resultats li .etq.confirmer{color:#7a5a12;background:#fbf0d8}
.ffgp .resultats li[aria-selected=true], .ffgp .resultats li:hover{background:#f3edf8}
.ffgp .annonce{font-size:13.5px;color:var(--muted);margin-top:8px;min-height:20px}
.ffgp .villes-rapides{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ffgp .villes-rapides button{all:unset;box-sizing:border-box;cursor:pointer;font-size:14px;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px}
.ffgp .villes-rapides button:hover, .ffgp .villes-rapides button:focus-visible{border-color:var(--violet);color:var(--violet)}
.ffgp .issues{display:grid;gap:14px;grid-template-columns:1fr;margin-top:18px}
@media(min-width:760px){.ffgp .issues{grid-template-columns:1fr 1fr}}
.ffgp .issues h3{font-size:18px;margin-bottom:6px}
.ffgp .issues p{font-size:15px;color:var(--muted);line-height:1.6}
.ffgp .bouton{display:inline-flex;justify-content:center;align-items:center;gap:10px;font-family:var(--heading);font-weight:700;font-size:14px;padding:13px 21px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;cursor:pointer;margin-top:12px}
.ffgp .bouton:hover{box-shadow:0 8px 24px #35234b22;color:var(--ink)}
.ffgp .bouton.plein-violet{background:var(--violet);border-color:var(--violet);color:#fff}
.ffgp .grille-entree{display:grid;gap:16px;grid-template-columns:1fr;margin-top:22px}
@media(min-width:820px){.ffgp .grille-entree{grid-template-columns:repeat(3,1fr)}
.ffgp .grille-entree.quatre{grid-template-columns:repeat(4,1fr)}}
.ffgp .entree{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:25px;padding:24px;box-shadow:var(--shadow)}
.ffgp .entree:hover{border-color:var(--violet);color:inherit}
.ffgp .entree .num{font-family:var(--heading);font-weight:800;font-size:12px;letter-spacing:2px;color:var(--accent)}
.ffgp .entree b{font-family:var(--heading);font-size:19px;line-height:1.25;letter-spacing:-.3px}
.ffgp .entree span.d{font-size:14.5px;color:var(--muted);line-height:1.55}
.ffgp .entree .va{margin-top:auto;font-weight:800;font-size:14px;color:var(--violet)}
.ffgp .offre-simple .hero{grid-template-columns:1fr}
@media(min-width:960px){.ffgp .offre-simple .hero{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}}
.ffgp .faits{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:9px;font-size:15.5px;line-height:1.55}
.ffgp .faits li{padding-left:20px;position:relative}
.ffgp .faits li:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ffgp .logos-titre{display:flex;gap:6px;align-items:center}
.ffgp .logos-titre img{width:38px;height:38px;object-fit:contain}
@media(max-width:600px){.ffgp .carte{padding:20px;border-radius:22px}
.ffgp .wrap{width:calc(100% - 32px)}
.ffgp .titre-page{letter-spacing:-1px}}
.ffgp .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ffgp .ticket .ligne.large>span:first-child{flex:0 0 auto;color:var(--muted)}
.ffgp .ticket .ligne.large>span:last-child{white-space:normal;flex-shrink:1;min-width:0;text-align:right;overflow-wrap:anywhere;color:var(--ink);font-weight:600;font-size:14.5px}
@media(max-width:600px){.ffgp .mode button{font-size:13px;padding:10px 6px}
.ffgp .mode-question{font-size:14.5px;margin-bottom:6px}
.ffgp .mode{margin-bottom:12px}
.ffgp .v6-note{padding:4px 12px}}
.ffgp.ville-affinee{ --ink:#17123a; --muted:#5a6472; background:#faf9fc; color:#3a4450; font-size:17px; line-height:1.5; letter-spacing:-.01em; }
.ffgp.ville-affinee :is(h1,h2,h3,h4){ color:var(--ink); }
.ffgp.ville-affinee .eyebrow{ font:700 12.5px/1.5 var(--text); letter-spacing:.1em; }
.ffgp.ville-affinee :is(button,.offer-name,.mode-question){ font-family:var(--text); letter-spacing:normal; }
.ffgp.ville-affinee .brand{ letter-spacing:-.025em; }
.ffgp.ville-affinee .corps{ font-size:17px; line-height:1.7; color:#5a6472; max-width:70ch; }
.ffgp.ville-affinee .corps :is(h3,h4){ font-size:22px; font-weight:800; letter-spacing:-.02em; line-height:1.3; margin-top:28px; }
.ffgp.ville-affinee .corps p{ margin-bottom:19px; }
.ffgp.ville-affinee .corps :is(th,td){ font-size:14px; }
.ffgp.ville-affinee .reading-aside h2{ font-size:36px; line-height:1.12; letter-spacing:-.025em; }
.ffgp.ville-affinee .sommaire{ font-size:14px; line-height:1.5; }
.ffgp.ville-affinee .assurances p{ font-size:14px; line-height:1.6; }
.ffgp.ville-affinee .assurances strong{ font-size:16px; font-weight:600; }
.ffgp.ville-affinee :is(.nearby .section-title,.national h2){ font-size:clamp(29px,3.4vw,41.6px); letter-spacing:-.025em; line-height:1.12; }
.ffgp.ville-affinee :is(.nearby-header p,.national p){ font-size:16px; line-height:1.7; }
.ffgp.ville-affinee .proche b{ font:700 18px/1.35 var(--text); letter-spacing:normal; color:var(--ink); }
.ffgp.ville-affinee .proche :is(i,p,a){ font-size:14px; line-height:1.6; }
.ffgp.ville-affinee :is(.km,.distances,.national .map-source){ font-size:12px; line-height:1.6; }
.ffgp.ville-affinee .barre .t span{ font-size:12px; }
.ffgp.ville-affinee .barre .t b{ font-size:25px; letter-spacing:-.03em; }
.ffgp.ville-affinee .map-card figcaption{ font-size:13px; }
.ffgp.ville-affinee .map-card figcaption span{ font-size:11px; }
.ffgp.ville-affinee .top .wrap{ min-height:56px; }
.ffgp.ville-affinee .fil{ padding:16px 0; }
.ffgp.ville-affinee .hero{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  grid-template-rows:max-content 1fr;
  column-gap:38px; row-gap:0; padding:30px;
  background:radial-gradient(ellipse at 0 0,#eee6f9 0,transparent 70%),linear-gradient(135deg,#f8f5fc,#edf6f0);
  border-color:#e4dfec; border-radius:28px;
}
.ffgp.ville-affinee .identity{ align-self:start; }
.ffgp.ville-affinee .course-mark{ margin:0 0 18px; gap:12px; }
.ffgp.ville-affinee .course-mark img{ width:44px; height:44px; }
.ffgp.ville-affinee .identity h1{ font-size:clamp(34px,3.6vw,48px); line-height:1.08; margin:0; letter-spacing:-.035em; text-wrap:balance; }
.ffgp.ville-affinee .identity h1 span{ font-size:inherit; margin-top:6px; letter-spacing:inherit; line-height:inherit; color:#0b7355; }
.ffgp.ville-affinee .identity-links{ margin:15px 0 0; font-size:15px; font-weight:600; }
.ffgp.ville-affinee .identity-links a{ display:inline-flex; align-items:center; gap:18px; min-height:36px; }
.ffgp.ville-affinee .map-card{ margin-top:24px; border-radius:20px; background:#fff; box-shadow:none; border:1px solid #d5e3dc; }
.ffgp.ville-affinee .location-card{ background:transparent; padding:20px; border:0; border-radius:0; box-shadow:none; }
.ffgp.ville-affinee .location-card .place-line{ border:0; padding:0; font-size:16px; line-height:1.6; }
.ffgp.ville-affinee .place-line strong{ font-size:14px; font-weight:600; margin-bottom:6px; }
.ffgp.ville-affinee .map-frame, .ffgp.ville-affinee .map-card iframe{ min-height:190px; height:190px; }
.ffgp.ville-affinee .map-frame{ background:#edf3ee; border-block:1px solid #dce7df; }
.ffgp.ville-affinee .map-card figcaption{ background:#fff; padding:10px 20px; }
.ffgp.ville-affinee .map-card figcaption a{ min-height:36px; display:inline-flex; align-items:center; }
.ffgp.ville-affinee .plan-lieu summary{ display:none; }
.ffgp.ville-affinee .changer-ville{ display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:10px 20px; border-top:1px solid #dce7df; font-size:13px; font-weight:700; color:var(--green); text-decoration:none; }
.ffgp.ville-affinee .changer-ville:hover{ background:var(--pale); }
.ffgp.ville-affinee .reservation{ padding:24px; border-radius:22px; border-color:#dad0e6; box-shadow:0 12px 32px #30213f09; }
.ffgp.ville-affinee .panel-top{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); margin:0; padding:0; border:0; }
.ffgp.ville-affinee .panel-top h2{ font-size:22px; }
.ffgp.ville-affinee .panel-top>span{ font-size:9px; color:var(--violet); }
.ffgp.ville-affinee .etape-num{ display:inline-grid; place-items:center; flex:0 0 23px; width:23px; height:23px; border-radius:50%; background:#f0eaf6; color:var(--violet); font:700 11px/1 var(--heading); margin-right:8px; vertical-align:middle; }
.ffgp.ville-affinee .mode-question{ display:flex; align-items:center; font-size:16px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.ffgp.ville-affinee .mode{ gap:0; background:#f4f1f7; border:1px solid #e4deeb; padding:4px; border-radius:99px; margin-bottom:14px; }
.ffgp.ville-affinee .mode button{ min-height:42px; padding:9px 12px; font-size:14.5px; font-weight:600; border:0; box-shadow:none; border-radius:99px; background:transparent; }
.ffgp.ville-affinee .mode button[aria-pressed=true]{ color:#fff; background:var(--green); box-shadow:0 2px 5px #123b2522; }
.ffgp.ville-affinee .offers{ gap:10px; }
.ffgp.ville-affinee .offers legend, .ffgp.ville-affinee .semaines-visibles legend{ position:static; width:auto; height:auto; overflow:visible; clip-path:none; margin-bottom:10px; padding:0; font:700 16px/1.5 var(--text); color:var(--ink); letter-spacing:normal; }
.ffgp.ville-affinee .offer{ border-radius:14px; background:#fff; border-color:#ddd6e4; padding:13px; gap:8px; }
.ffgp.ville-affinee .offer:has(input:checked){ border-color:var(--green); background:#eef7f1; box-shadow:inset 0 0 0 1px var(--green); }
.ffgp.ville-affinee .offer-name{ font-size:17px; font-weight:700; color:var(--ink); }
.ffgp.ville-affinee .offer-price{ justify-content:space-between; gap:3px 8px; }
.ffgp.ville-affinee .offer-price b{ font-size:32px; color:var(--ink); letter-spacing:-.03em; }
.ffgp.ville-affinee .offer-price small{ font-size:13px; }
.ffgp.ville-affinee .offer-composition{ font-size:14px; line-height:1.5; }
.ffgp.ville-affinee .included{ margin:9px 0 14px; font-size:12.5px; line-height:1.5; }
.ffgp.ville-affinee .semaines-visibles{ margin:0; padding:0; border:0; min-width:0; }
.ffgp.ville-affinee .semaines-grille{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.ffgp.ville-affinee .semaine-choix{ position:relative; cursor:pointer; border:1px solid #ddd6e4; border-radius:12px; padding:10px 5px; text-align:center; background:#fff; }
.ffgp.ville-affinee .semaine-choix input{ position:absolute; opacity:0; width:1px; height:1px; }
.ffgp.ville-affinee .semaine-choix:has(input:checked){ background:#f0eaf7; border-color:var(--violet); box-shadow:inset 0 0 0 1px var(--violet); color:var(--violet); }
.ffgp.ville-affinee .semaine-choix:has(input:focus-visible){ outline:3px solid #8055bc; outline-offset:3px; }
.ffgp.ville-affinee .semaine-choix small{ display:block; font-size:12px; color:var(--muted); line-height:1.5; }
.ffgp.ville-affinee .semaine-choix b{ display:block; font:600 14px/1.5 var(--text); white-space:normal; }
.ffgp.ville-affinee .autres-semaines{ margin:2px 0 0; }
.ffgp.ville-affinee .autres-semaines summary{ display:flex; align-items:center; justify-content:flex-end; gap:12px; min-height:38px; list-style:none; color:var(--violet); font-size:14px; font-weight:600; text-decoration:none; }
.ffgp.ville-affinee .autres-semaines summary::-webkit-details-marker{ display:none; }
.ffgp.ville-affinee .autres-semaines summary>span{ font-size:18px; text-decoration:none; }
.ffgp.ville-affinee .autres-semaines[open] summary>span{ transform:rotate(45deg); }
.ffgp.ville-affinee .autres-semaines .select{ font-size:16px; }
.ffgp.ville-affinee .week-help{ font-size:12.5px; line-height:1.55; margin:0 0 14px; }
.ffgp.ville-affinee .selection-action{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); align-items:center; column-gap:16px; margin:0 -24px -24px; padding:17px 24px 18px; background:#f5f1f9; border-top:1px solid #e6deed; border-radius:0 0 22px 22px; }
.ffgp.ville-affinee .purchase-line{ display:flex; flex-direction:column-reverse; align-items:flex-start; gap:4px; margin:0; padding:0; border:0; }
.ffgp.ville-affinee .purchase-line .selected-title{ font-size:0; }
.ffgp.ville-affinee .purchase-line .selected-title b{ display:inline; font:600 14px/1.5 var(--text); }
.ffgp.ville-affinee .purchase-line small{ display:inline; font-size:13px; margin-left:7px; }
.ffgp.ville-affinee .purchase-line strong{ font-size:36px; color:var(--ink); letter-spacing:-.03em; }
.ffgp.ville-affinee .selection-action .cta{ font:700 16px/1.4 var(--text); min-height:50px; letter-spacing:normal; background:linear-gradient(110deg,#38254f,#604184); }
.ffgp.ville-affinee .selection-action .cta:hover{ background:#38254f; }
.ffgp.ville-affinee .reassure{ grid-column:1/-1; max-width:none; font-size:12px; line-height:1.5; margin-top:9px; }
.ffgp.ville-affinee .assurances{ padding:23px 0; gap:25px; }
.ffgp.ville-affinee .reading{ padding:44px 0; gap:40px; }
.ffgp.ville-affinee .chap{ background:#fff; border-radius:18px; }
.ffgp.ville-affinee .lecture>summary{ min-height:70px; padding:20px 24px; }
.ffgp.ville-affinee .lecture>summary h2{ font-size:22px; font-weight:700; letter-spacing:-.02em; line-height:1.3; }
.ffgp.ville-affinee .programme-apercu{ padding:24px 25px 12px; background:linear-gradient(120deg,#f2edf8,#f8fbf8); }
.ffgp.ville-affinee .programme-apercu ol{ margin:16px 0 0; padding:0; list-style:none; counter-reset:module; }
.ffgp.ville-affinee .programme-apercu li{ counter-increment:module; display:flex; align-items:baseline; gap:15px; padding:8px 0; border-top:1px solid #e2dce8; font-size:16px; line-height:1.6; }
.ffgp.ville-affinee .programme-apercu li:before{ content:counter(module,decimal-leading-zero); font:700 11px var(--heading); color:var(--green); }
.ffgp.ville-affinee #ch-programme .lecture>summary{ border-top:1px solid var(--line); color:var(--violet); }
.ffgp.ville-affinee #ch-programme .chap-num{ display:none; }
.ffgp.ville-affinee .nearby{ background:#f1ecf7; box-shadow:none; }
.ffgp.ville-affinee .national{ background:#eef5f0; box-shadow:none; }
.ffgp.ville-affinee .barre .cta{ font-family:var(--text); font-size:14px; font-weight:600; letter-spacing:normal; }
@media (max-width:1100px) and (min-width:761px){.ffgp.ville-affinee .hero{ padding:24px; gap:24px; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.ffgp.ville-affinee .reservation{ padding:20px; }
.ffgp.ville-affinee .selection-action{ margin:0 -20px -20px; padding:16px 20px; }
.ffgp.ville-affinee .semaine-choix b{ font-size:13px; }}
@media (max-width:760px){.ffgp.ville-affinee .top .wrap{ min-height:52px; }
.ffgp.ville-affinee .fil{ padding:10px 0; font-size:12px; }
.ffgp.ville-affinee .hero{ padding:0; background:none; border:0; border-radius:0; }
.ffgp.ville-affinee .identity{ order:0; padding:17px 18px; border-radius:20px 20px 0 0; background:linear-gradient(110deg,#f1ebf9,#edf6f0); border:1px solid #e0dbe7; border-bottom:0; }
.ffgp.ville-affinee .course-mark{ position:absolute; right:18px; top:22px; margin:0; }
.ffgp.ville-affinee .course-mark img{ width:42px; height:42px; }
.ffgp.ville-affinee .identity h1{ font-size:clamp(26px,7.7vw,34px); letter-spacing:-.035em; padding-right:42px; }
.ffgp.ville-affinee .identity h1 span{ font-size:inherit; letter-spacing:inherit; margin-top:4px; }
.ffgp.ville-affinee .identity-links{ margin:6px 0 0; font-size:14px; }
.ffgp.ville-affinee .identity-links a{ min-height:32px; }
.ffgp.ville-affinee .map-card{ order:1; margin:0 0 18px; border:1px solid #e0dbe7; border-radius:0 0 20px 20px; display:flex; flex-wrap:wrap; overflow:visible; }
.ffgp.ville-affinee .location-card{ width:100%; padding:14px 18px 8px; }
.ffgp.ville-affinee .location-card .place-line{ font-size:15px; }
.ffgp.ville-affinee .place-line strong{ font-size:13px; margin-bottom:4px; }
.ffgp.ville-affinee .plan-lieu{ display:block; width:50%; }
.ffgp.ville-affinee .plan-lieu[open]{ width:100%; order:3; }
.ffgp.ville-affinee .plan-lieu>summary{ display:flex; align-items:center; gap:13px; padding:8px 18px; min-height:44px; font-size:14px; font-weight:600; color:var(--green); list-style:none; }
.ffgp.ville-affinee .plan-lieu>summary::-webkit-details-marker{ display:none; }
.ffgp.ville-affinee .plan-lieu[open]>summary span{ transform:rotate(45deg); }
.ffgp.ville-affinee .plan-lieu figure{ grid-column:1/-1; order:3; overflow:hidden; border-radius:0 0 20px 20px; }
.ffgp.ville-affinee .map-frame, .ffgp.ville-affinee .map-card iframe{ min-height:220px; height:220px; }
.ffgp.ville-affinee .changer-ville{ flex:1; min-height:44px; padding:8px 18px; border:0; font-size:14px; font-weight:600; justify-content:flex-end; gap:8px; white-space:normal; }
.ffgp.ville-affinee.distance-mode .changer-ville{ grid-column:1/-1; justify-content:flex-start; }
.ffgp.ville-affinee .reservation{ order:2; padding:18px; border-radius:20px; }
.ffgp.ville-affinee .panel-top{ margin-bottom:16px; padding-bottom:12px; }
.ffgp.ville-affinee .panel-top h2{ font-size:18px; }
.ffgp.ville-affinee .panel-top>span{ font-size:8px; }
.ffgp.ville-affinee .mode-question{ font-size:15px; }
.ffgp.ville-affinee .mode{ margin-bottom:16px; }
.ffgp.ville-affinee .mode button{ font-size:14px; padding:8px 6px; min-height:42px; }
.ffgp.ville-affinee .offers legend, .ffgp.ville-affinee .semaines-visibles legend{ font-size:15px; }
.ffgp.ville-affinee .offer{ padding:11px; }
.ffgp.ville-affinee .offer-name{ font-size:16px; }
.ffgp.ville-affinee .offer-price{ display:block; }
.ffgp.ville-affinee .offer-price b{ font-size:28px; }
.ffgp.ville-affinee .offer-price small{ display:block; margin-top:3px; }
.ffgp.ville-affinee .offer-composition{ font-size:13px; }
.ffgp.ville-affinee .semaines-grille{ gap:6px; }
.ffgp.ville-affinee .semaine-choix{ padding:10px 2px; }
.ffgp.ville-affinee .semaine-choix b{ font-size:13px; }
.ffgp.ville-affinee .autres-semaines summary{ min-height:44px; }
.ffgp.ville-affinee .selection-action{ grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:8px; margin:0 -18px -18px; padding:16px 18px; border-radius:0 0 20px 20px; }
.ffgp.ville-affinee .purchase-line strong{ font-size:32px; }
.ffgp.ville-affinee .selection-action .cta{ font-size:15px; padding:12px 15px; }
.ffgp.ville-affinee .purchase-line small{ display:block; margin-left:0; }
.ffgp.ville-affinee .assurances{ padding:24px 0; gap:16px; }
.ffgp.ville-affinee .reading{ padding:32px 0; }
.ffgp.ville-affinee .lecture>summary{ padding:18px; gap:12px; }
.ffgp.ville-affinee .lecture>summary h2{ font-size:19px; }
.ffgp.ville-affinee .programme-apercu{ padding:20px 18px 12px; }
.ffgp.ville-affinee .programme-apercu li{ font-size:15px; }
.ffgp.ville-affinee .corps{ font-size:16px; }
.ffgp.ville-affinee .corps :is(h3,h4){ font-size:21px; }
.ffgp.ville-affinee .reading-aside h2{ font-size:30px; }
.ffgp.ville-affinee .proche b{ font-size:16px; }
.ffgp.ville-affinee .proche :is(i,p,a){ font-size:13px; }}
.ffgp.ville-affinee #ch-programme .corps{ max-width:none; padding:12px 28px 28px; color:#3a4450; }
.ffgp.ville-affinee .programme-introduction{ padding:12px 0 8px; }
.ffgp.ville-affinee .programme-introduction h3.sous{ font-size:clamp(26px,2.5vw,32px); line-height:1.18; letter-spacing:-.03em; margin:0 0 16px; max-width:23ch; }
.ffgp.ville-affinee .programme-introduction p{ max-width:58ch; margin:0 0 22px; }
.ffgp.ville-affinee .programme-competences{ background:#edf7f1; border:1px solid #d8eade; border-radius:20px; padding:8px 24px; }
.ffgp.ville-affinee .programme-competences ul{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin:0; padding:0; }
.ffgp.ville-affinee .programme-competences li{ margin:0; padding:17px 0; font-size:15px; line-height:1.65; color:#275442; border-bottom:1px solid #d4e5da; }
.ffgp.ville-affinee .programme-competences li:last-child{ grid-column:1/-1; border:0; }
.ffgp.ville-affinee .programme-actions{ display:grid; grid-template-columns:1.25fr 1fr; gap:24px; padding:26px 0 30px; }
.ffgp.ville-affinee .programme-actions p{ margin:0; font-size:15px; line-height:1.65; }
.ffgp.ville-affinee .programme-actions p+p{ padding-left:24px; border-left:1px solid var(--line); }
.ffgp.ville-affinee .programme-actions a{ text-decoration-thickness:1px; color:#0b7355; font-weight:600; }
.ffgp.ville-affinee .programme-certifications{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0 0 42px; }
.ffgp.ville-affinee .programme-certifications>a{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; padding:23px; border:1px solid #ded5e9; border-top:3px solid #8a6ca6; border-radius:8px 8px 20px 20px; background:linear-gradient(130deg,#f2ecf8,#faf8fc); text-decoration:none; }
.ffgp.ville-affinee .programme-certifications>a:hover{ border-color:#806198; background:#eee6f7; }
.ffgp.ville-affinee .programme-certifications>a:focus-visible{ outline-offset:-5px; }
.ffgp.ville-affinee .programme-certifications>a>p:first-child{ color:var(--ink); font:800 21px/1.4 var(--heading); letter-spacing:-.025em; margin:0; }
.ffgp.ville-affinee .programme-certifications>a:hover>p:first-child{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.ffgp.ville-affinee .programme-certifications>a>p:last-child{ margin:auto 0 0; color:#604184; font-size:12px; line-height:1.5; }
.ffgp.ville-affinee .programme-contexte{ display:inline-block; border:1px solid #d4e5da; border-radius:99px; padding:5px 12px; background:#edf7f1; color:#275442; font-size:12px; line-height:1.5; margin:0 0 14px; }
.ffgp.ville-affinee .programme-detail-intro{ padding-bottom:24px; }
.ffgp.ville-affinee .programme-detail-intro h3.sous{ font-size:clamp(26px,2.5vw,32px); line-height:1.2; letter-spacing:-.03em; margin:0 0 20px; max-width:26ch; }
.ffgp.ville-affinee .programme-detail-intro p{ margin:0; max-width:62ch; }
.ffgp.ville-affinee .programme-module{ display:grid; grid-template-columns:94px minmax(0,1fr); align-items:start; gap:24px; padding:34px 20px; border-top:1px solid #d9e5df; }
.ffgp.ville-affinee .programme-module::before{ content:attr(data-etape); grid-column:1; grid-row:1; font:800 80px/.95 var(--heading); letter-spacing:-.07em; color:transparent; -webkit-text-stroke:1.5px #88b8a3; padding-top:4px; }
.ffgp.ville-affinee .programme-module-texte{ grid-column:2; grid-row:1; min-width:0; }
.ffgp.ville-affinee .programme-module .programme-module-texte h3{ font-size:22px; line-height:1.35; letter-spacing:-.025em; margin:0 0 16px; }
.ffgp.ville-affinee .programme-module p{ margin:0; font-size:16px; line-height:1.8; }
.ffgp.ville-affinee .programme-module[data-etape="02"]{ grid-template-columns:minmax(0,1fr) 94px; background:#edf7f1; border:0; border-radius:20px; }
.ffgp.ville-affinee .programme-module[data-etape="04"]{ grid-template-columns:minmax(0,1fr) 94px; background:#f3edf8; border:0; border-radius:20px; }
.ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"])::before{ grid-column:2; text-align:right; }
.ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"]) .programme-module-texte{ grid-column:1; }
.ffgp.ville-affinee .programme-module[data-etape="04"]::before{ -webkit-text-stroke-color:#b29ac7; }
.ffgp.ville-affinee .programme-module:is([data-etape="03"],[data-etape="05"]){ border-top:0; }
@media (max-width:1100px){.ffgp.ville-affinee #ch-programme .corps{ padding:8px 22px 22px; }
.ffgp.ville-affinee .programme-competences ul{ grid-template-columns:1fr; }
.ffgp.ville-affinee .programme-competences li{ font-size:15px; }
.ffgp.ville-affinee .programme-certifications{ grid-template-columns:1fr; }
.ffgp.ville-affinee .programme-certifications>a{ gap:12px; padding:22px; }
.ffgp.ville-affinee .programme-actions{ grid-template-columns:1fr; gap:16px; }
.ffgp.ville-affinee .programme-actions p+p{ padding:0; border:0; }
.ffgp.ville-affinee .programme-module{ padding:28px 18px; gap:14px; }
.ffgp.ville-affinee .programme-module, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"]){ grid-template-columns:minmax(0,1fr); }
.ffgp.ville-affinee .programme-module::before, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"])::before{ grid-column:1; grid-row:1; font-size:60px; text-align:left; }
.ffgp.ville-affinee .programme-module .programme-module-texte{ grid-column:1; grid-row:2; }}
@media (max-width:760px){.ffgp.ville-affinee #ch-programme .corps{ padding:6px 18px 18px; }
.ffgp.ville-affinee .programme-introduction{ padding-top:12px; }
.ffgp.ville-affinee .programme-introduction h3.sous, .ffgp.ville-affinee .programme-detail-intro h3.sous{ font-size:27px; }
.ffgp.ville-affinee .programme-competences{ padding:4px 18px; border-radius:16px; }
.ffgp.ville-affinee .programme-competences li{ padding:14px 0; }
.ffgp.ville-affinee .programme-certifications{ margin-bottom:34px; gap:12px; }
.ffgp.ville-affinee .programme-module .programme-module-texte h3{ font-size:21px; }
.ffgp.ville-affinee .programme-module p{ font-size:16px; line-height:1.75; }}
@media (prefers-reduced-motion:reduce){}
.ffgp.ville-affinee .mode.mode-illustre{ display:grid; grid-template-columns:1fr 1fr; gap:10px; background:none; border:0; padding:0; border-radius:0; margin-bottom:16px; }
.ffgp.ville-affinee .mode.mode-illustre button.mode-carte{ position:relative; min-width:0; display:flex; align-items:center; gap:12px; min-height:88px; padding:8px 36px 8px 10px; text-align:left; font-size:15px; font-weight:600; line-height:1.3; color:var(--ink); background:#fff; border:1px solid #ddd5e6; border-radius:18px; box-shadow:none; }
.ffgp.ville-affinee .mode.mode-illustre button.mode-carte:hover{ border-color:#b3a2c6; }
.ffgp.ville-affinee .mode.mode-illustre button.mode-carte[aria-pressed=true]{ color:var(--ink); font-weight:700; background:#edf7f1; border-color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.ffgp.ville-affinee .mode-illus{ display:block; flex:none; width:108px; height:72px; object-fit:contain; }
.ffgp.ville-affinee .mode-libelle{ flex:1; min-width:0; }
.ffgp.ville-affinee .mode-coche{ position:absolute; top:10px; right:10px; box-sizing:border-box; width:18px; height:18px; border-radius:50%; border:1.5px solid #b2a4bf; background:#fff; }
.ffgp.ville-affinee button[aria-pressed=true] .mode-coche{ border:5px solid var(--green); }
@media (max-width:1023px){.ffgp.ville-affinee .mode.mode-illustre{ gap:8px; margin-bottom:16px; }
.ffgp.ville-affinee .mode.mode-illustre button.mode-carte{ min-height:60px; gap:7px; padding:8px; font-size:13.5px; line-height:1.25; border-radius:16px; }
.ffgp.ville-affinee .mode-illus{ width:54px; height:36px; }
.ffgp.ville-affinee .mode-coche{ top:6px; right:6px; width:13px; height:13px; }
.ffgp.ville-affinee button[aria-pressed=true] .mode-coche{ border-width:4px; }}
@media (min-width:480px) and (max-width:760px){.ffgp.ville-affinee .mode.mode-illustre button.mode-carte{ min-height:64px; gap:10px; font-size:14px; }
.ffgp.ville-affinee .mode-illus{ width:72px; height:48px; }}
@media (max-width:360px){.ffgp.ville-affinee .mode.mode-illustre button.mode-carte{ gap:6px; padding:8px 6px; font-size:13px; }
.ffgp.ville-affinee .mode-illus{ width:42px; height:28px; }}
@media (max-width:340px){.ffgp.ville-affinee .mode.mode-illustre button.mode-carte{ padding-right:22px; }}
.ffgp.ville-affinee .top-actions{ display:flex; align-items:center; gap:24px; }
.ffgp.ville-affinee .nav-entreprise{ display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:9px 18px; border:1px solid #d8c9e5; border-radius:99px; background:#f2ebf8; color:#50346e; font:700 13px/1.4 var(--text); text-decoration:none; white-space:nowrap; }
.ffgp.ville-affinee .nav-entreprise:hover{ border-color:#604184; background:#e9def3; }
.ffgp.ville-affinee .hero{ background:radial-gradient(ellipse at 8% 0,#d9c6ed80,transparent 60%),linear-gradient(125deg,#f0e8f8,#e4f2e9); border-color:#d9cfe3; }
.ffgp.ville-affinee .selection-action{ background:linear-gradient(120deg,#f3edf8,#eef7f1); border-top-color:#e0d8e8; }
.ffgp.ville-affinee .selection-action .purchase-line :is(strong,b){ color:var(--ink); }
.ffgp.ville-affinee .selection-action .purchase-line :is(small,.selected-title), .ffgp.ville-affinee .selection-action .reassure{ color:#5a6472; }
.ffgp.ville-affinee .selection-action .reassure b{ color:var(--ink); }
.ffgp.ville-affinee .selection-action .cta{ color:#fff; background:#175e47; }
.ffgp.ville-affinee .selection-action .cta:hover{ color:#fff; background:#104b36; }
.ffgp.ville-affinee .selection-action :focus-visible{ outline-color:#8055bc; }
.ffgp.ville-affinee .equipe-invitation{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:44px; align-items:center; margin-top:34px; padding:42px; border:1px solid #52396d; border-radius:28px; background:radial-gradient(ellipse at 90% 10%,#67439788,transparent 65%),linear-gradient(125deg,#17132d,#352050); color:#e4dbea; }
.ffgp.ville-affinee .equipe-message .eyebrow{ color:#d3bee9; margin-bottom:20px; }
.ffgp.ville-affinee .equipe-message h2{ color:#fff; font:800 clamp(29px,3vw,40px)/1.15 var(--heading); letter-spacing:-.035em; margin:0 0 20px; }
.ffgp.ville-affinee .equipe-message h2 span{ color:#b2e3c9; }
.ffgp.ville-affinee .equipe-message>p:not(.eyebrow){ font-size:17px; line-height:1.7; max-width:37ch; }
.ffgp.ville-affinee .equipe-actions{ display:flex; flex-wrap:wrap; flex-direction:column; align-items:flex-start; gap:13px; margin-top:25px; }
.ffgp:is(.ville-affinee,.entreprise-affinee) .equipe-cta{ display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-height:52px; padding:15px 22px; border:1px solid #fff; border-radius:99px; background:#fff; color:#392253; text-decoration:none; font:700 15px/1.4 var(--text); }
.ffgp:is(.ville-affinee,.entreprise-affinee) .equipe-cta:hover{ background:#efe8f8; border-color:#efe8f8; color:#392253; }
.ffgp:is(.ville-affinee,.entreprise-affinee) .equipe-cta span{ font-size:21px; }
.ffgp.ville-affinee .equipe-telephone{ display:inline-flex; align-items:center; min-height:44px; color:#e4dbea; font-size:14px; text-decoration-thickness:1px; }
.ffgp.ville-affinee .equipe-telephone:hover{ color:#fff; }
.ffgp.ville-affinee .equipe-reperes{ padding:28px; border:1px solid #ffffff30; border-radius:22px; background:#ffffff09; }
.ffgp.ville-affinee .equipe-sur-devis{ color:#b2e3c9; font:700 16px/1.5 var(--text); }
.ffgp.ville-affinee .equipe-reperes dl{ margin:23px 0 0; }
.ffgp.ville-affinee .equipe-reperes dl>div{ padding:17px 0; border-top:1px solid #ffffff26; }
.ffgp.ville-affinee .equipe-reperes dl>div:last-child{ padding-bottom:0; }
.ffgp.ville-affinee .equipe-reperes dt{ color:#fff; font:800 17px/1.5 var(--heading); letter-spacing:-.02em; }
.ffgp.ville-affinee .equipe-reperes dd{ margin:5px 0 0; color:#ded4e8; font-size:15px; line-height:1.65; }
.ffgp.ville-affinee .equipe-invitation :focus-visible, .ffgp.entreprise-affinee .entreprise-intro :focus-visible{ outline-color:#b2e3c9; }
.ffgp.ville-affinee .sommaire a[href="#formation-equipe"]{ color:#604184; font-weight:700; }
.ffgp.entreprise-affinee{ background:#faf9fc; color:#3a4450; padding-bottom:0; }
.ffgp.entreprise-affinee .entreprise-page{ max-width:1200px; }
.ffgp.entreprise-affinee .retour{ margin-bottom:14px; }
.ffgp.entreprise-affinee .entreprise-layout{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:30px; align-items:start; }
.ffgp.entreprise-affinee .entreprise-intro{ padding:38px; border:1px solid #52396d; border-radius:28px; background:radial-gradient(ellipse at 90% 10%,#67439788,transparent 65%),linear-gradient(125deg,#17132d,#352050); color:#e4dbea; }
.ffgp.entreprise-affinee .entreprise-intro .kicker{ color:#d3bee9; margin-bottom:23px; }
.ffgp.entreprise-affinee .entreprise-intro h1{ color:#fff; font-size:clamp(32px,3.6vw,48px); line-height:1.12; letter-spacing:-.04em; margin:0 0 24px; }
.ffgp.entreprise-affinee .entreprise-intro h1 span{ color:#b2e3c9; }
.ffgp.entreprise-affinee .contexte-formation{ display:inline-block; border:1px solid #b2e3c966; background:#b2e3c913; border-radius:99px; padding:6px 13px; margin-bottom:20px; color:#c7edda; font-size:13px; font-weight:700; }
.ffgp.entreprise-affinee .entreprise-intro .chapo{ color:#e4dbea; font-size:17px; line-height:1.7; margin:0; }
.ffgp.entreprise-affinee .entreprise-form-access{ display:none; }
.ffgp.entreprise-affinee:has(#form-devis[hidden]) .entreprise-form-access{ display:none; }
.ffgp.entreprise-affinee .entreprise-etapes{ list-style:none; padding:0; margin:34px 0 28px; counter-reset:etape-entreprise; }
.ffgp.entreprise-affinee .entreprise-etapes li{ position:relative; padding:20px 0 20px 46px; border-top:1px solid #ffffff26; counter-increment:etape-entreprise; }
.ffgp.entreprise-affinee .entreprise-etapes li::before{ content:counter(etape-entreprise,decimal-leading-zero); position:absolute; left:0; top:22px; color:#b2e3c9; font:800 12px/1.5 var(--heading); letter-spacing:.05em; }
.ffgp.entreprise-affinee .entreprise-etapes strong{ display:block; color:#fff; font:800 18px/1.4 var(--heading); letter-spacing:-.025em; }
.ffgp.entreprise-affinee .entreprise-etapes span{ display:block; margin-top:5px; color:#ded4e8; font-size:15px; line-height:1.65; }
.ffgp.entreprise-affinee .entreprise-appel{ display:block; padding-top:22px; border-top:1px solid #ffffff26; color:#e4dbea; font-size:14px; text-decoration:none; }
.ffgp.entreprise-affinee .entreprise-appel strong{ display:block; color:#b2e3c9; margin-top:5px; font:800 23px/1.5 var(--heading); letter-spacing:-.02em; }
.ffgp.entreprise-affinee .entreprise-appel:hover strong{ text-decoration:underline; text-underline-offset:5px; }
.ffgp.entreprise-affinee .entreprise-form-colonne{ min-width:0; }
.ffgp.entreprise-affinee #form-devis{ padding:32px; border:1px solid #d7e2db; border-top:4px solid #175e47; border-radius:8px 8px 28px 28px; box-shadow:0 20px 60px #153b2110; background:#fff; }
.ffgp.entreprise-affinee .devis-entete{ margin-bottom:23px; }
.ffgp.entreprise-affinee .devis-entete .kicker{ margin-bottom:12px; }
.ffgp.entreprise-affinee .devis-entete h2{ color:#252039; font:800 clamp(26px,2.5vw,32px)/1.18 var(--heading); letter-spacing:-.035em; margin-bottom:14px; }
.ffgp.entreprise-affinee .devis-entete>p:last-child{ color:#5a6472; font-size:15px; line-height:1.7; }
.ffgp.entreprise-affinee .devis-contexte{ padding:10px 14px; border:1px solid #d4e7dd; border-radius:12px; margin:0 0 24px; background:#edf7f1; color:#175e47; font:700 14px/1.5 var(--text); }
.ffgp.entreprise-affinee .champ label{ font-size:14px; line-height:1.5; }
.ffgp.entreprise-affinee .champ label span{ font-size:12px; color:#625c6e; }
.ffgp.entreprise-affinee .champ :is(input,select,textarea){ border-color:#c9c4d0; font:400 16px/1.5 var(--text); min-height:48px; background:#fff; }
.ffgp.entreprise-affinee .champ.faux :is(input,textarea){ border-color:#b3261e; background:#fff8f7; }
.ffgp.entreprise-affinee .champ textarea{ min-height:105px; resize:vertical; }
.ffgp.entreprise-affinee .devis-precisions{ margin-top:22px; border-top:1px solid #e1dae8; border-bottom:1px solid #e1dae8; }
.ffgp.entreprise-affinee .devis-precisions summary{ display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:66px; padding:12px 0; list-style:none; color:#604184; font-size:14px; font-weight:700; }
.ffgp.entreprise-affinee .devis-precisions summary::-webkit-details-marker{ display:none; }
.ffgp.entreprise-affinee .devis-precisions summary small{ display:block; margin-top:3px; color:#625c6e; font-size:12px; line-height:1.5; font-weight:400; }
.ffgp.entreprise-affinee .devis-plus{ font-size:25px; line-height:1; font-weight:400; }
.ffgp.entreprise-affinee .devis-precisions[open] .devis-plus{ transform:rotate(45deg); }
.ffgp.entreprise-affinee .devis-precisions .champs{ margin:10px 0 22px; }
.ffgp.entreprise-affinee .champ :is(input,select,textarea):focus-visible{ outline:3px solid #8055bc; outline-offset:3px; }
.ffgp.entreprise-affinee #form-devis .cta{ min-height:54px; background:#175e47; font:700 16px/1.5 var(--text); text-decoration:none; margin-top:24px; }
.ffgp.entreprise-affinee #form-devis .cta:hover{ background:#104a37; }
.ffgp.entreprise-affinee .suite{ font-size:13px; line-height:1.6; color:#5a6472; }
.ffgp.entreprise-affinee .devis-demo{ margin-top:9px; font-size:12px; text-align:center; color:#625c6e; }
@media (max-width:1000px){.ffgp.ville-affinee .equipe-invitation{ padding:32px; gap:28px; }
.ffgp.ville-affinee .equipe-reperes{ padding:24px; }
.ffgp.entreprise-affinee .entreprise-layout{ gap:22px; }
.ffgp.entreprise-affinee .entreprise-intro{ padding:28px; }
.ffgp.entreprise-affinee #form-devis{ padding:25px; }}
@media (max-width:900px){.ffgp.entreprise-affinee .entreprise-layout{ grid-template-columns:minmax(0,1fr); }
.ffgp.entreprise-affinee .entreprise-form-access{ display:inline-flex; margin-top:24px; }
.ffgp.entreprise-affinee .entreprise-intro{ padding:32px; }
.ffgp.entreprise-affinee .entreprise-etapes{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ffgp.entreprise-affinee .entreprise-etapes li{ padding:40px 0 0; }
.ffgp.entreprise-affinee .entreprise-etapes li::before{ top:15px; }}
@media (max-width:760px){.ffgp.ville-affinee .hero{ background:none; }
.ffgp.ville-affinee .identity{ background:linear-gradient(110deg,#e9ddf5,#e1f0e6); }
.ffgp.ville-affinee .equipe-invitation{ grid-template-columns:minmax(0,1fr); padding:27px 24px; gap:25px; margin-top:24px; border-radius:22px; }
.ffgp.ville-affinee .equipe-message h2{ font-size:clamp(29px,5vw,36px); }
.ffgp.ville-affinee .equipe-message .eyebrow{ font-size:11px; margin-bottom:17px; }
.ffgp.ville-affinee .equipe-message>p:not(.eyebrow){ font-size:16px; }
.ffgp.ville-affinee .equipe-actions{ margin-top:22px; gap:9px; }
.ffgp.ville-affinee .equipe-reperes{ padding:23px; }}
@media (max-width:600px){.ffgp.ville-affinee .top-actions{ gap:0; }
.ffgp.ville-affinee .top-actions .contact{ display:none; }
.ffgp.ville-affinee .nav-entreprise{ font-size:12px; padding:9px 13px; }
.ffgp.ville-affinee .top .wrap{ gap:12px; }
.ffgp.ville-affinee .equipe-cta{ width:100%; font-size:14px; padding:14px 17px; gap:12px; }
.ffgp.ville-affinee .equipe-telephone{ font-size:13px; }
.ffgp.entreprise-affinee .entreprise-intro{ padding:28px 24px; border-radius:22px; }
.ffgp.entreprise-affinee .entreprise-intro h1{ font-size:36px; }
.ffgp.entreprise-affinee .entreprise-intro .kicker{ font-size:10px; letter-spacing:.13em; }
.ffgp.entreprise-affinee .entreprise-etapes{ display:block; margin-top:28px; margin-bottom:20px; }
.ffgp.entreprise-affinee .entreprise-etapes li{ padding:18px 0 18px 40px; }
.ffgp.entreprise-affinee .entreprise-etapes li::before{ top:21px; }
.ffgp.entreprise-affinee #form-devis{ padding:25px 21px; border-radius:8px 8px 22px 22px; }
.ffgp.entreprise-affinee .devis-entete h2{ font-size:29px; }}
.ffgp.ville-affinee .hero{ background:radial-gradient(ellipse at 0 0,#eee6f980,transparent 65%),linear-gradient(125deg,#faf8fd,#eef7f1); border-color:#e1dbe9; box-shadow:0 20px 60px #30213f08; }
.ffgp.ville-affinee .identity h1{ color:var(--ink); }
.ffgp.ville-affinee .identity h1 span{ color:#175e47; }
.ffgp.ville-affinee .course-mark .eyebrow{ color:#604184; }
.ffgp.ville-affinee .course-mark img{ padding:5px; background:#fff; border-radius:12px; }
.ffgp.ville-affinee .identity-links a{ color:#604184; text-decoration-thickness:1px; }
.ffgp.ville-affinee .identity-links a:hover{ color:#175e47; }
.ffgp.ville-affinee .identity-links a:focus-visible{ outline-color:#8055bc; }
.ffgp.ville-affinee .map-card{ border-color:#d9cde5; }
.ffgp.ville-affinee .reservation{ border-color:#e0d3ec; box-shadow:0 18px 45px #30213f0c; }
.ffgp.ville-affinee .assurances{ margin-top:22px; padding:24px; border:1px solid #d7e8df; border-radius:20px; background:#edf7f1; }
.ffgp.ville-affinee .assurances strong{ color:#175e47; }
.ffgp.ville-affinee .reading-aside{ padding:27px 23px; border:1px solid #52396d; border-radius:22px; background:linear-gradient(145deg,#30213f,#4a3067); }
.ffgp.ville-affinee .reading-aside .eyebrow{ color:#d3bee9; font-size:11px; }
.ffgp.ville-affinee .reading-aside h2{ font-size:30px; color:#b2e3c9; }
.ffgp.ville-affinee .reading-aside .sommaire{ gap:0; margin-top:21px; }
.ffgp.ville-affinee .reading-aside .sommaire a{ padding:10px 0; min-height:42px; border-top:1px solid #ffffff26; color:#e4dbea; font-size:13px; }
.ffgp.ville-affinee .reading-aside .sommaire a:hover{ color:#b2e3c9; }
.ffgp.ville-affinee .reading-aside .sommaire a[href="#formation-equipe"], .ffgp.ville-affinee .reading-aside .sommaire .book-again{ color:#b2e3c9; font-weight:700; }
.ffgp.ville-affinee .reading-aside :focus-visible{ outline-color:#b2e3c9; }
.ffgp.ville-affinee .chap{ border-color:#d8cbe4; }
.ffgp.ville-affinee .lecture>summary{ background:#f4eef9; }
.ffgp.ville-affinee .lecture>summary:hover{ background:#ece1f5; }
.ffgp.ville-affinee .lecture[open]>summary{ background:#e9def3; }
.ffgp.ville-affinee .chap-num{ display:inline-grid; place-items:center; width:29px; height:29px; border:1px solid #d6c5e5; border-radius:50%; background:#fff; color:#604184; }
.ffgp.ville-affinee .programme-apercu{ background:linear-gradient(125deg,#e7f4ec,#f5faf7); }
.ffgp.ville-affinee .nearby{ background:radial-gradient(ellipse at 100% 0,#dac5ee80,transparent 65%),#f0e8f8; border-color:#d2bfdf; }
.ffgp.ville-affinee .nearby .eyebrow{ color:#604184; }
.ffgp.ville-affinee .proche{ background:#fff; border-color:#dacbe5; border-top:3px solid #8a6ca6; box-shadow:0 7px 20px #30213f08; }
.ffgp.ville-affinee .proche a{ display:inline-flex; align-items:center; min-height:40px; color:#50346e; }
.ffgp.ville-affinee .national{ background:linear-gradient(125deg,#dcefe3,#edf7f1); border-color:#bad7c7; }
.ffgp.ville-affinee .national h2{ color:#175e47; }
.ffgp.ville-affinee .national .france{ background:#ffffff80; border:1px solid #c5dfcf; border-radius:22px; padding:14px; }
.ffgp.ville-affinee .barre{ border-top-color:#d1c0df; }
.ffgp.ville-affinee .barre .cta{ background:#4a3067; }
.ffgp.ville-affinee .barre .cta:hover{ background:#30213f; }
@media (max-width:1100px) and (min-width:761px){.ffgp.ville-affinee .reading{ grid-template-columns:220px minmax(0,1fr); gap:25px; }
.ffgp.ville-affinee .reading-aside{ padding:25px 20px; }
.ffgp.ville-affinee .reading-aside h2{ font-size:28px; }}
@media (max-width:760px){.ffgp.ville-affinee .hero{ background:none; border:0; box-shadow:none; }
.ffgp.ville-affinee .identity{ background:linear-gradient(125deg,#f5f0fb,#eef7f1); border-color:#e1dbe9; }
.ffgp.ville-affinee .assurances{ margin-top:20px; padding:21px 18px; gap:17px; }
.ffgp.ville-affinee .assurances p{ border-left-color:#7daf93; }
.ffgp.ville-affinee .reading-aside{ padding:24px; margin-bottom:24px; }
.ffgp.ville-affinee .reading-aside h2{ font-size:30px; }
.ffgp.ville-affinee .reading-aside .sommaire{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; margin-bottom:0; }
.ffgp.ville-affinee .reading-aside .sommaire a{ font-size:12px; min-height:44px; }
.ffgp.ville-affinee .reading-aside .sommaire .book-again{ grid-column:1/-1; margin-top:3px; }
.ffgp.ville-affinee .national .france{ padding:10px; }}
.ffgp.ville-affinee .autres-semaines.retenue summary{ justify-content:space-between; gap:10px; min-height:48px; margin-top:8px; padding:6px 14px; border:1px solid var(--violet); border-radius:12px; background:#f0eaf7; box-shadow:inset 0 0 0 1px var(--violet); cursor:pointer; }
.ffgp.ville-affinee .autres-semaines.retenue[open] summary{ margin-bottom:8px; }
.ffgp.ville-affinee .semaine-retenue{ font:600 14px/1.35 var(--text); color:var(--violet); text-align:left; }
.ffgp.ville-affinee .semaine-retenue small{ display:block; font-size:12px; font-weight:400; color:var(--muted); }
.ffgp.ville-affinee .semaine-modifier{ font-style:normal; font-size:13px; font-weight:600; color:var(--violet); text-decoration:underline; text-underline-offset:3px; }
.ffgp.ville-affinee .autres-semaines summary:focus-visible{ outline:3px solid #8055bc; outline-offset:3px; border-radius:12px; }
.ffgp.ville-affinee .autres-semaines.retenue{ margin-bottom:10px; }
.ffgp.ville-affinee .cours-local{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:46px; align-items:start; margin:34px 0 0; padding:42px; background:#fff; border:1px solid #ded5e7; border-radius:28px; box-shadow:0 16px 50px #30213f06; }
.ffgp.ville-affinee .cours-local :is(p,dl,figure,blockquote){ margin:0; }
.ffgp.ville-affinee .cours-local .eyebrow{ color:#604184; font-size:11px; line-height:1.5; margin:0 0 13px; }
.ffgp.ville-affinee .cours-reperes h2{ font:800 clamp(28px,3vw,39px)/1.18 var(--heading); letter-spacing:-.04em; color:#252039; margin:0 0 23px; }
.ffgp.ville-affinee .cours-reperes h2 span{ color:#175e47; }
.ffgp.ville-affinee .cours-reperes .cours-intro{ font:400 17px/1.75 var(--text); color:#4d5260; }
.ffgp.ville-affinee .cours-voisinage{ border-left:3px solid #81b69c; padding:3px 0 3px 21px; margin:29px 0 11px; }
.ffgp.ville-affinee .cours-local h3{ font:800 18px/1.4 var(--heading); letter-spacing:-.025em; color:#252039; margin:0 0 10px; }
.ffgp.ville-affinee .cours-voisinage p{ color:#505867; font-size:15px; line-height:1.75; }
.ffgp.ville-affinee .cours-voisinage p+p{ margin-top:12px; }
.ffgp.ville-affinee .cours-pratique>div{ padding:23px 0; border-bottom:1px solid #e8e2ed; }
.ffgp.ville-affinee .cours-pratique dt{ font:700 15px/1.6 var(--text); color:#30213f; margin-bottom:7px; }
.ffgp.ville-affinee .cours-pratique dd{ font:400 15px/1.75 var(--text); margin:0; color:#505867; }
.ffgp.ville-affinee .cours-pratique a{ display:inline-flex; gap:8px; align-items:center; min-height:40px; color:#604184; text-underline-offset:4px; text-decoration-thickness:1px; font-weight:600; }
.ffgp.ville-affinee .cours-reperes .cours-contact{ margin-top:24px; font-size:14px; color:#62596c; }
.ffgp.ville-affinee .cours-contact a{ display:block; width:fit-content; min-height:42px; font:800 24px/1.65 var(--heading); letter-spacing:-.025em; color:#175e47; text-decoration:none; }
.ffgp.ville-affinee .cours-decision{ display:grid; gap:24px; min-width:0; }
.ffgp.ville-affinee .cours-certifications{ padding:24px; border:1px solid #cce0d5; border-radius:20px; background:linear-gradient(120deg,#e7f4ec,#f5faf7); }
.ffgp.ville-affinee .cours-certifs-entete{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.ffgp.ville-affinee .cours-certifications .eyebrow{ font-size:10px; color:#175e47; margin-bottom:6px; }
.ffgp.ville-affinee .cours-certifications h3{ font-size:18px; margin:0; color:#175e47; }
.ffgp.ville-affinee .cours-logos{ display:flex; gap:9px; align-items:center; }
.ffgp.ville-affinee .cours-logos img{ width:86px; height:46px; object-fit:contain; padding:5px; background:#fff; border:1px solid #d6e6dd; border-radius:8px; }
.ffgp.ville-affinee .cours-certifications>p{ margin:14px 0 0; font-size:14px; line-height:1.7; color:#3c5b4c; }
.ffgp.ville-affinee .cours-certifs-details{ margin-top:16px; border-top:1px solid #c5ddcf; }
.ffgp.ville-affinee .cours-certifs-details summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:48px; padding-top:8px; color:#175e47; font-size:13px; font-weight:600; cursor:pointer; }
.ffgp.ville-affinee .cours-certifs-details summary::-webkit-details-marker{ display:none; }
.ffgp.ville-affinee .cours-certifs-details summary>span{ font-size:23px; font-weight:400; }
.ffgp.ville-affinee .cours-certifs-details[open] summary>span{ transform:rotate(45deg); }
.ffgp.ville-affinee .cours-certifs-fiches{ display:grid; gap:10px; padding:12px 0 0; }
.ffgp.ville-affinee .cours-certifs-fiches>a{ display:block; padding:14px; background:#ffffffc9; border:1px solid #d3e3da; border-radius:10px; text-decoration:none; color:#245940; }
.ffgp.ville-affinee .cours-certifs-fiches strong{ display:block; font-size:13px; font-weight:600; line-height:1.6; }
.ffgp.ville-affinee .cours-certifs-fiches>a>span{ display:block; margin-top:6px; font-size:12px; line-height:1.5; color:#566c60; }
.ffgp.ville-affinee .cours-certifs-fiches>a:hover strong{ text-decoration:underline; text-underline-offset:3px; }
.ffgp.ville-affinee .cours-avis-entete{ display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; margin-bottom:10px; }
.ffgp.ville-affinee .cours-avis-entete h3{ font-size:17px; margin:0; }
.ffgp.ville-affinee .cours-avis-entete>a{ display:inline-flex; align-items:center; min-height:40px; color:#604184; font-size:12px; text-underline-offset:3px; }
.ffgp.ville-affinee .cours-avis figure{ padding:20px 22px; background:#faf8fc; border:1px solid #e2d8ec; border-radius:16px; }
.ffgp.ville-affinee .cours-avis-note{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:11px; color:#604184; font-size:12px; font-weight:600; }
.ffgp.ville-affinee .cours-avis-note>span:first-child{ display:inline-flex; gap:2px; color:#9a681b; }
.ffgp.ville-affinee .cours-avis-note svg{ fill:currentColor; }
.ffgp.ville-affinee .cours-avis blockquote{ color:#40384d; font-size:15px; line-height:1.75; font-style:italic; }
.ffgp.ville-affinee .cours-avis figcaption{ margin-top:12px; color:#40384d; font-size:12px; line-height:1.6; font-weight:600; }
.ffgp.ville-affinee .cours-avis figcaption span{ font-weight:400; color:#6b6275; }
.ffgp.ville-affinee .cours-semaines{ overflow:hidden; border:1px solid #d8c8e5; border-radius:20px; }
.ffgp.ville-affinee .cours-semaines-entete{ padding:22px 23px; background:linear-gradient(115deg,#30213f,#4a3067); color:#fff; }
.ffgp.ville-affinee .cours-semaines-entete .eyebrow{ color:#d5c5e5; margin-bottom:7px; font-size:10px; }
.ffgp.ville-affinee .cours-semaines-entete h3{ color:#fff; margin:0 0 8px; font-size:21px; }
.ffgp.ville-affinee #cours-selection{ color:#c6ead7; font-size:12px; line-height:1.6; }
.ffgp.ville-affinee .cours-table{ width:100%; border-collapse:collapse; table-layout:auto; font-size:14px; }
.ffgp.ville-affinee .cours-table :is(th,td){ padding:13px 12px; border-bottom:1px solid #eee7f4; text-align:left; vertical-align:middle; }
.ffgp.ville-affinee .cours-table th{ padding-left:22px; font-weight:400; }
.ffgp.ville-affinee .cours-table th>span{ display:block; color:#6a6175; font-size:11px; margin-bottom:3px; }
.ffgp.ville-affinee .cours-table th>strong{ display:block; color:#30213f; font-size:14px; line-height:1.4; white-space:nowrap; }
.ffgp.ville-affinee .cours-table th>small{ display:block; margin-top:3px; color:#175e47; font-size:10px; font-weight:600; }
.ffgp.ville-affinee .cours-table td:last-child{ text-align:right; padding-right:20px; }
.ffgp.ville-affinee .cours-table tbody tr:nth-child(even){ background:#fbf9fd; }
.ffgp.ville-affinee .cours-table tbody tr.cours-semaine-choisie{ background:#f0f8f3; }
.ffgp.ville-affinee .cours-prix{ font:800 17px/1.5 var(--heading); letter-spacing:-.025em; color:#175e47; white-space:nowrap; }
.ffgp.ville-affinee .cours-inscription{ display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:10px 14px; background:#175e47; color:#fff; border:1px solid #175e47; border-radius:99px; text-decoration:none; white-space:nowrap; font:600 12px/1.5 var(--text); cursor:pointer; }
.ffgp.ville-affinee .cours-inscription:hover{ background:#104b36; color:#fff; }
.ffgp.ville-affinee .cours-semaines .cours-semaines-aide{ padding:15px 22px 0; color:#696072; font-size:11px; line-height:1.7; }
.ffgp.ville-affinee .cours-autres-semaines{ display:block; padding:12px 22px 18px; color:#604184; font-size:12px; line-height:1.6; text-underline-offset:3px; }
.ffgp.ville-affinee .cours-autonomie{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; justify-content:space-between; padding:23px; }
.ffgp.ville-affinee .cours-autonomie p{ flex-basis:100%; color:#40384d; font-size:15px; line-height:1.6; }
.ffgp.ville-affinee .cours-autonomie p span{ display:block; margin-top:6px; color:#696072; font-size:13px; }
.ffgp.ville-affinee .cours-local :focus-visible{ outline:3px solid #8055bc; outline-offset:4px; border-radius:5px; }
.ffgp.ville-affinee .cours-local+.nearby{ margin-top:28px; padding:30px; }
.ffgp.ville-affinee .cours-local+.nearby .nearby-header{ margin-bottom:22px; }
.ffgp.ville-affinee .cours-local+.nearby h2{ font-size:28px; }
@media (max-width:1100px){.ffgp.ville-affinee .cours-local{ gap:30px; padding:30px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.ffgp.ville-affinee .cours-certifications{ padding:20px; }
.ffgp.ville-affinee .cours-table :is(th,td){ padding-left:8px; padding-right:8px; }
.ffgp.ville-affinee .cours-table th{ padding-left:14px; }
.ffgp.ville-affinee .cours-table td:last-child{ padding-right:14px; }}
@media (max-width:900px){.ffgp.ville-affinee .cours-local{ grid-template-columns:minmax(0,1fr); gap:30px; }
.ffgp.ville-affinee .cours-reperes{ max-width:680px; }
.ffgp.ville-affinee .cours-certifs-entete{ flex-wrap:nowrap; }
.ffgp.ville-affinee .cours-table th{ padding-left:23px; }
.ffgp.ville-affinee .cours-table td:last-child{ padding-right:23px; }}
@media (max-width:600px){.ffgp.ville-affinee .cours-local{ padding:24px 18px; margin-top:24px; border-radius:22px; gap:27px; }
.ffgp.ville-affinee .cours-reperes h2{ font-size:31px; margin-bottom:19px; }
.ffgp.ville-affinee .cours-reperes .cours-intro{ font-size:16px; }
.ffgp.ville-affinee .cours-voisinage{ padding-left:17px; margin-top:23px; }
.ffgp.ville-affinee .cours-pratique>div{ padding:19px 0; }
.ffgp.ville-affinee .cours-decision{ gap:20px; }
.ffgp.ville-affinee .cours-certifs-entete{ flex-wrap:wrap; gap:13px; }
.ffgp.ville-affinee .cours-certifications{ padding:19px 17px; }
.ffgp.ville-affinee .cours-certifs-details summary{ font-size:12px; }
.ffgp.ville-affinee .cours-avis figure{ padding:18px; }
.ffgp.ville-affinee .cours-semaines-entete{ padding:20px 16px; }
.ffgp.ville-affinee .cours-semaines-entete h3{ font-size:20px; }
.ffgp.ville-affinee .cours-table :is(th,td){ padding:12px 5px; }
.ffgp.ville-affinee .cours-table th{ padding-left:11px; }
.ffgp.ville-affinee .cours-table th>strong{ font-size:12px; white-space:normal; }
.ffgp.ville-affinee .cours-table td:last-child{ padding-right:10px; }
.ffgp.ville-affinee .cours-table .cours-prix{ font-size:15px; }
.ffgp.ville-affinee .cours-inscription{ padding:9px 10px; gap:6px; font-size:11px; min-height:44px; }
.ffgp.ville-affinee .cours-inscription>span{ display:none; }
.ffgp.ville-affinee .cours-semaines .cours-semaines-aide{ padding-left:16px; padding-right:16px; }
.ffgp.ville-affinee .cours-autres-semaines{ padding-left:16px; padding-right:16px; font-size:11px; }
.ffgp.ville-affinee .cours-local+.nearby{ padding:24px 18px; margin-top:24px; }
.ffgp.ville-affinee .cours-local+.nearby h2{ font-size:27px; }}
.ffgp.ville-affinee .selection-action .reassure{ margin-top:3px; }
.ffgp.ville-affinee .paiements-reperes{ grid-column:1/-1; margin-top:5px; text-align:center; }
.ffgp.ville-affinee .paiements-logos{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; }
.ffgp.ville-affinee .paiements-logos img{ display:block; width:48px; height:32px; object-fit:contain; background:#fff; border:1px solid #e1dce8; border-radius:5px; }
.ffgp.ville-affinee .paiements-reperes p{ margin:5px 0 0; font:500 12px/1.5 var(--text); color:#46544d; }
.ffgp.ville-affinee .paiements-reperes p span{ font-weight:400; color:#5a6472; }
@media(max-width:400px){.ffgp.ville-affinee .paiements-logos{ gap:5px; }
.ffgp.ville-affinee .paiements-logos img{ width:42px; height:28px; }}
.ffgp.ville-affinee .paiements-conditions{ display:block; margin-top:3px; }
.ffgp.ville-affinee .paiements-reperes .paiements-securite{ display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 6px; font-weight:700; font-size:13px; color:#175e47; }
.ffgp.ville-affinee .paiements-securite svg{ flex-shrink:0; }
.ffgp.ville-affinee .hero{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); grid-template-rows:max-content max-content 1fr; padding:28px; column-gap:32px; }
.ffgp.ville-affinee .hero>.identity{ grid-column:1; grid-row:1; }
.ffgp.ville-affinee .hero>.reservation{ grid-column:2; grid-row:1/4; align-self:start; }
.ffgp.ville-affinee .hero>.lieu-compact{ grid-column:1; grid-row:2; margin-top:22px; }
.ffgp.ville-affinee .lieu-compact .location-card{ padding:15px 18px 6px; }
.ffgp.ville-affinee .lieu-compact .place-line{ font-size:15px; }
.ffgp.ville-affinee .lieu-compact .changer-ville{ border:0; padding:6px 18px 12px; min-height:44px; }
.ffgp.ville-affinee .hero>.equipe-invitation{ grid-column:1; grid-row:3; align-self:start; grid-template-columns:minmax(0,1fr); gap:0; margin-top:22px; padding:24px; border:1px solid #52396d; border-top:4px solid #8966ac; border-radius:22px; background:radial-gradient(ellipse at 90% 10%,#67439788,transparent 65%),linear-gradient(125deg,#17132d,#352050); color:#e4dbea; box-shadow:0 14px 34px #30213f18; }
.ffgp.ville-affinee .hero .equipe-message .eyebrow{ display:inline-block; color:#e1cff3; font-size:11px; letter-spacing:1.1px; margin-bottom:14px; padding:5px 10px; border:1px solid #ffffff30; border-radius:99px; background:#ffffff0c; }
.ffgp.ville-affinee .hero .equipe-message h2{ color:#fff; font-size:28px; line-height:1.2; margin-bottom:12px; }
.ffgp.ville-affinee .hero .equipe-message h2 span{ color:#b2e3c9; }
.ffgp.ville-affinee .hero .equipe-message>p:not(.eyebrow){ font-size:15px; line-height:1.65; }
.ffgp.ville-affinee .hero .equipe-actions{ gap:14px; margin-top:18px; align-items:stretch; }
.ffgp.ville-affinee .hero .equipe-cta{ background:#fff; color:#392253; border-color:#fff; padding:12px 18px; min-height:46px; font-size:14px; }
.ffgp.ville-affinee .hero .equipe-cta:hover{ background:#efe8f8; color:#392253; }
.ffgp.ville-affinee .hero .equipe-telephone{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 12px; color:#46305d; min-height:76px; padding:12px 16px; border:1px solid #d5c4e3; border-radius:15px; background:#ffffffc7; text-decoration:none; }
.ffgp.ville-affinee .hero .equipe-telephone>span:first-child{ font-size:13px; font-weight:500; }
.ffgp.ville-affinee .hero .equipe-telephone strong{ grid-column:1; font:800 clamp(21px,1.85vw,26px)/1.35 var(--heading); letter-spacing:-.02em; white-space:nowrap; }
.ffgp.ville-affinee .hero .equipe-telephone .equipe-appel-fleche{ grid-column:2; grid-row:1/3; align-self:center; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#e8f3ed; color:#175e47; font-size:22px; }
.ffgp.ville-affinee .hero .equipe-telephone:hover{ color:#30213f; border-color:#9c7db7; background:#fff; }
.ffgp.ville-affinee .hero .equipe-reperes{ padding:0; margin-top:8px; border:0; border-top:1px solid #ffffff30; border-radius:0; background:none; }
.ffgp.ville-affinee .hero .equipe-sur-devis{ color:#b2e3c9; font-size:13px; cursor:pointer; padding-top:10px; min-height:44px; }
.ffgp.ville-affinee .hero .equipe-reperes dl{ margin:12px 0 0; }
.ffgp.ville-affinee .hero .equipe-reperes dl>div{ padding:10px 0; border-color:#ffffff26; }
.ffgp.ville-affinee .hero .equipe-reperes dt{ color:#fff; font-size:14px; }
.ffgp.ville-affinee .hero .equipe-reperes dd{ color:#ded4e8; font-size:13px; }
.ffgp.ville-affinee .hero .equipe-invitation :focus-visible{ outline-color:#b2e3c9; }
.ffgp.ville-affinee .reservation .mode-question{ font-size:17px; margin-bottom:12px; }
.ffgp.ville-affinee .reservation-mode .mode-illus{ width:90px; height:64px; }
.ffgp.ville-affinee .reservation-mode .mode-carte{ padding:12px; min-height:92px; }
.ffgp.ville-affinee .reservation .offers legend{ margin-top:4px; margin-bottom:12px; }
.ffgp.ville-affinee .reservation .offer{ min-height:166px; }
.ffgp.ville-affinee .reservation .included{ margin-bottom:20px; }
.ffgp.ville-affinee .reservation .paiements-reperes p{ max-width:none; }
.ffgp.ville-affinee .reservation-planning .planning-question{ font-size:17px; }
.ffgp.ville-affinee .hero{ padding:24px; column-gap:28px; }
.ffgp.ville-affinee .hero .course-mark{ margin-bottom:14px; }
.ffgp.ville-affinee .hero .identity h1{ margin-bottom:16px; }
.ffgp.ville-affinee .hero .identity h1 span{ font-size:clamp(46px,4.3vw,62px); }
.ffgp.ville-affinee .hero>.lieu-compact{ margin-top:16px; }
.ffgp.ville-affinee .hero>.equipe-invitation{ position:relative; isolation:isolate; overflow:hidden; margin-top:16px; padding:22px; border:1px solid #57436d; border-radius:22px; background:radial-gradient(ellipse at 100% 0,#69489185,transparent 65%),linear-gradient(135deg,#231832,#352050); }
.ffgp.ville-affinee .hero>.equipe-invitation::before{ content:''; position:absolute; z-index:-1; width:190px; height:190px; right:-110px; top:-80px; border:1px solid #b2e3c93b; border-radius:50%; box-shadow:0 0 0 20px #b2e3c908,0 0 0 40px #b2e3c907; pointer-events:none; }
.ffgp.ville-affinee .hero .equipe-message .eyebrow{ padding:0; border:0; border-radius:0; background:none; color:#dfc9f4; margin-bottom:10px; }
.ffgp.ville-affinee .hero .equipe-message h2{ font-size:26px; line-height:1.18; letter-spacing:-.8px; margin-bottom:10px; }
.ffgp.ville-affinee .hero .equipe-message>p:not(.eyebrow){ font-size:14px; line-height:1.55; }
.ffgp.ville-affinee .hero .equipe-actions{ gap:10px; margin-top:14px; }
.ffgp.ville-affinee .hero .equipe-cta{ min-height:44px; padding:11px 16px; font-size:13px; }
.ffgp.ville-affinee .hero .equipe-telephone{ grid-template-columns:36px minmax(0,1fr); align-items:center; column-gap:12px; row-gap:1px; min-height:68px; padding:10px 12px; border:1px solid #ffffff28; border-radius:15px; background:#ffffff08; color:#fff; }
.ffgp.ville-affinee .hero .equipe-telephone>span:first-child{ grid-column:2; color:#e2d7ec; font-size:12px; line-height:1.4; }
.ffgp.ville-affinee .hero .equipe-telephone strong{ grid-column:2; color:#bcebd1; font-size:clamp(21px,1.85vw,26px); line-height:1.3; }
.ffgp.ville-affinee .hero .equipe-appel-icone{ display:grid; place-items:center; grid-column:1; grid-row:1/3; width:36px; height:36px; border-radius:50%; background:#b2e3c9; color:#175e47; }
.ffgp.ville-affinee .hero .equipe-icone-telephone{ display:block; width:18px; height:18px; }
.ffgp.ville-affinee .hero .equipe-telephone:hover{ background:#ffffff12; border-color:#b2e3c9; color:#fff; }
.ffgp.ville-affinee .hero .equipe-reperes{ margin-top:4px; }
.ffgp.ville-affinee .hero .equipe-sur-devis{ padding-top:9px; }
.ffgp.ville-affinee .reservation .offer{ min-height:144px; }
.ffgp.ville-affinee .reservation .included{ margin-bottom:14px; }
.ffgp.ville-affinee .cours-local+.nearby{ background:radial-gradient(ellipse at 100% 0,#69489185,transparent 65%),linear-gradient(135deg,#231832,#352050); border-color:#57436d; padding:30px; color:#e4dbea; }
.ffgp.ville-affinee .nearby .eyebrow{ color:#c5e8d5; }
.ffgp.ville-affinee .nearby .section-title{ color:#fff; }
.ffgp.ville-affinee .nearby-header>p, .ffgp.ville-affinee .nearby .distances{ color:#ded4e8; }
.ffgp.ville-affinee .nearby .proches{ gap:14px; }
.ffgp.ville-affinee .nearby .proche{ position:relative; display:flex; flex-direction:column; align-items:center; padding:20px 14px 16px; border:1px solid #e4d9ed; background:#faf7fc; border-radius:19px; text-align:center; }
.ffgp.ville-affinee .proche-pin{ display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#e4f3ea; color:#175e47; margin-bottom:12px; }
.ffgp.ville-affinee .proche-pin svg{ display:block; width:20px; height:20px; }
.ffgp.ville-affinee .nearby .km{ color:#604184; font-size:11px; padding:3px 10px; margin-bottom:12px; border:1px solid #dcd0e7; background:#f1eaf7; border-radius:99px; }
.ffgp.ville-affinee .nearby .proche b{ color:var(--ink); font-size:16px; }
.ffgp.ville-affinee .nearby .proche i{ color:var(--muted); margin-top:5px; }
.ffgp.ville-affinee .nearby .proche p{ flex:1; color:var(--muted); font-size:13px; margin:12px 0; min-height:40px; }
.ffgp.ville-affinee .nearby .proche>a{ display:flex; align-items:center; justify-content:center; min-height:44px; width:100%; padding:9px 8px; border-radius:99px; text-decoration:none; color:#fff; background:#604184; font-size:12px; }
.ffgp.ville-affinee .nearby .proche>a:hover{ background:#493063; }
.ffgp.ville-affinee .nearby .distances{ text-align:center; margin-top:18px; }
.ffgp.ville-affinee .explorer{ padding:34px; margin-bottom:24px; border:1px solid #ddd2e6; border-radius:26px; background:linear-gradient(125deg,#f2eaf8,#edf6f0); scroll-margin-top:28px; }
.ffgp.ville-affinee .explorer-entete{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; margin-bottom:26px; }
.ffgp.ville-affinee .explorer-entete .eyebrow{ margin-bottom:7px; }
.ffgp.ville-affinee .explorer h2{ font-size:34px; line-height:1.2; letter-spacing:-1px; }
.ffgp.ville-affinee .explorer h3{ font-size:18px; line-height:1.4; letter-spacing:-.4px; margin-bottom:16px; }
.ffgp.ville-affinee .explorer-pilier{ display:inline-flex; gap:14px; align-items:center; min-height:44px; color:#604184; font-size:13px; font-weight:700; }
.ffgp.ville-affinee .explorer-grille{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:28px; }
.ffgp.ville-affinee .explorer-ressources{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ffgp.ville-affinee .explorer-article{ display:flex; flex-direction:column; gap:12px; padding:18px; background:#fff; border:1px solid #e1d8e8; border-radius:16px; text-decoration:none; }
.ffgp.ville-affinee .explorer-article-titre{ display:flex; justify-content:space-between; gap:10px; color:#392253; font:700 15px/1.5 var(--heading); }
.ffgp.ville-affinee .explorer-article-titre>span{ flex-shrink:0; color:#604184; }
.ffgp.ville-affinee .explorer-description{ color:var(--muted); font-size:13px; line-height:1.65; }
.ffgp.ville-affinee .explorer-article:hover{ border-color:#9d80b6; background:#fffdff; }
.ffgp.ville-affinee .explorer-pistes{ display:flex; flex-direction:column; gap:16px; }
.ffgp.ville-affinee .explorer-pistes>section{ padding:22px; border:1px solid #d8cbe3; border-radius:20px; background:#fff8; }
.ffgp.ville-affinee .explorer-pistes .eyebrow{ font-size:10px; letter-spacing:1.2px; margin-bottom:8px; }
.ffgp.ville-affinee .explorer-pistes h3{ margin-bottom:10px; }
.ffgp.ville-affinee .explorer-pistes a{ display:flex; justify-content:space-between; gap:10px; min-height:44px; padding:9px 0; border-top:1px solid #e1d8e8; color:#604184; font-size:14px; line-height:1.5; text-decoration:none; }
.ffgp.ville-affinee .explorer-pistes a:hover{ color:#175e47; text-decoration:underline; }
@media(max-width:1100px){.ffgp.ville-affinee .explorer-grille{ grid-template-columns:1fr; }
.ffgp.ville-affinee .explorer-pistes{ display:grid; grid-template-columns:1fr 1fr; }}
@media(max-width:760px){.ffgp.ville-affinee .nearby .proche{ padding:16px 11px 12px; }
.ffgp.ville-affinee .nearby .proche b{ font-size:14px; }
.ffgp.ville-affinee .nearby .proche p{ font-size:12px; }
.ffgp.ville-affinee .nearby .proche>a{ font-size:11px; }
.ffgp.ville-affinee .explorer{ padding:24px 18px; border-radius:22px; }
.ffgp.ville-affinee .explorer h2{ font-size:29px; }
.ffgp.ville-affinee .explorer-ressources, .ffgp.ville-affinee .explorer-pistes{ grid-template-columns:1fr; }
.ffgp.ville-affinee .explorer-article{ padding:18px; }}
@media(min-width:761px) and (max-width:1100px){.ffgp.ville-affinee .hero{ padding:24px; column-gap:24px; }
.ffgp.ville-affinee .hero .equipe-message h2{ font-size:25px; }
.ffgp.ville-affinee .reservation-mode .mode-carte{ padding:10px 8px; }
.ffgp.ville-affinee .reservation-mode .mode-illus{ width:66px; height:48px; }}
@media(max-width:760px){.ffgp.ville-affinee .hero{ padding:0; }
.ffgp.ville-affinee .hero>.lieu-compact{ margin:0 0 18px; }
.ffgp.ville-affinee .hero>.equipe-invitation{ order:3; margin-top:20px; padding:24px; }
.ffgp.ville-affinee .reservation-mode .mode-illus{ width:66px; height:48px; }
.ffgp.ville-affinee .reservation-mode .mode-carte{ padding:10px 8px; }
.ffgp.ville-affinee .reservation .offer{ min-height:0; }}
.ffgp.coordonnees-page .deux-col .ticket{ position:static; min-width:0; }
.ffgp.coordonnees-page .ticket .tete{ flex-wrap:wrap; }
.ffgp.coordonnees-page .ticket .tete>div:not(.ticket-montant){ flex:1; min-width:160px; }
.ffgp.coordonnees-page .ticket-montant{ margin-left:auto; text-align:right; }
.ffgp.coordonnees-page .ticket-montant strong{ display:block; font:800 28px/1.25 var(--heading); letter-spacing:-1px; white-space:nowrap; }
.ffgp.coordonnees-page .ticket-montant span{ display:block; font-size:13px; color:var(--muted); white-space:nowrap; }
.ffgp.coordonnees-page .ticket-ajustement, .ffgp.coordonnees-page .ticket-plan{ border-top:1px solid var(--line); margin-top:12px; }
.ffgp.coordonnees-page .ticket-ajustement>summary{ padding:12px 0; min-height:44px; cursor:pointer; font-size:14px; font-weight:700; color:var(--violet); line-height:1.5; }
.ffgp.coordonnees-page .ticket-planning{ padding:6px 0 2px; }
.ffgp.coordonnees-page .ticket-plan-entete{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0 12px; }
.ffgp.coordonnees-page .ticket-plan h2{ font-size:15px; line-height:1.4; letter-spacing:-.3px; }
.ffgp.coordonnees-page .ticket-plan-carte{ overflow:hidden; border-radius:14px; background:var(--pale); }
.ffgp.coordonnees-page .ticket-plan-carte iframe{ display:block; border:0; width:100%; height:200px; }
.ffgp.coordonnees-page .ticket-itineraire{ display:inline-flex; align-items:center; min-height:44px; font-size:13px; color:var(--violet); gap:8px; }
.ffgp.coordonnees-page .ticket-ajustement>summary:focus-visible{ outline:3px solid #8055bc; outline-offset:3px; border-radius:4px; }
@media(min-width:960px){.ffgp.coordonnees-page .top .wrap{ min-height:50px; }
.ffgp.coordonnees-page .v6-note{ padding-block:2px; }
.ffgp.coordonnees-page #confiance{ padding:5px 16px !important; }
.ffgp.coordonnees-page .page{ padding:8px 0 24px; }
.ffgp.coordonnees-page .retour{ padding:2px 0 6px; }
.ffgp.coordonnees-page .deux-col{ grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:22px; }
.ffgp.coordonnees-page .carte{ padding:20px 24px; }
.ffgp.coordonnees-page .ticket .tete{ margin-bottom:6px; }
.ffgp.coordonnees-page .ticket .t{ font-size:16px; }
.ffgp.coordonnees-page .ticket .ligne{ padding:7px 0; }
.ffgp.coordonnees-page .ticket .planning-ticket strong{ display:inline; margin:0 0 0 8px; }
.ffgp.coordonnees-page .ticket .planning-ticket small{ margin-top:2px; }
.ffgp.coordonnees-page .ticket .tot{ padding-top:8px; line-height:1.35; }
.ffgp.coordonnees-page .ticket .actions{ margin-top:6px; line-height:1.45; }
.ffgp.coordonnees-page .ticket .actions a{ display:inline-flex; align-items:center; min-height:28px; }
.ffgp.coordonnees-page .ticket-ajustement{ margin-top:4px; }
.ffgp.coordonnees-page .ticket-ajustement>summary{ padding:8px 0; min-height:38px; }
.ffgp.coordonnees-page .ticket-plan{ margin-top:0; }
.ffgp.coordonnees-page .ticket-itineraire{ min-height:32px; }
.ffgp.coordonnees-page .ticket-plan-carte iframe{ height:180px; }
.ffgp.coordonnees-page .titre-page{ font-size:32px; margin-bottom:8px; }
.ffgp.coordonnees-page .kicker{ margin-bottom:8px; }
.ffgp.coordonnees-page .chapo{ font-size:15px; line-height:1.5; }
.ffgp.coordonnees-page .champs{ gap:12px 16px; margin-top:16px; }
.ffgp.coordonnees-page .champ input{ padding:10px 13px; min-height:46px; }
.ffgp.coordonnees-page .champ .aide{ margin-top:3px; line-height:1.5; }
.ffgp.coordonnees-page .case{ padding:12px 14px; margin-top:14px; }
.ffgp.coordonnees-page .cta.plein{ margin-top:14px; }
.ffgp.coordonnees-page .suite{ line-height:1.5; }
.ffgp.coordonnees-page .champ.plein{ grid-column:auto; }}
@media(min-width:960px) and (max-height:800px){.ffgp.coordonnees-page .ticket-plan-carte iframe{ height:140px; }
.ffgp.coordonnees-page .carte{ padding:16px 22px; }
.ffgp.coordonnees-page .ticket .ligne{ padding:5px 0; font-size:14px; gap:8px; }
.ffgp.coordonnees-page .ticket .ligne:not(.planning-ticket) small{ display:inline; }
.ffgp.coordonnees-page .ticket .ligne:not(.planning-ticket) small::before{ content:' · '; }
.ffgp.coordonnees-page .ticket .tete{ margin-bottom:4px; }}
@media(min-width:960px) and (max-width:1100px) and (max-height:800px){.ffgp.coordonnees-page .ticket-plan-carte iframe{ height:120px; }}
@media(max-width:760px){.ffgp.ville-affinee .paiements-reperes p{ font-size:11px; }}
.ffgp.ville-affinee .chap .corps{ width:100%; max-width:none; }
.ffgp.ville-affinee .chap:not(#ch-programme) .corps{ padding:28px; }
.ffgp.ville-affinee .chap:not(#ch-programme) .corps p{ max-width:none; }
.ffgp.ville-affinee .chap .corps>.sous:first-child{ margin-top:0; }
.ffgp.ville-affinee #ch-avis .corps{ background:linear-gradient(145deg,#fbf9fd,#f0f7f3); }
.ffgp.ville-affinee .avis-bilan{ display:grid; grid-template-columns:auto auto 1fr; gap:10px 18px; align-items:center; padding:18px 22px; margin:22px 0; border:1px solid #ded3e8; border-radius:18px; background:#fff; }
.ffgp.ville-affinee .avis-etoiles{ display:block; color:#ad7419; font-size:18px; letter-spacing:2px; white-space:nowrap; }
.ffgp.ville-affinee .avis-note{ font:800 29px/1.2 var(--heading); letter-spacing:-1px; color:#30213f; }
.ffgp.ville-affinee .avis-source{ color:#626776; font-size:13px; line-height:1.5; }
.ffgp.ville-affinee .avis-temoignages{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ffgp.ville-affinee .avis-temoignage{ min-width:0; display:flex; flex-direction:column; padding:24px; border:1px solid #ddd1e7; border-radius:20px; background:#fff; box-shadow:0 8px 24px #30213f05; }
.ffgp.ville-affinee .avis-temoignage>.avis-etoiles{ margin-bottom:16px; }
.ffgp.ville-affinee .avis-temoignage>p{ color:#3f3b4a; font-size:16px; line-height:1.7; margin:0 0 24px; }
.ffgp.ville-affinee .avis-auteur{ display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid #ebe5f0; }
.ffgp.ville-affinee .avis-initiales{ display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; border-radius:50%; background:#eee6f5; color:#604184; font:700 13px/1 var(--text); }
.ffgp.ville-affinee .avis-auteur p{ margin:0; font-size:14px; font-weight:700; color:#30213f; }
.ffgp.ville-affinee #ch-avis .corps>p:last-child{ margin:20px 0 0; }
.ffgp.ville-affinee #ch-avis .corps>p:last-child a{ display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; text-underline-offset:4px; }
.ffgp.ville-affinee #ch-entreprises .corps{ background:radial-gradient(ellipse at 100% 100%,#c7e5d94d,transparent 65%),#faf7fc; }
.ffgp.ville-affinee .entreprise-detail-intro{ padding:2px 0 20px; }
.ffgp.ville-affinee .entreprise-detail-intro h3{ font-size:clamp(23px,2.3vw,30px); line-height:1.25; margin:0 0 16px; color:#30213f; }
.ffgp.ville-affinee .entreprise-detail-intro p{ margin:0; color:#505563; font-size:16px; line-height:1.75; }
.ffgp.ville-affinee .entreprise-detail-intro strong{ color:#175e47; }
.ffgp.ville-affinee .entreprise-detail-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; padding-top:20px; border-top:1px solid #dfd3e8; }
.ffgp.ville-affinee .entreprise-detail-actions a{ display:inline-flex; justify-content:center; align-items:center; min-height:48px; text-underline-offset:4px; font-weight:700; }
.ffgp.ville-affinee .entreprise-detail-actions a:first-child{ padding:13px 24px; border-radius:99px; background:#4a3067; color:#fff; text-decoration:none; font-family:var(--heading); font-size:14px; }
.ffgp.ville-affinee .entreprise-detail-actions a:first-child:hover{ background:#30213f; }
.ffgp.ville-affinee .entreprise-detail-actions a[href^="tel:"]{ font-size:16px; color:#175e47; }
.ffgp.ville-affinee .explorer-formations a{ display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px 0; }
.ffgp.ville-affinee .explorer-formations img{ display:block; width:32px; height:32px; object-fit:contain; }
.ffgp.ville-affinee .explorer-formations .explorer-pack{ grid-template-columns:76px minmax(0,1fr) auto; }
.ffgp.ville-affinee .explorer-pack-logos{ display:flex; align-items:center; gap:2px; }
.ffgp.ville-affinee .explorer-pack-logos img{ width:24px; height:24px; }
.ffgp.ville-affinee .explorer-ia{ margin-top:28px; padding-top:28px; border-top:1px solid #d9cbe5; }
.ffgp.ville-affinee .explorer-ia-entete{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; margin-bottom:20px; }
.ffgp.ville-affinee .explorer-ia-entete .eyebrow{ margin:0 0 7px; }
.ffgp.ville-affinee .explorer-ia-entete h3{ margin:0; font-size:24px; line-height:1.3; }
.ffgp.ville-affinee .explorer-ia-entete>a{ font-size:13px; font-weight:600; color:#604184; text-underline-offset:4px; }
.ffgp.ville-affinee .explorer-ia-outils{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ffgp.ville-affinee .explorer-ia-outils>a{ display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:14px; padding:20px; border:1px solid #d3e2db; border-radius:18px; background:#f5fcf8; color:#30213f; text-decoration:none; }
.ffgp.ville-affinee .explorer-ia-outils>.ia-claude{ border-color:#e8d3c5; background:#fff8f2; }
.ffgp.ville-affinee .explorer-ia-outils>.ia-gemini{ border-color:#d7d5f0; background:#f5f4ff; }
.ffgp.ville-affinee .explorer-ia-outils img{ width:36px; height:36px; object-fit:contain; }
.ffgp.ville-affinee .explorer-ia-outils strong{ display:block; font:800 18px/1.35 var(--heading); }
.ffgp.ville-affinee .explorer-ia-outils small{ display:block; font-size:12px; margin-top:5px; }
.ffgp.ville-affinee .explorer-ia-outils>a:hover{ border-color:#846399; box-shadow:0 4px 14px #30213f0a; }
@media(max-width:1100px){.ffgp.ville-affinee .avis-bilan{ grid-template-columns:auto 1fr; }
.ffgp.ville-affinee .avis-source{ grid-column:1/-1; }
.ffgp.ville-affinee .avis-temoignages{ grid-template-columns:1fr; }}
@media(max-width:760px){.ffgp.ville-affinee .chap:not(#ch-programme) .corps{ padding:22px 18px; }
.ffgp.ville-affinee .avis-bilan{ padding:16px; }
.ffgp.ville-affinee .avis-temoignage{ padding:20px; }
.ffgp.ville-affinee .entreprise-detail-actions{ display:grid; grid-template-columns:1fr; gap:8px; }
.ffgp.ville-affinee .entreprise-detail-actions a{ text-align:center; }
.ffgp.ville-affinee .explorer-ia-outils{ grid-template-columns:1fr; }
.ffgp.ville-affinee .explorer-ia-entete h3{ font-size:22px; }}
.ffgp.ville-affinee #ch-programme .programme-apercu{ padding:30px 28px 26px; background:#fff; }
.ffgp.ville-affinee .programme-vue-entete{ margin-bottom:24px; }
.ffgp.ville-affinee .programme-vue-entete .eyebrow{ margin-bottom:10px; color:#604184; font-size:11px; }
.ffgp.ville-affinee .programme-vue-entete h2{ font:800 clamp(25px,2.5vw,32px)/1.2 var(--heading); letter-spacing:-.035em; margin:0 0 12px; color:#30213f; }
.ffgp.ville-affinee .programme-vue-entete>p:last-child{ margin:0; max-width:none; color:#626574; font-size:15px; line-height:1.6; }
.ffgp.ville-affinee .programme-apercu .programme-notions{ margin:0; padding:0; list-style:none; counter-reset:notion; }
.ffgp.ville-affinee .programme-notions>li{ counter-increment:notion; display:grid; grid-template-columns:38px minmax(0,1fr); gap:18px; align-items:start; padding:22px 0; border-top:1px solid #e8e0ef; }
.ffgp.ville-affinee .programme-notions>li::before{ content:counter(notion,decimal-leading-zero); display:grid; place-items:center; width:36px; height:36px; margin-top:1px; border:1px solid #ded1e9; border-radius:12px; background:#f5f0fa; color:#604184; font:700 12px/1 var(--heading); }
.ffgp.ville-affinee .programme-notions h3{ margin:0 0 12px; font:700 18px/1.4 var(--heading); letter-spacing:-.02em; color:#30213f; }
.ffgp.ville-affinee .programme-notions ul{ display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none; }
.ffgp.ville-affinee .programme-notions ul>li{ display:block; counter-increment:none; border:1px solid #e5dfeb; border-radius:7px; padding:4px 9px; font:500 13px/1.5 var(--text); color:#575063; background:#faf8fc; }
.ffgp.ville-affinee .programme-notions ul>li::before{ content:none; }
.ffgp.ville-affinee .programme-vers-pilier{ padding-top:22px; border-top:1px solid #e2d7eb; }
.ffgp.ville-affinee .programme-vers-pilier>a{ display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:48px; padding:13px 21px; border:1px solid #51356e; border-radius:99px; background:#4a3067; color:#fff; font:700 14px/1.5 var(--heading); text-decoration:none; }
.ffgp.ville-affinee .programme-vers-pilier>a:hover{ background:#30213f; }
.ffgp.ville-affinee .programme-vers-pilier>p{ margin:12px 0 0; max-width:none; font-size:13px; color:#686171; }
.ffgp.ville-affinee #ch-programme>.lecture>summary{ min-height:58px; padding:17px 28px; background:#f6f2fa; }
.ffgp.ville-affinee #ch-programme>.lecture>summary h2{ font:600 15px/1.45 var(--text); color:#604184; letter-spacing:0; }
.ffgp.ville-affinee #ch-programme .corps{ padding:28px; background:#fff; }
.ffgp.ville-affinee .programme-introduction{ padding:0; }
.ffgp.ville-affinee .programme-introduction h3.sous, .ffgp.ville-affinee .programme-detail-intro h3.sous{ max-width:none; font-size:24px; line-height:1.3; margin:0 0 14px; }
.ffgp.ville-affinee #ch-programme .corps p{ max-width:none; }
.ffgp.ville-affinee .programme-introduction p{ margin-bottom:20px; font-size:16px; }
.ffgp.ville-affinee .programme-competences{ padding:0; border:0; border-radius:0; background:#fff; }
.ffgp.ville-affinee .programme-competences ul{ display:block; }
.ffgp.ville-affinee .programme-competences li{ border-bottom:1px solid #e9e2ef; padding:12px 0; color:#4f465a; font-size:15px; }
.ffgp.ville-affinee .programme-competences li:last-child{ border-bottom:1px solid #e9e2ef; }
.ffgp.ville-affinee .programme-actions{ gap:16px; padding:24px 0; }
.ffgp.ville-affinee .programme-actions a{ color:#604184; font-size:14px; }
.ffgp.ville-affinee .programme-contexte{ background:#faf8fc; border-color:#ded3e8; color:#604184; }
.ffgp.ville-affinee .programme-detail-intro{ padding:14px 0 20px; }
.ffgp.ville-affinee .programme-detail-intro p{ font-size:16px; }
.ffgp.ville-affinee .programme-module, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"]){ display:grid; grid-template-columns:36px minmax(0,1fr); gap:18px; padding:25px 0; border:0; border-top:1px solid #e4dce9; border-radius:0; background:#fff; }
.ffgp.ville-affinee .programme-module::before, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"])::before{ grid-column:1; grid-row:1; display:grid; place-items:center; width:34px; height:34px; padding:0; text-align:center; font:700 12px/1 var(--heading); letter-spacing:0; color:#604184; -webkit-text-stroke:0; border-radius:50%; background:#f2ebf8; }
.ffgp.ville-affinee .programme-module .programme-module-texte, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"]) .programme-module-texte{ grid-column:2; grid-row:1; }
.ffgp.ville-affinee .programme-module .programme-module-texte h3{ font-size:19px; line-height:1.4; margin:3px 0 12px; }
.ffgp.ville-affinee .programme-module p{ font-size:16px; line-height:1.75; }
@media(max-width:760px){.ffgp.ville-affinee #ch-programme .programme-apercu{ padding:24px 18px; }
.ffgp.ville-affinee .programme-notions>li{ grid-template-columns:30px minmax(0,1fr); gap:12px; padding:20px 0; }
.ffgp.ville-affinee .programme-notions>li::before{ width:29px; height:29px; border-radius:9px; font-size:11px; }
.ffgp.ville-affinee .programme-notions h3{ font-size:16px; }
.ffgp.ville-affinee .programme-notions ul{ gap:6px; }
.ffgp.ville-affinee .programme-notions ul>li{ font-size:12px; padding:4px 7px; }
.ffgp.ville-affinee .programme-vers-pilier>a{ width:100%; padding:13px 16px; font-size:13px; gap:12px; }
.ffgp.ville-affinee #ch-programme>.lecture>summary{ padding:17px 18px; }
.ffgp.ville-affinee #ch-programme .corps{ padding:24px 18px; }
.ffgp.ville-affinee .programme-module, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"]){ grid-template-columns:26px minmax(0,1fr); gap:12px; }
.ffgp.ville-affinee .programme-module::before, .ffgp.ville-affinee .programme-module:is([data-etape="02"],[data-etape="04"])::before{ width:25px; height:25px; font-size:10px; }
.ffgp.ville-affinee .programme-module .programme-module-texte h3{ font-size:17px; }}
.ffgp.confirmation-page .page{ padding-top:26px; }
.ffgp.confirmation-page .titre-page{ font-size:clamp(29px,3.4vw,42px); line-height:1.2; letter-spacing:-1.3px; }
.ffgp.confirmation-page .kicker{ margin-top:14px; }
.ffgp.confirmation-page .deux-col{ gap:24px; }
.ffgp.confirmation-page .deux-col .ticket{ position:static; }
.ffgp.confirmation-page .carte{ border-color:#ded4e8; box-shadow:0 10px 32px #30213f06; }
.ffgp.confirmation-page .ticket{ border-top-color:#604184; }
.ffgp.confirmation-page .paiement-carte{ padding:26px 28px; }
.ffgp.confirmation-page .paiement-entete{ display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; }
.ffgp.confirmation-page .paiement-entete .eyebrow{ font-size:10px; letter-spacing:1.2px; color:#604184; margin-bottom:7px; }
.ffgp.confirmation-page .paiement-entete h2{ color:#30213f; font-size:27px; line-height:1.2; letter-spacing:-.8px; }
.ffgp.confirmation-page .paiement-cadenas{ display:grid; place-items:center; width:46px; height:46px; flex-shrink:0; border:1px solid #d0e3d8; border-radius:15px; background:#eff7f2; color:#175e47; }
.ffgp.confirmation-page .paiement-coordonnees{ display:flex; align-items:start; justify-content:space-between; gap:16px; padding:16px 18px; background:#f8f5fb; border:1px solid #e9e1ef; border-radius:15px; }
.ffgp.confirmation-page .paiement-coordonnees>div{ min-width:0; }
.ffgp.confirmation-page .paiement-coordonnees h3{ font:700 13px/1.5 var(--heading); color:#30213f; }
.ffgp.confirmation-page .recap-coords{ margin-top:5px; font-size:13px; line-height:1.6; gap:2px; overflow-wrap:anywhere; }
.ffgp.confirmation-page .paiement-coordonnees>a{ flex-shrink:0; font-size:12px; padding:3px 0; }
.ffgp.confirmation-page .paiement-module{ padding-top:20px; }
.ffgp.confirmation-page .paiement-demo{ color:#746a7e; font-size:11px; line-height:1.5; margin-bottom:16px; }
.ffgp.confirmation-page .paiement-moyens{ border:0; padding:0; margin:0; min-width:0; }
.ffgp.confirmation-page .paiement-moyens legend{ font:700 14px/1.5 var(--heading); margin-bottom:12px; color:#30213f; }
.ffgp.confirmation-page .paiement-choix{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.ffgp.confirmation-page .paiement-choix label{ position:relative; min-width:0; cursor:pointer; }
.ffgp.confirmation-page .paiement-choix input{ position:absolute; opacity:0; width:1px; height:1px; }
.ffgp.confirmation-page .paiement-moyen{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:86px; padding:12px 7px; background:#fff; border:1.5px solid #e1d8e9; border-radius:13px; color:#5e5667; transition:border-color .15s,background .15s; }
.ffgp.confirmation-page .paiement-moyen img{ display:block; width:64px; height:28px; object-fit:contain; }
.ffgp.confirmation-page input[value="paypal"]+.paiement-moyen img{ width:100px; height:42px; margin-block:-7px; }
.ffgp.confirmation-page .paiement-moyen strong, .ffgp.confirmation-page .paiement-moyen small{ font:600 12px/1.4 var(--text); text-align:center; }
.ffgp.confirmation-page .paiement-choix input:checked+.paiement-moyen{ background:#f4eef9; border-color:#604184; color:#402650; box-shadow:0 0 0 1px #604184; }
.ffgp.confirmation-page .paiement-choix input:focus-visible+.paiement-moyen{ outline:3px solid #8055bc; outline-offset:4px; }
.ffgp.confirmation-page .paiement-choix label:hover .paiement-moyen{ border-color:#9476aa; }
.ffgp.confirmation-page .paiement-panel{ margin-top:17px; }
.ffgp.confirmation-page .paiement-cartes{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; color:#4f485b; margin-bottom:9px; }
.ffgp.confirmation-page .paiement-cartes>div{ display:flex; gap:6px; }
.ffgp.confirmation-page .paiement-cartes img{ display:block; object-fit:contain; width:39px; height:26px; border:1px solid #eee8f2; border-radius:4px; }
.ffgp.confirmation-page .paiement-champs-apercu{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ffgp.confirmation-page .paiement-champ-large{ grid-column:1/-1; }
.ffgp.confirmation-page .paiement-champ-factice{ min-width:0; }
.ffgp.confirmation-page .paiement-champ-factice>span{ display:block; font-size:12px; font-weight:600; color:#544c60; margin-bottom:5px; }
.ffgp.confirmation-page .paiement-champ-valeur{ padding:10px 13px; border:1px solid #ded7e8; border-radius:9px; color:#766d82; font-size:14px; background:#fff; }
.ffgp.confirmation-page .paiement-panel-note{ margin-top:12px; color:#736a7e; font-size:12px; line-height:1.6; }
.ffgp.confirmation-page .paiement-panel-prestataire{ padding:19px; border:1px solid #e6deed; border-radius:13px; background:#fcfafe; }
.ffgp.confirmation-page .paiement-panel-prestataire h3{ font-size:17px; line-height:1.4; margin-bottom:9px; color:#30213f; }
.ffgp.confirmation-page .paiement-panel-prestataire p{ font-size:13px; line-height:1.65; color:#635a70; }
.ffgp.confirmation-page .paiement-facilite{ border-top:1px solid #e5dbea; margin-top:14px; padding-top:14px; }
.ffgp.confirmation-page .paiement-facilite strong{ display:block; color:#604184; }
.ffgp.confirmation-page .paiement-bouton{ justify-content:space-between; min-height:53px; padding:14px 23px; background:#4a3067; color:#fff; margin-top:22px; font-size:16px; }
.ffgp.confirmation-page .paiement-bouton:hover{ background:#30213f; }
.ffgp.confirmation-page .paiement-reassurance{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:3px 10px; text-align:center; padding:12px 6px 0; font-size:11px; line-height:1.6; color:#676071; }
.ffgp.confirmation-page .paiement-reassurance strong{ color:#175e47; font-weight:600; }
.ffgp.confirmation-page .paiement-suite{ margin-top:20px; padding:14px 16px; border-radius:13px; border:1px solid #dbe8e0; background:#f4f9f6; }
.ffgp.confirmation-page .paiement-suite h3{ font:700 12px/1.5 var(--heading); color:#175e47; margin-bottom:5px; }
.ffgp.confirmation-page .paiement-suite p{ color:#576761; font-size:12px; line-height:1.65; }
.ffgp.confirmation-page .paiement-aide{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:4px 12px; padding-top:18px; font-size:12px; color:#6b6375; }
.ffgp.confirmation-page .paiement-aide a{ color:#4a3067; font:800 17px/1.5 var(--heading); text-decoration:none; white-space:nowrap; }
.ffgp.confirmation-page .ticket .ligne{ padding:10px 0; }
.ffgp.confirmation-page #changer{ padding:16px 20px; }
.ffgp.confirmation-page #changer .offers{ grid-template-columns:1fr; }
.ffgp .parcours-qualite{ display:flex; align-items:center; gap:16px; width:min(480px,100%); margin:18px 0 0 auto; padding:12px 16px; border:1px solid #e4ddea; border-radius:16px; background:#fff; }
.ffgp .parcours-qualite img{ display:block; width:180px; height:93px; flex-shrink:0; object-fit:contain; }
.ffgp .parcours-qualite figcaption{ font-size:11px; line-height:1.55; color:#6b6374; }
.ffgp .parcours-qualite strong{ display:block; color:#4a3067; font:700 12px/1.5 var(--heading); margin-bottom:5px; }
@media(min-width:960px){.ffgp.confirmation-page .deux-col{ grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr); }}
@media(max-width:760px){.ffgp.confirmation-page .page{ padding-top:20px; }
.ffgp.confirmation-page .paiement-carte{ padding:22px 18px; }
.ffgp.confirmation-page .paiement-entete h2{ font-size:24px; }
.ffgp.confirmation-page .paiement-entete .eyebrow{ font-size:9px; }
.ffgp.confirmation-page .paiement-coordonnees{ padding:13px; gap:8px; }
.ffgp.confirmation-page .paiement-coordonnees>a{ font-size:11px; }
.ffgp.confirmation-page .paiement-choix{ gap:7px; }
.ffgp.confirmation-page .paiement-moyen{ min-height:82px; padding:10px 4px; }
.ffgp.confirmation-page .paiement-moyen img{ width:53px; height:27px; }
.ffgp.confirmation-page input[value="paypal"]+.paiement-moyen img{ width:80px; height:39px; margin-block:-6px; }
.ffgp.confirmation-page .paiement-moyen strong, .ffgp.confirmation-page .paiement-moyen small{ font-size:11px; }
.ffgp.confirmation-page .paiement-champs-apercu{ gap:10px; }
.ffgp.confirmation-page .paiement-champ-factice>span{ font-size:11px; }
.ffgp.confirmation-page .paiement-champ-valeur{ padding:10px; font-size:13px; }
.ffgp .parcours-qualite{ gap:10px; padding:12px; }
.ffgp .parcours-qualite img{ width:140px; height:73px; }
.ffgp .parcours-qualite figcaption{ font-size:10px; }
.ffgp .parcours-qualite strong{ font-size:11px; }}
.ffgp.coordonnees-page .etape-colonne{ min-width:0; }
.ffgp.coordonnees-page .etape-colonne>.parcours-qualite{ width:100%; margin-top:16px; }
.ffgp.confirmation-page .confirmation-titre{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ffgp.confirmation-page .confirmation-titre>div{ min-width:0; }
.ffgp.confirmation-page .confirmation-titre>.parcours-qualite{ width:390px; flex-shrink:0; margin:0; gap:12px; }
.ffgp.confirmation-page .confirmation-titre .parcours-qualite img{ width:140px; height:73px; }
@media(min-width:960px) and (max-height:800px){.ffgp.coordonnees-page .etape-colonne>.parcours-qualite{ margin-top:12px; padding:10px 14px; }
.ffgp.coordonnees-page .etape-colonne>.parcours-qualite img{ width:140px; height:73px; }}
@media(max-width:1100px){.ffgp.confirmation-page .confirmation-titre{ gap:18px; }
.ffgp.confirmation-page .confirmation-titre>.parcours-qualite{ width:340px; }
.ffgp.confirmation-page .confirmation-titre .parcours-qualite img{ width:120px; height:62px; }}
@media(max-width:760px){.ffgp.confirmation-page .confirmation-titre{ display:block; }
.ffgp.confirmation-page .confirmation-titre>.parcours-qualite{ width:100%; margin-top:16px; }
.ffgp.coordonnees-page .etape-colonne>.parcours-qualite{ margin-top:14px; }}
.ffgp.offre-affinee .offre-simple{ padding-top:0; padding-bottom:44px; }
.ffgp.offre-affinee .hero{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.ffgp.offre-affinee .hero .course-mark{ flex-wrap:wrap; gap:10px 14px; margin-bottom:18px; }
.ffgp.offre-affinee #surtitre{ color:var(--violet); font:700 11px/1.5 var(--text); letter-spacing:1.2px; }
.ffgp.offre-affinee .hero .identity h1{ font-size:clamp(30px,3.4vw,44px); margin-bottom:20px; }
.ffgp.offre-affinee .hero .identity h1 span{ font-size:clamp(42px,4.5vw,58px); margin-top:6px; }
.ffgp.offre-affinee .identity h1 small{ display:block; margin-top:12px; color:var(--ink); font:600 21px/1.3 var(--heading); letter-spacing:-.02em; }
.ffgp.offre-affinee .hero .logos-titre{ flex-shrink:0; }
.ffgp.offre-affinee .hero .logos-titre img{ width:44px; height:44px; padding:5px; }
.ffgp.offre-affinee .hero .identity-links{ margin-top:0; font-size:14px; }
.ffgp.offre-affinee .hero>.offre-reperes{ background:#fff; box-shadow:none; border-radius:20px; }
.ffgp.offre-affinee .offre-reperes .location-card{ background:transparent; border:0; border-radius:0; box-shadow:none; padding:19px 21px 0; }
.ffgp.offre-affinee .offre-reperes .place-line{ border:0; padding:0; font-size:15px; line-height:1.55; }
.ffgp.offre-affinee .offre-reperes .place-line strong{ color:var(--green); font-size:14px; }
.ffgp.offre-affinee .offre-reperes .faits{ list-style:none; padding:0 21px; margin:14px 0 18px; font-size:13px; line-height:1.55; color:var(--muted); }
.ffgp.offre-affinee .offre-reperes .faits li{ display:flex; gap:9px; margin:0; padding:7px 0; border-top:1px solid #eee8f3; }
.ffgp.offre-affinee .offre-reperes .faits li::before{ content:''; position:static; width:6px; height:6px; flex:0 0 6px; margin-top:7px; border-radius:50%; background:var(--green); }
.ffgp.offre-affinee .hero>.offre-equipe{ padding:20px 22px; margin-top:16px; border-radius:20px; }
.ffgp.offre-affinee .hero .offre-equipe .eyebrow{ margin-bottom:8px; font-size:10px; }
.ffgp.offre-affinee .hero .offre-equipe h2{ font-size:24px; line-height:1.25; margin-bottom:9px; }
.ffgp.offre-affinee .hero .offre-equipe h2 span{ white-space:nowrap; }
.ffgp.offre-affinee .hero .offre-equipe .equipe-message>p:not(.eyebrow){ font-size:13px; max-width:43ch; }
.ffgp.offre-affinee .hero .offre-equipe .equipe-actions{ display:grid; grid-template-columns:1fr; gap:11px; margin-top:15px; }
.ffgp.offre-affinee .hero .offre-equipe .equipe-cta{ min-height:44px; padding:10px 16px; font-size:13px; }
.ffgp.offre-affinee .offre-appel{ display:flex; align-items:center; justify-content:center; gap:9px; min-height:44px; color:#e7ddee; text-decoration:none; font-size:12px; }
.ffgp.offre-affinee .offre-appel svg{ flex:0 0 17px; color:#b2e3c9; }
.ffgp.offre-affinee .offre-appel strong{ display:block; color:#bcebd1; font:800 20px/1.4 var(--heading); letter-spacing:-.02em; }
.ffgp.offre-affinee .offre-appel:hover strong{ color:#fff; }
@media(min-width:1200px){.ffgp.offre-affinee .hero .offre-equipe .equipe-actions{ grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; }
.ffgp.offre-affinee .offre-appel{ gap:7px; }
.ffgp.offre-affinee .offre-appel strong{ font-size:18px; }}
@media(min-width:761px) and (max-width:1100px){.ffgp.offre-affinee .hero{ grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); column-gap:20px; }
.ffgp.offre-affinee .hero .identity h1 span{ font-size:44px; }
.ffgp.offre-affinee .hero>.offre-equipe{ padding:18px; }
.ffgp.offre-affinee .hero .offre-equipe h2{ font-size:21px; }}
@media(max-width:760px){.ffgp.offre-affinee .hero .course-mark{ position:static; margin:0 0 12px; }
.ffgp.offre-affinee .hero .logos-titre img{ width:34px; height:34px; }
.ffgp.offre-affinee .hero .identity h1{ padding-right:0; font-size:25px; margin-bottom:12px; }
.ffgp.offre-affinee .hero .identity h1 span{ font-size:38px; margin-top:2px; }
.ffgp.offre-affinee .identity h1 small{ font-size:18px; margin-top:8px; }
.ffgp.offre-affinee .hero>.offre-reperes{ border-radius:0 0 20px 20px; border-top:0; }
.ffgp.offre-affinee .offre-reperes .location-card{ padding:10px 18px 0; }
.ffgp.offre-affinee .offre-reperes .faits{ padding:0 18px; margin:10px 0 14px; font-size:12px; }
.ffgp.offre-affinee .hero>.offre-equipe{ margin-top:18px; padding:20px; }
.ffgp.offre-affinee .hero .offre-equipe h2{ font-size:23px; }}