@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF}
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-ext-600-normal.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0100-02AF}
@font-face{font-family:Figtree;src:url(/fonts/figtree-latin-ext-800-normal.woff2) format("woff2");font-weight:800;font-display:swap;unicode-range:U+0100-02AF}
@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn-arabic-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn-arabic-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn-arabic-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn-arabic-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}

:root{--navy:#0B2742;--ink:#0E2239;--muted:#4A5D78;--line:#C5D3E6;--pale:#E8EEF6;--blue:#1A73E8;--on-navy:#C5D3E6;--sky:#9CC4F7;--gutter:clamp(16px,5vw,72px);--gap:clamp(64px,9vw,128px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font:400 18px/1.5 Figtree,system-ui,sans-serif}
html[dir=rtl] body{font-family:Vazirmatn,Tahoma,sans-serif;line-height:1.8}
html[lang=zh-Hans] body{font-family:Figtree,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",sans-serif;line-height:1.75}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
h1,h2,h3{color:var(--navy);margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.05}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3,html[lang=zh-Hans] h1,html[lang=zh-Hans] h2,html[lang=zh-Hans] h3{letter-spacing:0;line-height:1.3}
h1,h2,h3{overflow-wrap:break-word}
h2{font-size:clamp(36px,4.4vw,60px)}
svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}

.btn,.ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;text-align:center}
.btn{background:var(--blue);color:#fff;border:0}
.btn:hover{background:#1560C2;color:#fff}
.ghost{background:transparent;border:2px solid var(--navy);color:var(--navy)}
.ghost:hover{background:var(--navy);color:#fff}
.big{min-height:56px;padding:12px 26px}
.white{background:#fff;color:var(--navy)}
.white:hover{background:var(--pale);color:var(--navy)}
.link{display:inline-block;padding:12px 0;color:var(--blue);font-weight:600}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.lead{font-size:20px;color:var(--muted);margin:12px 0 24px}

.top{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;padding:14px var(--gutter);background:var(--navy);color:#fff}
.top a{color:#fff}
.top a:hover{color:var(--sky)}
.top a.btn:hover{color:#fff}
.top :focus-visible{outline-color:#fff}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:22px;letter-spacing:-.02em;font-family:Figtree,sans-serif}
.top nav{display:flex;gap:8px 28px;font-weight:600;font-size:16px}
.actions{display:flex;align-items:center;gap:8px 18px;font-weight:600;font-size:16px}
.langs{position:relative}
.langs summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:44px;color:var(--on-navy);white-space:nowrap}
.langs summary::-webkit-details-marker{display:none}
.langs summary svg{stroke-width:1.8}
.lang-list{position:absolute;inset-inline-end:0;top:100%;z-index:6;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px;display:flex;flex-direction:column}
.top .lang-list a{color:var(--navy);padding:10px 12px;border-radius:8px;min-height:44px}
.top .lang-list a:hover{background:var(--pale);color:var(--navy)}
.top .lang-list a[aria-current]{background:var(--pale);font-weight:800}
.sheet a{color:var(--navy)}
.sheet a:hover{color:var(--blue)}
.sheet .langs summary{color:var(--navy)}
.sheet .lang-list{position:static;border:0;padding:0 0 4px;min-width:0}
.sheet .langs{padding:0}
.tile{display:block;border-radius:14px;margin-bottom:16px}
.narrow{display:none;position:relative}
.narrow summary{list-style:none;cursor:pointer;font-weight:600;padding:10px 4px;min-height:44px}
.narrow summary::-webkit-details-marker{display:none}
.sheet{position:absolute;inset-inline-end:0;top:100%;z-index:5;width:min(300px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.sheet nav,.sheet .actions{flex-direction:column;align-items:stretch}
.sheet nav a,.sheet .actions a{padding:10px 0}
.sheet .actions{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.sheet .btn{padding:10px 20px;color:#fff}
.top a{white-space:nowrap}
@media (max-width:1320px){.top .wide{display:none}.narrow{display:block}}

.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.say{padding:clamp(40px,7vw,104px) var(--gutter);display:flex;flex-direction:column;justify-content:center;gap:24px}
.say h1{font-size:clamp(50px,7.2vw,104px);line-height:.98;letter-spacing:-.035em}
html[dir=rtl] .say h1,html[lang=zh-Hans] .say h1{line-height:1.25;letter-spacing:0;font-size:clamp(46px,6.2vw,88px)}
.say>p{margin:0;font-size:clamp(19px,1.7vw,24px);color:var(--muted);max-width:30ch}
.art{background:var(--navy);color:#fff;min-height:clamp(320px,44vw,620px);display:flex;align-items:center;overflow:hidden}
.bike{width:118%;margin-inline:-9%;stroke-width:7}
.crank{stroke:#6BA8F5}
html[dir=rtl] .bike{transform:scaleX(-1)}

.bikes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;padding:clamp(32px,5vw,64px) var(--gutter)}
.bikes figure{margin:0}
.bikes img{display:block;width:100%;height:auto;border-radius:12px}
.bikes strong{display:block;margin-top:12px;font-size:20px;color:var(--navy)}
.bikes p{margin:4px 0 0;color:var(--muted)}

.film{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/9;min-height:clamp(460px,64vh,560px);max-height:88vh;overflow:hidden;background:var(--navy)}
.film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,39,66,.5),rgba(11,39,66,.72))}
.film-text{position:relative;z-index:1;max-width:820px;padding:40px var(--gutter);text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:20px}
.film-text h2{color:#fff;font-size:clamp(34px,4.8vw,64px);line-height:1.1}
.film-text p{margin:0;font-size:clamp(18px,1.6vw,22px);max-width:60ch}
.film-toggle{position:absolute;z-index:1;inset-inline-end:16px;top:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:22px;background:rgba(11,39,66,.6);color:#fff;cursor:pointer}
.film-toggle[hidden]{display:none}
.film-toggle svg{stroke-width:2.4}
.film-toggle .to-play,.film-toggle[data-paused=true] .to-pause{display:none}
.film-toggle[data-paused=true] .to-play{display:block}

.band{padding:var(--gap) var(--gutter) 0}
.band>h2{margin-bottom:24px}
#tjanster h2{margin-bottom:48px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));border-top:2px solid var(--navy)}
.cols article{padding:28px 28px 16px 0;display:flex;flex-direction:column;gap:10px}
html[dir=rtl] .cols article{padding:28px 0 16px 28px}
.cols h3{font-size:26px;letter-spacing:-.02em}
.cols p{margin:0;color:var(--muted);flex-grow:1}

.navy{margin-top:var(--gap);background:var(--navy);color:#fff;padding:clamp(64px,8vw,112px) var(--gutter)}
.navy h2{color:#fff;margin-bottom:56px;max-width:16ch}
.reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:44px 56px}
.reasons p{margin:0;font-size:22px;line-height:1.35;font-weight:600}
html[dir=rtl] .reasons p{line-height:1.7}
.reasons .num{font-size:16px;font-weight:600;color:var(--sky);margin-bottom:8px}
.after{margin-top:60px;gap:16px 32px}
.after p{margin:0;color:var(--on-navy)}
.after a:not(.btn){color:#fff;font-weight:600}

.rows{border-top:1px solid var(--line)}
.rows>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:14px 0;border-bottom:1px solid var(--line)}
.rows strong{display:block;font-size:20px}
.rows small{color:var(--muted);font-size:16px}

.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));column-gap:56px;margin-top:32px;align-items:start}
.faq details{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;padding:18px 0;font-size:19px}
.faq p{margin:0 0 18px;color:var(--muted)}

.pale{margin-top:var(--gap);background:var(--pale);padding:clamp(56px,7vw,96px) var(--gutter);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.pale h2{font-size:clamp(30px,3.4vw,44px)}
.pale p{margin:8px 0 0;color:var(--muted)}

.foot{background:var(--navy);color:var(--on-navy);padding:56px var(--gutter);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:32px;font-size:16px;line-height:1.9;padding-bottom:96px}
.foot p{margin:0}
.foot a{color:var(--on-navy)}
.foot a:hover{color:#fff}
.foot .head{color:#fff;font-weight:600}
.foot .brand{color:#fff;font-size:22px;font-weight:800;display:flex;align-items:center;gap:8px;font-family:Figtree,sans-serif}

.doc,.auth{max-width:640px;margin:0 auto;padding:clamp(40px,6vw,80px) 16px}
.auth{max-width:480px}
.doc h1,.auth h1{font-size:clamp(36px,4vw,52px);margin-bottom:12px}
.doc h2{font-size:24px;letter-spacing:-.01em;margin:28px 0 6px}
.doc p{margin:0}
[data-contact-page] p{margin-top:16px}
[data-hours]{white-space:nowrap}
.draft{background:var(--pale);padding:10px 14px;border-radius:8px;margin:16px 0!important}
form{display:flex;flex-direction:column;gap:14px;margin:20px 0}
form[hidden]{display:none}
label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:16px}
label small{font-weight:400;color:var(--muted)}
input{font:inherit;font-weight:400;min-height:48px;padding:10px 12px;border:1px solid #8FA5C2;border-radius:8px;background:#fff;color:var(--ink)}
.tick{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
.tick input{min-height:0;width:22px;height:22px;margin:2px 0 0;flex:none}
.tick a{color:var(--blue)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:14px}
.notice{background:#D5E5FA;border-radius:12px;padding:16px;margin:16px 0;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.notice p{margin:0}
.notice a.btn{color:#fff}
.status{margin:0;padding:10px 14px;border-radius:8px;background:#FDECEA;color:#8C1D18}
.status.good{background:#E3F4E8;color:#14532D}
.auth a:not(.btn):not(.ghost){color:var(--blue);font-weight:600}
.score{margin:20px 0 8px;display:flex;align-items:baseline;gap:12px;color:var(--muted)}
.score strong{font-size:64px;line-height:1;font-weight:800;color:var(--navy)}

.chat{position:fixed;inset-inline-end:clamp(16px,2vw,24px);bottom:16px;z-index:6;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 20px;border:0;border-radius:28px;background:var(--blue);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.chat svg{stroke-width:2.2}
dialog{border:0;border-radius:14px;padding:24px;width:min(420px,calc(100vw - 32px));color:var(--ink)}
dialog::backdrop{background:rgba(11,39,66,.5)}
dialog h2{font-size:26px;letter-spacing:-.02em}
dialog a{color:var(--blue);font-weight:600}
dialog form{margin:12px 0 0}
.small{font-size:15px;color:var(--muted);margin:8px 0}
#chat-log{max-height:min(320px,40vh);overflow-y:auto;display:flex;flex-direction:column;gap:8px}
#chat-log:empty{display:none}
.bubble{margin:0;padding:10px 14px;border-radius:12px;white-space:pre-line;font-size:16px}
.bubble.me{background:var(--blue);color:#fff;align-self:flex-end;max-width:85%}
.bubble.them{background:var(--pale);align-self:flex-start;max-width:90%}
.cookie{position:fixed;inset-inline-start:16px;bottom:16px;z-index:5;max-width:min(440px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:12px;align-items:center;font-size:15px}
.cookie[hidden]{display:none}
.cookie p{margin:0}
.cookie a{color:var(--blue);font-weight:600}
@media (max-width:640px){.cookie{bottom:80px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.shop{padding:clamp(32px,5vw,64px) var(--gutter) var(--gap)}
.shop h1{font-size:clamp(40px,5vw,68px)}
.shop-search{max-width:520px;margin-bottom:24px}
.shop-group{margin-top:44px}
.shop-group[hidden],.shop-cat[hidden],.card[hidden],.cat-links[hidden]{display:none}
.shop-group h2{font-size:clamp(30px,3.6vw,46px)}
.cat-links{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.cat-links a{border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:15px;font-weight:600}
.shop-cat{margin-top:32px;scroll-margin-top:16px}
.cat-photo{display:block;width:100%;max-width:480px;height:110px;object-fit:cover;border-radius:10px;margin-bottom:10px}
.shop-cat h3{font-size:22px;letter-spacing:-.01em;margin-bottom:14px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.card:hover{border-color:var(--blue)}
.card img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px;background:#fff}
.card .name{font-weight:600;font-size:15px;line-height:1.3;color:var(--ink);flex-grow:1}
.price{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0}
.price strong{font-size:18px;color:var(--navy)}
.unconfirmed{background:#FFF1D6;color:#7A4B00;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}
.product{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(24px,5vw,64px);padding:clamp(32px,5vw,64px) var(--gutter) var(--gap);max-width:1200px;margin:0 auto}
.product h1{font-size:clamp(28px,3.4vw,44px);margin:6px 0 14px}
.product .info p{margin:0 0 12px}
.product .info a{color:var(--blue);font-weight:600}
.product .info a.btn{color:#fff}
#main-photo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#fff}
.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.thumbs button{padding:0;border:2px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;width:72px;height:72px;overflow:hidden}
.thumbs button[aria-current]{border-color:var(--blue)}
.thumbs img{width:100%;height:100%;object-fit:contain;display:block}
.btn[disabled]{background:#8FA5C2;cursor:not-allowed}
.small-note{color:var(--muted);font-size:15px;margin-top:8px!important}
.why-list{padding-inline-start:20px;margin:16px 0}
.why-list li{margin-bottom:8px}
.stock{color:var(--muted);font-size:13px}
.old-price{color:var(--muted);font-size:13px;margin-inline-end:6px}
.sale{background:#E7EEF7;color:#0B2742;border-radius:6px;padding:2px 6px;font-size:12px;font-weight:600;margin-inline:6px}
.lang-suggest{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px 16px;background:#0B2742;color:#fff;font-size:14px}
.lang-suggest a{color:#fff;font-weight:700;text-decoration:underline}
.lang-suggest button{background:none;border:0;color:#fff;font-size:20px;cursor:pointer;min-width:44px;min-height:44px}
.cart-line{display:flex;flex-direction:column;gap:6px;padding:14px 0;border-bottom:1px solid #D9E2EC}
[data-review]{display:flex;flex-direction:column;gap:10px;margin-top:24px}
/* Home page, November 2026: shop photo slider, four bikes, service partners, prices, booking steps and the visit block. */
.pro{color:#37A9FF}
.slider{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.slider>.say{grid-column:1;grid-row:1}
.slides,.slider>.slide-btn,.slider>.dots{grid-column:2;grid-row:1}
.slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;background:var(--navy);min-height:clamp(320px,44vw,640px);outline-offset:-3px}
.slides::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:start;margin:0;position:relative;cursor:pointer}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide.empty{display:flex;align-items:center;cursor:default}
.slide.empty .art{min-height:0;width:100%;background:none}
.slide-btn{z-index:1;align-self:center;width:48px;height:48px;border-radius:24px;border:0;background:rgba(255,255,255,.92);color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(11,39,66,.25)}
.slide-btn svg{stroke:currentColor;stroke-width:2.4;fill:none}
.slide-btn.prev{justify-self:start;margin-inline-start:16px}
.slide-btn.next{justify-self:end;margin-inline-end:16px}
[dir=rtl] .slide-btn svg{transform:scaleX(-1)}
.slider>.dots{z-index:1;align-self:end;justify-self:center;display:flex;gap:8px;margin-bottom:18px}
.dots button{width:10px;height:10px;padding:0;border-radius:5px;border:0;background:rgba(255,255,255,.55);cursor:pointer;transition:width .3s}
.dots button[aria-current]{width:28px;background:#fff}
@media (max-width:900px){.slider{grid-template-columns:1fr}.slides,.slider>.slide-btn,.slider>.dots{grid-column:1;grid-row:1}.slider>.say{grid-row:2}}
.bike-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,88px);align-items:center;padding:var(--gap) var(--gutter) 0}
.bike-row.flip .bike-photo{order:2}
.bike-photo{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;box-shadow:0 32px 64px -36px rgba(11,39,66,.45)}
.bike-photo img{display:block;width:100%;height:100%;object-fit:contain;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(var(--s,1));transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:transform}
.panel-white{background:#fff;border:1px solid var(--line);padding:clamp(16px,3vw,40px)}
.panel-navy{background:var(--navy);padding:clamp(20px,3vw,44px)}
.panel-navy img{object-fit:cover;border-radius:14px}
.panel-cream{background:#F4EFE7}
.panel-cream img{object-fit:cover}
.bike-say h2{font-size:clamp(38px,4.6vw,62px);margin-bottom:8px}
.bike-say h3{font-size:17px;font-weight:700;color:var(--blue);margin:28px 0 10px}

.bike-say p{margin:0;font-size:18px;line-height:1.72;color:var(--muted);max-width:62ch}
.bike-say .btn{margin-top:32px}
@media (max-width:900px){.bike-row{grid-template-columns:1fr}.bike-row.flip .bike-photo{order:0}}
.service-partners{padding:var(--gap) var(--gutter) 0;text-align:center}
.service-partners .head{margin:0;color:var(--muted);font-weight:600}
.service-partners ul{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 48px;color:var(--navy);font-weight:700;font-size:18px}
.service-partners img{display:block;height:32px;width:auto;filter:grayscale(1);opacity:.75}
.price-list{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:0 56px}
.price-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);font-size:18px;color:var(--ink)}
.price-list small{color:var(--muted);font-size:15px;margin-inline-start:8px;white-space:nowrap}
.price-list strong{color:var(--navy);white-space:nowrap}
.how ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px}
.how li{background:var(--pale);border-radius:20px;padding:32px}
.how .num{display:block;color:var(--blue);font-weight:800;font-size:15px;margin-bottom:18px}
.how h3{font-size:22px;margin-bottom:8px}
.how li p{margin:0;color:var(--muted)}
.visit p{line-height:1.8}
@media (prefers-reduced-motion:reduce){.bike-photo img{transform:none;transition:none}.dots button{transition:none}}
/* November 2026, part 2: news button and window, map section, application form, tidy footer, road bike panel. */
.news-btn{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:22px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;margin-inline-start:auto}
.news-btn svg{stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.news-btn:hover{background:rgba(255,255,255,.2)}
.news-count{position:absolute;top:2px;inset-inline-end:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#37A9FF;color:var(--navy);font-size:12px;font-weight:800;line-height:18px;text-align:center}
.news-count[hidden]{display:none}
#news-panel{max-width:min(560px,calc(100vw - 32px));width:100%}
.news-item{border-bottom:1px solid var(--line);padding:16px 0}
.news-item h3{font-size:20px;margin-bottom:6px}
.news-item p{margin:0;color:var(--muted)}
.news-off{display:inline-block;margin-bottom:8px;padding:2px 10px;border-radius:12px;background:var(--pale);color:var(--blue);font-weight:700;font-size:14px}
.faq-more{font-size:15px}
.faq-more a{color:var(--blue);font-weight:600}
.panel-grey{background:#EEF0F2;padding:clamp(12px,2vw,28px)}
.visit{padding:var(--gap) var(--gutter) 0}
.visit-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);border-radius:28px;overflow:hidden;background:var(--pale);box-shadow:0 30px 60px -40px rgba(11,39,66,.5)}
.visit-say{padding:clamp(32px,5vw,64px);display:flex;flex-direction:column;gap:6px}
.visit-say h2{font-size:clamp(32px,3.6vw,48px);margin-bottom:18px}
.visit-head{margin:14px 0 0;font-size:14px;font-weight:700;color:var(--blue)}
.visit-say p{margin:0;line-height:1.75}
.visit-say .row{margin-top:24px}
.visit-say .small{margin-top:14px;color:var(--muted)}
.visit-map{position:relative;display:block;min-height:clamp(300px,34vw,480px);background:#DCE6F2;overflow:hidden}
.visit-map>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map-empty{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,39,66,.07) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(rgba(11,39,66,.07) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(160deg,#E4ECF6,#CFDDEE)}
.pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);filter:drop-shadow(0 8px 12px rgba(11,39,66,.35))}
.pin path{fill:var(--navy)}
.pin circle{fill:#37A9FF}
.map-credit{position:absolute;inset-inline-end:8px;bottom:6px;font-size:12px;color:var(--muted);background:rgba(255,255,255,.85);padding:2px 6px;border-radius:6px}
@media (max-width:900px){.visit-card{grid-template-columns:1fr}.visit-map{order:-1}}
.foot{display:block}
.foot-cols{display:grid;grid-template-columns:1.25fr repeat(5,minmax(0,1fr));gap:32px}
@media (max-width:1100px){.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.foot-bottom{margin-top:40px;padding-top:24px;border-top:1px solid rgba(197,211,230,.25);font-size:14px}
.apply-wrap{margin-top:40px}
.apply{display:flex;flex-direction:column;gap:18px;max-width:720px}
.apply fieldset{border:1px solid var(--line);border-radius:18px;padding:20px 22px 24px;margin:0;display:flex;flex-direction:column;gap:14px}
.apply legend{font-weight:800;color:var(--navy);padding:0 6px;font-size:18px}
.apply label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--ink)}
.apply label[hidden]{display:none}
.apply input:not([type=checkbox]),.apply textarea{font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
.apply textarea{resize:vertical}
.apply .choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px}
.apply .choice{flex-direction:row;align-items:center;gap:10px;font-weight:500}
.apply .choice input{width:20px;height:20px;accent-color:var(--blue)}
.apply .star{color:var(--blue)}
.map-tiles{position:absolute;inset:0}
.map-tiles img{position:absolute;width:256px;height:256px;max-width:none;filter:saturate(.75);border-radius:0}
.visit-map:hover .pin{transform:translate(-50%,-108%);transition:transform .2s}
/* Map pieces: five across, three down, placed so the shop is at the centre (offsets from public/map/map.json). */
.mt-x0{left:calc(50% + -592px)}
.mt-x1{left:calc(50% + -336px)}
.mt-x2{left:calc(50% + -80px)}
.mt-x3{left:calc(50% + 176px)}
.mt-x4{left:calc(50% + 432px)}
.mt-y0{top:calc(50% + -372px)}
.mt-y1{top:calc(50% + -116px)}
.mt-y2{top:calc(50% + 140px)}
/* A photo with its own light background shows whole inside the navy frame, on that same colour. */
.panel-navy img[class^=fill-]{object-fit:contain;padding:clamp(6px,1.2vw,14px)}
.fill-white{background:#fff}
.fill-grey{background:#E5E5E5}
.fill-cream{background:#FDF3E7}
/* The live shop: department and subcategory tiles like in the app, then products. */
.shop-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:18px;margin-top:20px}
.shop-tiles.departments{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.shop-tile{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.shop-tile:hover{transform:translateY(-3px);box-shadow:0 18px 36px -24px rgba(11,39,66,.45);color:var(--navy)}
.shop-tile img{display:block;width:100%;aspect-ratio:16/11;object-fit:cover;background:var(--pale)}
.tile-text{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px}
.tile-text strong{font-size:17px;color:var(--navy);line-height:1.25}
.tile-text small{color:var(--blue);font-weight:700;white-space:nowrap}
.shop-back{display:inline-block;margin:8px 0 6px;color:var(--blue);font-weight:600}
.shop-title{font-size:clamp(30px,3.6vw,46px);margin:6px 0 4px}
.shop-count{color:var(--muted);margin:0 0 18px}
.shop-soon,.shop-error,.shop-loading{color:var(--muted);margin:20px 0}
.price .was{color:var(--muted);font-size:15px}
.product.live{padding:20px 0 0;max-width:none}
.product.live .gallery img#live-photo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:16px}
.product.live .desc p{color:var(--muted);line-height:1.6}
@media (prefers-reduced-motion:reduce){.shop-tile{transition:none}.shop-tile:hover{transform:none}}
/* Shop cards: one very thin navy frame everywhere in the shop, thinner than the frames around the home page bike photos. */
.shop-tile,.shop .card,.product.live .gallery img#live-photo,.product.live .thumbs button{border:1px solid var(--navy)}
.shop-tile:hover,.shop .card:hover{border-color:var(--navy);box-shadow:0 14px 30px -22px rgba(11,39,66,.55)}
.product.live .thumbs button[aria-current]{outline:2px solid var(--blue);outline-offset:1px}
.chat-app-link{color:var(--blue);font-weight:700;text-decoration:underline}
/* Booklet page turn for the shop photo slider. Without the script the photos still scroll sideways. */
.slides.turning{display:block;position:relative;overflow:hidden;perspective:1800px;touch-action:pan-y}
.slides.turning .slide{position:absolute;inset:0;visibility:hidden;backface-visibility:hidden}
.slides.turning .slide.is-on{visibility:visible;z-index:2}
.slides.turning .slide.was-on{visibility:visible;z-index:1}
.slides.turning .slide.turn-next{transform-origin:left center;animation:page-next .8s cubic-bezier(.3,.7,.2,1) both}
.slides.turning .slide.turn-back{transform-origin:right center;animation:page-back .8s cubic-bezier(.3,.7,.2,1) both}
[dir=rtl] .slides.turning .slide.turn-next{transform-origin:right center;animation-name:page-back}
[dir=rtl] .slides.turning .slide.turn-back{transform-origin:left center;animation-name:page-next}
@keyframes page-next{from{transform:rotateY(-95deg);filter:brightness(.7)}to{transform:rotateY(0);filter:none}}
@keyframes page-back{from{transform:rotateY(95deg);filter:brightness(.7)}to{transform:rotateY(0);filter:none}}
@media (prefers-reduced-motion:reduce){.slides.turning .slide{animation:none!important}}
.how .booking-times{margin-top:28px;padding:22px 26px;border:1px solid var(--navy);border-radius:16px;max-width:420px}
.how .booking-times p{margin:0;line-height:1.8}
.visit-say .booking-times p{margin:0;line-height:1.75}
/* Reserve and pick up in store. */
.price-sum{font-weight:700;color:var(--navy);margin:16px 0}
.staff-card{border:1px solid var(--navy);border-radius:14px;padding:16px;margin-bottom:12px}
[data-done] h2{margin-bottom:10px}
/* The back button at the top of every page but the home page. */
.page-back{margin:0;padding:18px var(--gutter) 0}
.page-back a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--blue);font-weight:700}
.page-back a:hover{color:var(--navy)}
/* The lawyer's terms and privacy policy. */
.legal-doc .legal-meta{color:var(--muted,#4a5d78);margin-top:-6px}
.legal-doc .legal-part{margin-top:34px;padding-top:14px;border-top:2px solid var(--navy)}
.legal-doc h3{margin:22px 0 6px}
/* Lowest price in the last 30 days, next to every discount. */
.lowest30{display:block;color:var(--muted);font-size:.85em}

/* Welcome gift after a new private customer's first sign-in: big points, small confetti that stops by itself. */
.gift-back{position:fixed;inset:0;z-index:60;background:rgba(11,39,66,.72);display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}
.gift-card{position:relative;z-index:1;width:100%;max-width:420px;background:#fff;color:#0E2239;border-radius:24px;padding:28px 24px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.gift-card h2{margin:0 0 10px;font-size:1.5rem}
.gift-card p{margin:0 0 12px;line-height:1.5;color:#4A5D78}
.gift-points{display:inline-flex;flex-direction:column;align-items:center;background:#0B2742;border-radius:20px;padding:14px 36px;margin:6px 0 14px!important}
.gift-points strong{color:#fff;font-size:4rem;line-height:1.1;font-weight:900}
.gift-points span{color:#37A9FF;font-weight:800;letter-spacing:.04em}
.gift-note{font-size:.9rem}
.confetti{position:absolute;inset:0;pointer-events:none}
.confetti i{position:absolute;top:-20px;width:8px;height:13px;border-radius:2px;background:#1A73E8;opacity:0;animation:gift-fall 2.2s ease-out forwards}
.confetti i:nth-child(6n+2){background:#37A9FF}.confetti i:nth-child(6n+3){background:#F5C542}.confetti i:nth-child(6n+4){background:#147344}.confetti i:nth-child(6n+5){background:#fff}.confetti i:nth-child(6n){background:#0B2742;border:1px solid #fff}
.confetti i:nth-child(1){left:0%;animation-delay:0.00s}.confetti i:nth-child(2){left:37%;animation-delay:0.12s}.confetti i:nth-child(3){left:74%;animation-delay:0.24s}.confetti i:nth-child(4){left:11%;animation-delay:0.36s}.confetti i:nth-child(5){left:48%;animation-delay:0.48s}.confetti i:nth-child(6){left:85%;animation-delay:0.60s}.confetti i:nth-child(7){left:22%;animation-delay:0.72s}.confetti i:nth-child(8){left:59%;animation-delay:0.00s}.confetti i:nth-child(9){left:96%;animation-delay:0.12s}.confetti i:nth-child(10){left:33%;animation-delay:0.24s}.confetti i:nth-child(11){left:70%;animation-delay:0.36s}.confetti i:nth-child(12){left:7%;animation-delay:0.48s}.confetti i:nth-child(13){left:44%;animation-delay:0.60s}.confetti i:nth-child(14){left:81%;animation-delay:0.72s}.confetti i:nth-child(15){left:18%;animation-delay:0.00s}.confetti i:nth-child(16){left:55%;animation-delay:0.12s}.confetti i:nth-child(17){left:92%;animation-delay:0.24s}.confetti i:nth-child(18){left:29%;animation-delay:0.36s}
@keyframes gift-fall{0%{opacity:1;transform:translateY(0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translateY(75vh) rotate(540deg)}}
@media (prefers-reduced-motion:reduce){.confetti{display:none}}

/* Services from the owner's service file (5 Nov 2026), the shop's facts in the main heading, and product links. */
.say h1 .kicker{display:block;font-size:clamp(15px,1.6vw,19px);line-height:1.3;letter-spacing:.02em;font-weight:600;color:var(--sky);margin-bottom:14px}
html[dir=rtl] .say h1 .kicker,html[lang=zh-Hans] .say h1 .kicker{font-size:clamp(15px,1.6vw,19px);line-height:1.5}
.price-list a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.price-list a:hover,.price-list a:focus-visible{text-decoration-color:var(--blue)}
.price-info{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:0 0 28px;max-width:860px}
.price-info h3{margin:0 0 8px;font-size:18px;color:var(--ink)}
.price-info p{margin:6px 0;color:var(--muted);line-height:1.6}
.services-page .lead{max-width:760px}
.service-jump{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 8px}
.service-jump a{border:1px solid var(--line);border-radius:999px;padding:8px 14px;color:var(--navy);text-decoration:none;font-weight:600;font-size:15px}
.service-jump a:hover,.service-jump a:focus-visible{border-color:var(--blue)}
.service{border-top:1px solid var(--line);padding-top:8px;margin-top:28px;scroll-margin-top:90px}
.service h2 a{color:var(--ink);text-decoration:none}
.service h2 a:hover,.service h2 a:focus-visible{text-decoration:underline}
.service-price{color:var(--navy);font-weight:800;white-space:nowrap;font-size:.8em;margin-inline-start:8px}
.service-price.big{display:inline-block;font-size:28px;margin:0 0 8px;background:var(--navy);color:#fff;border-radius:14px;padding:6px 18px}
.services-page ul{padding-inline-start:22px;line-height:1.7;color:var(--ink)}
.service-note{color:var(--muted);border-inline-start:3px solid var(--sky);padding-inline-start:12px;margin:10px 0}
.service-links{list-style:none;padding:0!important}
.service-links li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.closing{font-weight:700;color:var(--navy);margin-top:24px}
.legal-doc ul{padding-inline-start:22px;line-height:1.7}
.all-products{margin-top:48px;border-top:1px solid var(--line);padding-top:12px}
.all-products h2{font-size:20px}
.product-links{columns:3 240px;column-gap:32px;padding-inline-start:18px;font-size:15px;line-height:1.8}
.product-links a{color:var(--muted)}
