/* Layout: a single route — hero as the start of the road, destinations as a departure board, booking as the last stop. */
:root{
  --bg:#F2F3EF; --surface:#FFFFFF; --ink:#14181D; --muted:#56606B; --line:#D3D7D1;
  --accent:#E3A21A; --accent-ink:#1B1300; --accent-text:#8F6200; --road:#1C2128; --road-ink:#EEF0EC; --road-muted:#9AA4AE; --road-line:#E3A21A;
  --bike:#9AA3AC; --bike-light:#D4D9DE; --bike-dark:#4A525B; --bike-chrome:#C3C9CF; --bike-glass:rgba(190,215,235,.45); --bike-lamp:#FFE7A8; --bike-red:#D2463A; --tyre:#0B0E11; --ok:#2F9E5B; --bubble-ok:#1F2A22; --car1:#5B6672; --car2:#6F625C; --car3:#56636B; --car4:#665E70; --car-glass:#29313A; --car-hub:#8A939C; --car-ink:#1A1F24; --head:#C8B7A6; --bubble:#E9ECEF; --bubble-ink:#B23A30; --bag:#3E6585; --bag-dark:#15191E; --bag-light:#9CC0DC; --scene:#323A43; --scene-window:rgba(242,180,64,.28); --scene-light:#D2463A; --rider:#3D454E; --rider-2:#2C333A; --helmet:#07090B; --helmet-edge:#59626B; --visor:#4F6171;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1216; --surface:#161B21; --ink:#ECEEEA; --muted:#9AA4AE; --line:#2A3139;
  --accent:#F2B440; --accent-ink:#1B1300; --accent-text:#F2B440; --road:#1A2027; --road-ink:#EEF0EC; --road-muted:#9AA4AE; --road-line:#F2B440; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1216; --surface:#161B21; --ink:#ECEEEA; --muted:#9AA4AE; --line:#2A3139;
  --accent:#F2B440; --accent-ink:#1B1300; --accent-text:#F2B440; --road:#1A2027; --road-ink:#EEF0EC; --road-muted:#9AA4AE; --road-line:#F2B440; color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--road)}
img{max-width:100%}
[hidden]{display:none!important}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.95;letter-spacing:.005em;text-wrap:balance;margin:0;text-transform:uppercase}
h2{font-size:clamp(2.2rem,5vw,3.4rem)}
h3{font-size:1.5rem;letter-spacing:.02em}
p{margin:0;max-width:62ch}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--road);color:var(--road-ink)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.brand{font-family:var(--display);font-weight:900;font-size:1.35rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.brand span{color:var(--road-line)}
nav.links{display:flex;gap:20px;font-size:.92rem}
nav.links a{text-decoration:none;opacity:.8;padding-block:4px;border-bottom:2px solid transparent}
nav.links a:hover{opacity:1}
nav.links a[aria-current="page"]{opacity:1;border-bottom-color:var(--road-line)}
nav.sub{display:none;background:var(--road);border-top:1px solid #2E3640}
nav.sub .wrap{display:flex;gap:18px;overflow-x:auto;padding-block:10px;font-size:.88rem;color:var(--road-ink)}
nav.sub a{text-decoration:none;white-space:nowrap;opacity:.8}
nav.sub a[aria-current="page"]{opacity:1;color:var(--road-line)}
@media (max-width:860px){nav.links{display:none}nav.sub{display:block}}

.hdr-right{display:flex;align-items:center;gap:12px}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.82rem;padding:7px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px #3A434D;user-select:none}
.lang summary::-webkit-details-marker{display:none}
.lang summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}
.lang[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:170px;background:var(--road);border:1px solid #2E3640;border-radius:12px;padding:6px;display:grid;box-shadow:0 14px 34px rgba(0,0,0,.35);z-index:20}
.lang-menu a{display:flex;gap:10px;align-items:center;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:.95rem;color:var(--road-ink)}
.lang-menu a span{font-family:var(--mono);font-size:.76rem;color:var(--road-muted);width:22px}
.lang-menu a:hover{background:#262D35}
.lang-menu a[aria-current="true"]{background:#262D35}
.lang-menu a[aria-current="true"] span{color:var(--road-line)}
@media (max-width:520px){header.top .btn-sm{display:none}}
.spoken{font-size:.92rem;font-weight:600}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:600;font-size:1rem;text-decoration:none;border:0;cursor:pointer;border-radius:999px;padding:14px 24px;transition:transform .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-accent{background:var(--accent);color:var(--accent-ink)}
.btn-ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-sm{padding:9px 16px;font-size:.9rem}

/* Hero — the road */
.hero{background:var(--road);color:var(--road-ink);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;padding-block:72px 260px;align-items:end;position:relative;z-index:1}
.hero.slim .wrap{grid-template-columns:1fr;padding-block:56px 250px}
.hero h1{font-size:clamp(3.2rem,10vw,7.2rem);font-weight:900;margin-top:16px}
.hero.slim h1{font-size:clamp(2.8rem,8vw,5.6rem)}
.hero h1 em{font-style:normal;color:var(--road-line);display:block}
.hero .eyebrow{color:var(--road-muted)}
.hero .lede{margin-top:24px;font-size:1.15rem;color:#C9CFD4}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.road{position:absolute;left:0;right:0;bottom:28px;height:4px;background:repeating-linear-gradient(90deg,var(--road-line) 0 46px,transparent 46px 86px);opacity:.9;animation:drive 2.4s linear infinite}
/* La moto roule vers la droite pendant que la route défile vers la gauche */
.bike{position:absolute;right:max(16px,8%);bottom:31px;width:clamp(170px,24vw,290px);z-index:1;pointer-events:none}
.bike-svg{display:block;width:100%;height:auto;overflow:visible}
.bike-body,.riders{animation:bob .5s ease-in-out infinite alternate}
.wheel{animation:spin .6s linear infinite}
@keyframes bob{to{transform:translateY(-1.2px)}}
@keyframes spin{to{transform:rotate(360deg)}}
/* Arrière-plan : un avion décolle au loin, puis un train passe derrière la route (jamais en même temps) */
.scene{position:absolute;inset:0;pointer-events:none;z-index:0}
.track{position:absolute;left:0;right:0;bottom:96px;height:2px;background:var(--scene);opacity:.8}
.train{position:absolute;bottom:98px;left:-480px;width:clamp(300px,40vw,460px);height:auto;animation:train 12s linear infinite;animation-delay:1s}
.train svg{display:block;width:100%;height:auto}
.plane{position:absolute;right:46%;bottom:128px;width:clamp(64px,8vw,104px);opacity:0;transform-origin:center;animation:plane 12s ease-in infinite;animation-delay:6s}
.tower{position:absolute;right:40%;bottom:98px;width:clamp(34px,4vw,54px);height:auto;opacity:0;animation:tower 12s ease-in-out infinite;animation-delay:6s}
@media (max-width:620px){.tower{right:auto;left:38%;bottom:86px}.plane{right:62%;bottom:104px;animation-name:plane-m}.track{bottom:84px}.train{bottom:86px}.jam{bottom:40px;height:38px;animation-duration:28s}}
@keyframes plane-m{0%{opacity:0;transform:translate(0,0) rotate(6deg) scale(1)}4%{opacity:.9}36%{opacity:.75;transform:translate(-24vw,-50px) rotate(12deg) scale(.5)}42%{opacity:0;transform:translate(-27vw,-58px) rotate(12deg) scale(.45)}100%{opacity:0;transform:translate(-27vw,-58px) rotate(12deg) scale(.45)}}
@keyframes tower{0%{opacity:0}5%{opacity:.85}40%{opacity:.85}50%{opacity:0}100%{opacity:0}}
.jam{position:absolute;left:0;bottom:44px;height:50px;animation:jam 40s linear infinite}
.jam svg{display:block;height:100%;width:auto}
@keyframes jam{to{transform:translateX(-50%)}}
.bub{transform-box:fill-box;transform-origin:30% 100%;animation:pop 3s ease-in-out infinite}
@keyframes pop{0%,55%,100%{opacity:0;transform:scale(.4)}62%,90%{opacity:1;transform:scale(1)}}
.honk{animation:honk .6s steps(2,start) infinite}
@keyframes honk{to{visibility:hidden}}
.stand{opacity:0;transition:opacity .45s ease}
.pass-seat,.bag-top{transition:opacity .45s ease}
.bike.arrived .stand{opacity:1;transition-delay:.35s}
.bike.arrived .pass-seat,.bike.arrived .bag-top{opacity:0}
.ontime{position:absolute;left:-34%;bottom:84%;margin:0;max-width:none;display:flex;align-items:center;gap:8px;background:var(--bubble);color:var(--bubble-ok);border-radius:12px;padding:8px 12px;font-size:13px;line-height:1.3;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.3);opacity:0;transform:scale(.6);transform-origin:40% 100%;transition:opacity .3s ease,transform .3s ease}
.ontime::after{content:"";position:absolute;left:38%;bottom:-7px;border:7px solid transparent;border-bottom:0;border-top-color:var(--bubble)}
.ontime svg{width:18px;height:18px;color:var(--ok);flex:none}
.ontime span{display:grid}
.ontime b{font-weight:700}
.bike.arrived .ontime{opacity:1;transform:scale(1);transition-delay:.9s}
@media (max-width:620px){.ontime{font-size:11.5px;padding:6px 10px;left:-58%;bottom:80%}}
.wave{transform-box:fill-box;transform-origin:0% 100%}
.bike.arrived .wave{animation:wave .5s ease-in-out .9s 6 alternate}
@keyframes wave{to{transform:rotate(-18deg)}}
.bike.arrived .bike-body,.bike.arrived .riders{animation-play-state:paused}
.blink{animation:blink 1.2s steps(2,start) infinite}
@keyframes train{0%{left:-480px}34%{left:100%}100%{left:100%}}
@keyframes plane{0%{opacity:0;transform:translate(0,0) rotate(6deg) scale(1)}4%{opacity:.9}36%{opacity:.75;transform:translate(-24vw,-96px) rotate(12deg) scale(.5)}42%{opacity:0;transform:translate(-27vw,-110px) rotate(12deg) scale(.45)}100%{opacity:0;transform:translate(-27vw,-110px) rotate(12deg) scale(.45)}}
@keyframes blink{to{visibility:hidden}}
@keyframes drive{to{background-position:-86px 0}}
@media (prefers-reduced-motion:reduce){.road,.bike-body,.riders,.wheel{animation:none}.train,.plane,.tower{display:none}.jam,.bub,.honk{animation:none}.bub{opacity:1}}
.plate{background:#0B0E11;border:1px solid #2E3640;border-radius:14px;padding:22px;font-family:var(--mono);font-size:.86rem;color:#C9CFD4;display:grid;gap:14px;min-width:0}
.plate dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px}
.plate dt{color:#7E8892;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;padding-top:2px}
.plate dd{margin:0;color:#EEF0EC}
.plate .big{font-family:var(--display);font-size:2rem;font-weight:800;color:var(--road-line);letter-spacing:.03em}
@media (max-width:860px){.hero .wrap,.hero.slim .wrap{grid-template-columns:1fr;padding-block:48px 200px}}

/* Sections */
section.block .wrap{padding-block:80px}
section.block + section.block .wrap{padding-top:0}
.sec-head{display:grid;gap:14px;margin-bottom:40px}
.sec-head p{color:var(--muted)}
.more{display:inline-block;margin-top:28px;font-weight:600;text-underline-offset:5px}

.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pillar{background:var(--surface);padding:30px 26px;display:grid;gap:12px;align-content:start;min-width:0}
.pillar .k{font-family:var(--mono);font-size:.78rem;color:var(--accent-text);letter-spacing:.12em;text-transform:uppercase}
.pillar p{color:var(--muted);font-size:.98rem}
@media (max-width:820px){.pillars{grid-template-columns:1fr}}

/* Galerie photo de la moto */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto;gap:12px}
.gallery figure{margin:0;position:relative;border-radius:14px;overflow:hidden;background:var(--surface);min-width:0}
.gallery img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;max-width:100%}
.gallery .g0{grid-row:span 2}
.gallery .g0{background:#E2E2E4}
.gallery .g0 img{aspect-ratio:auto;object-fit:contain}
.gallery figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(14,18,22,.72);color:#EEF0EC;padding:4px 9px;border-radius:999px}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery .g0{grid-column:span 2;grid-row:auto}.gallery .g0 img{aspect-ratio:847/603}}

/* Kit list — equipment as a packing manifest */
.kit{display:grid;gap:0;border-top:2px solid var(--ink)}
.kit-item{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.kit-item .zone{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);padding-top:6px}
.kit-item h3{font-size:1.9rem}
.kit-item p{color:var(--muted)}
.tag{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--muted)}
@media (max-width:760px){.kit-item{grid-template-columns:1fr;gap:8px}}

/* Facts strip */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.fact{border-top:3px solid var(--accent);padding-top:14px;display:grid;gap:4px;min-width:0}
.fact b{font-family:var(--display);font-size:2rem;font-weight:800;text-transform:uppercase;line-height:1}
.fact span{color:var(--muted);font-size:.95rem}
@media (max-width:820px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Departure board */
.board{background:var(--road);color:var(--road-ink);border-radius:16px;overflow:hidden}
.board-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid #2E3640;font-family:var(--mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--road-muted)}
.board-head b{color:var(--road-line);font-weight:500}
.board ul{list-style:none;margin:0;padding:0}
.board li{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center;padding:18px 24px;border-bottom:1px dashed #2E3640}
.board li:last-child{border-bottom:0}
.board .code{font-family:var(--mono);color:var(--road-line);font-size:.9rem;letter-spacing:.08em}
.board .dest{font-family:var(--display);font-weight:800;font-size:1.55rem;text-transform:uppercase;letter-spacing:.02em;min-width:0}
.board .note{font-size:.88rem;color:var(--road-muted);text-align:right}
@media (max-width:620px){.board li{grid-template-columns:1fr;gap:4px}.board .note{text-align:left}}

.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.col{display:grid;gap:10px;align-content:start;border-top:3px solid var(--ink);padding-top:18px;min-width:0}
.col p{color:var(--muted);font-size:.98rem}
@media (max-width:820px){.cols{grid-template-columns:1fr}}
.steps{counter-reset:s}
.steps .col::before{counter-increment:s;content:attr(data-step) " " counter(s);font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* Booking */
.booking{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
@media (max-width:900px){.booking{grid-template-columns:1fr}}
.contact-card{display:grid;gap:22px;min-width:0}
.num{display:grid;gap:6px}
.num .label{font-family:var(--mono);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.num .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.num .val{font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,4.5vw,2.6rem);letter-spacing:.02em;user-select:all}
.num .val.sm{font-size:clamp(1.5rem,3.6vw,2rem)}
.num .mail{font-weight:600;user-select:all;word-break:break-all}
.copy{font-family:var(--body);font-size:.85rem;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer}
form.req{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;display:grid;gap:18px;min-width:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.grid2{grid-template-columns:1fr}form.req{padding:20px}}
.field{display:grid;gap:6px;min-width:0}
.field label{font-size:.88rem;font-weight:600}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:100%}
.field textarea{min-height:88px;resize:vertical}
.seg{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.seg legend{font-size:.88rem;font-weight:600;margin-bottom:8px;padding:0}
.seg label{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--bg);cursor:pointer;font-weight:600;font-size:.95rem}
.seg label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.seg input{accent-color:var(--accent)}
.blockf{display:grid;gap:14px;border-top:1px solid var(--line);padding-top:16px}
.sub{font-family:var(--mono);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.grid3{display:grid;grid-template-columns:120px 1fr;gap:16px}
@media (max-width:560px){.grid3{grid-template-columns:100px 1fr}}
.check{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--accent)}
.check.optin{align-items:flex-start;font-weight:400;font-size:.9rem;color:var(--muted)}
.check.optin input{margin-top:3px;flex:none}
.star{color:var(--accent-text)}
.field input.bad{border-color:#C8453B;box-shadow:0 0 0 2px rgba(200,69,59,.18)}
.err{color:#C8453B;font-weight:600}
.out{display:grid;gap:12px;border-top:1px dashed var(--line);padding-top:18px}
.out pre{white-space:pre-wrap;font-family:var(--mono);font-size:.84rem;background:var(--bg);border-radius:10px;padding:14px;margin:0;border:1px solid var(--line)}
.out .acts{display:flex;flex-wrap:wrap;gap:10px}
.hint{font-size:.85rem;color:var(--muted)}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:1.1rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--muted)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:12px;color:var(--muted)}

/* Legal */
.legal{display:grid;gap:36px;max-width:760px}
.legal dl{margin:0;display:grid;grid-template-columns:200px minmax(0,1fr);gap:10px 24px}
.legal dt{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.legal dd{margin:0}
.legal p{color:var(--muted)}
@media (max-width:620px){.legal dl{grid-template-columns:1fr;gap:2px 0}.legal dd{margin-bottom:12px}}

/* CTA band */
.band{background:var(--accent);color:var(--accent-ink)}
.band .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-block:40px}
.band h2{font-size:clamp(1.9rem,4vw,2.8rem)}
.band .btn{background:var(--accent-ink);color:#F2F3EF}

/* Réseaux sociaux et QR code */
.social{display:flex;flex-wrap:wrap;gap:10px}
.social a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:.92rem;padding:9px 16px;border-radius:999px;box-shadow:inset 0 0 0 1.5px #3A434D;color:var(--road-ink)}
.social a svg{width:15px;height:15px;opacity:.7}
.social a:hover{box-shadow:inset 0 0 0 1.5px var(--road-line)}
.social.light a{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface)}
.social.light a:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}
.foot-social{padding-block:0 40px;display:grid;gap:14px}
.qr{display:flex;align-items:center;gap:16px}
.qr-box{background:#FFFFFF;border-radius:12px;padding:8px;width:120px;flex:none;border:1px solid var(--line)}
.qr-svg{display:block;width:100%;height:auto}
.qr p{font-size:.92rem;color:var(--muted);max-width:22ch}

.social a[class^="s-"],.social.light a[class^="s-"]{color:#FFFFFF;box-shadow:none}
.social a[class^="s-"] svg{opacity:.85}
.social a[class^="s-"]:hover{transform:translateY(-1px);filter:brightness(1.08)}
.social .s-instagram{background:linear-gradient(45deg,#F58529,#DD2A7B 45%,#8134AF 75%,#515BD4)}
.social .s-facebook{background:#1877F2}
.social .s-tiktok{background:#000000;box-shadow:inset 0 0 0 1.5px #25F4EE,2px 2px 0 #FE2C55!important}
.social .s-linkedin{background:#0A66C2}

/* Footer */
footer{background:var(--road);color:#AEB6BE;font-size:.88rem}
footer .wrap{padding-block:48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
footer h3{color:var(--road-ink);font-size:1.15rem;margin-bottom:10px}
footer p{max-width:none}
footer a{text-underline-offset:3px}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr}}

.fab{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:8;display:none;box-shadow:0 10px 30px rgba(0,0,0,.25)}
@media (max-width:760px){.fab{display:inline-flex}}
