:root{--aib-ink:#111111;--aib-muted:#666666;--aib-line:#e5e2de;--aib-soft:#faf8f5;--aib-accent:#f28c28;--aib-accent-dark:#b95608;--aib-white:#fff}.aib-site-shell{max-width:1180px;margin:0 auto}.aib-site-shell *{box-sizing:border-box}.aib-hero,.aib-page-hero{position:relative;overflow:hidden;border-radius:28px;padding:clamp(38px,7vw,84px);margin:22px 0 42px;background:linear-gradient(135deg,#0d0d0d 0%,#191919 72%,#f28c28 140%);color:#fff}.aib-hero:after,.aib-page-hero:after{content:"";position:absolute;right:-90px;bottom:-140px;width:380px;height:380px;border-radius:50%;border:80px solid rgba(255,255,255,.08)}.aib-hero h1,.aib-page-hero h1{max-width:760px;margin:.2em 0;font-size:clamp(2.4rem,6vw,5.4rem);line-height:.96;letter-spacing:-.045em;color:#fff}.aib-page-hero h1{font-size:clamp(2.2rem,5vw,4.2rem)}.aib-hero p,.aib-page-hero p{position:relative;z-index:1;max-width:700px;font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.55;color:rgba(255,255,255,.9)}.aib-kicker{position:relative;z-index:1;font-size:.78rem;font-weight:800;letter-spacing:.16em}.aib-section{margin:54px 0}.aib-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.aib-section-head h2{margin:0;font-size:clamp(1.75rem,3.3vw,2.6rem);letter-spacing:-.035em}.aib-section-head p{margin:0;max-width:480px;color:var(--aib-muted)}.aib-bike-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.aib-bike-card{min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:24px;border:1px solid var(--aib-line);border-radius:22px;background:var(--aib-soft);color:var(--aib-ink);text-decoration:none;transition:.18s ease}.aib-bike-card:hover{transform:translateY(-3px);border-color:#edc7a6;box-shadow:0 16px 35px rgba(20,20,20,.10)}.aib-bike-card strong{font-size:1.35rem}.aib-bike-card>span:last-child{font-size:.92rem;color:var(--aib-muted)}.aib-bike-icon{font-size:2rem;margin-bottom:auto}.aib-region-section{padding:28px;border-radius:24px;background:var(--aib-soft)}.aib-chip-list{display:flex;flex-wrap:wrap;gap:9px}.aib-chip-list a{padding:9px 13px;border:1px solid var(--aib-line);border-radius:999px;background:#fff;color:var(--aib-ink);text-decoration:none;font-size:.93rem}.aib-chip-list a:hover{border-color:var(--aib-accent);color:var(--aib-accent-dark)}.aib-filter{display:grid;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:12px;margin:0 0 28px;padding:18px;border:1px solid var(--aib-line);border-radius:18px;background:#fff}.aib-filter label{display:flex;flex-direction:column;gap:6px}.aib-filter label span{font-size:.82rem;font-weight:700}.aib-filter select{min-height:46px;width:100%;padding:0 12px;border:1px solid #d6d1cc;border-radius:11px;background:#fff}.aib-filter-reset{align-self:center;padding:10px 4px;color:var(--aib-muted)}.aib-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:24px 0}.aib-card{overflow:hidden;border:1px solid var(--aib-line);border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(20,20,20,.055)}.aib-card-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#f1e3d6}.aib-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.aib-card:hover .aib-card-image img{transform:scale(1.025)}.aib-card-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#fff0e1,#f7f3ef);text-decoration:none}.aib-card-placeholder span{font-size:.8rem;font-weight:900;letter-spacing:.15em;color:#8b572a}.aib-card-body{padding:20px}.aib-card h3{margin:.3em 0 .55em;font-size:1.3rem;line-height:1.2}.aib-card h3 a{color:var(--aib-ink);text-decoration:none}.aib-card-tags{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--aib-accent-dark)}.aib-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.aib-card-meta span{padding:6px 9px;border-radius:8px;background:var(--aib-soft);font-size:.82rem}.aib-card-body p{color:var(--aib-muted);font-size:.94rem}.aib-card-link{font-weight:800;color:var(--aib-accent-dark);text-decoration:none}.aib-empty{display:flex;flex-direction:column;gap:5px;padding:28px;border:1px dashed #d7cec5;border-radius:18px;background:var(--aib-soft);color:var(--aib-muted)}.aib-empty strong{color:var(--aib-ink)}.aib-route-detail{margin-top:32px}.aib-route-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.aib-route-tags span{padding:7px 10px;border-radius:999px;background:#fff1e4;color:var(--aib-accent-dark);font-size:.8rem;font-weight:800}.aib-route-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 28px}.aib-stat{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--aib-line);border-radius:16px;background:#fff}.aib-stat strong{font-size:1.45rem;line-height:1}.aib-stat span{color:var(--aib-muted);font-size:.82rem}.aib-route-box{margin-top:24px;padding:24px;border:1px solid var(--aib-line);border-radius:20px;background:#fff}.aib-route-box h2,.aib-map-wrap h2{margin-top:0}.aib-route-box dl{margin:0}.aib-route-box dl>div{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--aib-line)}.aib-route-box dl>div:last-child{border-bottom:0}.aib-route-box dt{font-weight:800}.aib-route-box dd{margin:0;color:#454545}.aib-route-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.aib-button{position:relative;z-index:1;display:inline-block;padding:12px 17px;border:0;border-radius:999px;background:var(--aib-accent);color:#fff!important;text-decoration:none!important;font-weight:800;cursor:pointer}.aib-button:hover{background:#111111}.aib-button:focus{outline:3px solid rgba(242,140,40,.28);outline-offset:2px}.aib-button-light{background:#fff1e4;color:var(--aib-accent-dark)!important}.aib-map-wrap{margin-top:34px}.aib-map iframe{width:100%;min-height:460px;border:0;border-radius:18px;background:var(--aib-soft)}.aib-source{margin-top:28px;padding:16px 18px;border-left:4px solid var(--aib-accent);background:var(--aib-soft);font-size:.88rem}.aib-source p{margin:5px 0 0}.aib-source a{color:var(--aib-accent-dark)}@media(max-width:900px){.aib-bike-grid{grid-template-columns:repeat(2,1fr)}.aib-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aib-route-stats{grid-template-columns:repeat(2,1fr)}.aib-filter{grid-template-columns:1fr 1fr}.aib-section-head{align-items:start;flex-direction:column;gap:6px}}@media(max-width:600px){.aib-hero,.aib-page-hero{border-radius:20px;padding:34px 24px}.aib-bike-grid,.aib-grid{grid-template-columns:1fr}.aib-route-box dl>div{grid-template-columns:1fr;gap:5px}.aib-map iframe{min-height:330px}.aib-filter{grid-template-columns:1fr}.aib-section{margin:38px 0}.aib-route-stats{grid-template-columns:1fr 1fr}}

.aib-quick-search{padding:28px;border:1px solid var(--aib-line);border-radius:24px;background:#fff;box-shadow:0 12px 30px rgba(20,40,30,.05)}.aib-filter-home{grid-template-columns:1fr 1fr 1fr auto;margin:0;padding:0;border:0;background:transparent}.aib-filter-home .aib-button{min-height:46px;white-space:nowrap}@media(max-width:900px){.aib-filter-home{grid-template-columns:1fr 1fr}.aib-filter-home .aib-button{width:100%}}@media(max-width:600px){.aib-filter-home{grid-template-columns:1fr}.aib-quick-search{padding:20px}}
.aib-gpx-map{width:100%;height:520px;border-radius:18px;overflow:hidden;background:var(--aib-soft)}.aib-map-loading,.aib-map-error{display:grid;place-items:center;height:100%;padding:24px;color:var(--aib-muted);text-align:center}.aib-map-credit{margin:8px 2px 0;color:var(--aib-muted);font-size:.75rem}@media(max-width:600px){.aib-gpx-map{height:360px}}

.aib-water-badge{display:inline-flex;align-items:center;gap:5px;margin:0 0 12px;padding:6px 10px;border-radius:999px;background:#e9f7ff;color:#116b91;font-size:.82rem;font-weight:800}.aib-water-panel{margin:22px 0;padding:20px 22px;border:1px solid #cde9f6;border-radius:18px;background:#f4fbff}.aib-water-title{display:flex;align-items:center;gap:12px}.aib-water-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#dff4ff;font-size:1.35rem}.aib-water-title div{display:flex;flex-direction:column;gap:2px}.aib-water-title strong{font-size:1.08rem}.aib-water-title span{color:#55727f;font-size:.86rem}.aib-water-list{display:grid;gap:9px;margin:16px 0 8px;padding:0;list-style:none}.aib-water-list li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:#fff}.aib-water-list li span,.aib-water-list li small{color:#62747c}.aib-water-note{margin:10px 0 0;color:#62747c;font-size:.78rem}.aib-water-map-marker{background:transparent!important;border:0!important}.aib-water-map-marker span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid #2a9dd6;box-shadow:0 3px 10px rgba(0,0,0,.2);font-size:15px}

/* v2.4 – Scheda percorso Experience UI */
.aib-route-page{max-width:1180px;margin:0 auto;padding:22px 20px 64px;color:var(--aib-ink)}
.aib-route-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:26px;align-items:stretch;margin:18px 0 26px;padding:clamp(26px,4vw,46px);border:1px solid var(--aib-line);border-radius:30px;background:linear-gradient(145deg,#fffdfa 0%,#fff4e9 100%);overflow:hidden}
.aib-route-hero-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
.aib-route-hero h1{max-width:900px;margin:8px 0 13px;font-size:clamp(2.35rem,5.3vw,4.9rem);line-height:.98;letter-spacing:-.052em}
.aib-route-lead{max-width:760px;margin:0 0 14px;color:#4a4a4a;font-size:clamp(1.02rem,1.8vw,1.24rem);line-height:1.55}
.aib-route-status{display:inline-flex;align-items:center;gap:7px;width:max-content;margin:4px 0 4px;padding:7px 10px;border-radius:999px;background:#fff4dc;color:#7e5a14;font-size:.8rem;font-weight:800}
.aib-route-status.is-ok{background:#111111;color:#ffffff}
.aib-route-hero-visual{position:relative;min-height:280px;border-radius:22px;background:linear-gradient(145deg,#111111,#f28c28);overflow:hidden}
.aib-route-hero-visual:before,.aib-route-hero-visual:after{content:"";position:absolute;border-radius:50%;border:55px solid rgba(255,255,255,.08)}
.aib-route-hero-visual:before{width:270px;height:270px;right:-90px;top:30px}.aib-route-hero-visual:after{width:170px;height:170px;right:10px;bottom:-95px}
.aib-route-hero-visual span{position:absolute;left:26px;bottom:24px;color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.16em}
.aib-route-hero-image{min-height:300px;border-radius:22px;overflow:hidden}.aib-route-hero-image img{width:100%;height:100%;object-fit:cover;display:block}
.aib-route-stats-hero{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 4px}.aib-route-stats-hero .aib-stat{background:#fff;border-color:#e7dfd8}
.aib-route-actions-hero{margin:18px 0 0}
.aib-route-section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 15px}.aib-route-section-title h2{margin:2px 0 0;font-size:clamp(1.65rem,3vw,2.35rem);letter-spacing:-.035em}.aib-eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.16em;color:var(--aib-accent-dark)}
.aib-route-map-section{margin:30px 0 38px}.aib-route-map-section .aib-gpx-map{height:min(62vh,610px);min-height:440px;border:1px solid var(--aib-line);box-shadow:0 18px 46px rgba(17,45,31,.08)}.aib-map-download{font-weight:850;color:var(--aib-accent-dark);text-decoration:none}
.aib-route-facts,.aib-route-story,.aib-route-practical{margin:42px 0}
.aib-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.aib-fact{display:flex;align-items:flex-start;gap:13px;padding:18px;border:1px solid var(--aib-line);border-radius:18px;background:#fff}.aib-fact-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#fff1e4;color:var(--aib-accent-dark);font-weight:900}.aib-fact div{display:flex;flex-direction:column;gap:4px;min-width:0}.aib-fact small{color:var(--aib-muted);font-size:.76rem}.aib-fact strong{font-size:.98rem;line-height:1.35}
.aib-route-story{padding:28px;border-radius:24px;background:#faf8f5}.aib-route-prose{max-width:800px;font-size:1.05rem;line-height:1.75;color:#333333}.aib-route-prose p:first-child{margin-top:0}.aib-route-prose p:last-child{margin-bottom:0}
.aib-practical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.aib-practical-grid article{padding:22px;border:1px solid var(--aib-line);border-radius:20px;background:#fff}.aib-practical-grid article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff1e4;color:var(--aib-accent-dark);font-weight:900}.aib-practical-grid h3{margin:14px 0 7px;font-size:1.12rem}.aib-practical-grid p{margin:0;color:#555555;line-height:1.55}.aib-practical-warning{border-color:#eadcc1!important;background:#fffaf0!important}.aib-practical-warning>span{background:#fff0cd!important;color:#8a6115!important}
.aib-route-quality{display:flex;justify-content:space-between;gap:20px;margin:28px 0;padding:15px 18px;border-radius:14px;background:#111111;color:#fff}.aib-route-quality span{color:#d7d7d7}
.aib-route-page .aib-source{margin-top:20px;padding:0;border:1px solid var(--aib-line);border-left:1px solid var(--aib-line);border-radius:14px;background:#fff}.aib-route-page .aib-source summary{padding:15px 18px;cursor:pointer;font-weight:800}.aib-route-page .aib-source p{padding:0 18px 18px;margin:0;color:var(--aib-muted)}
@media(max-width:900px){.aib-route-hero{grid-template-columns:1fr}.aib-route-hero-visual{min-height:190px}.aib-route-stats-hero{grid-template-columns:repeat(2,1fr)}.aib-facts-grid,.aib-practical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aib-route-map-section .aib-gpx-map{min-height:400px;height:52vh}}
@media(max-width:600px){.aib-route-page{padding:10px 14px 48px}.aib-route-hero{padding:23px 18px;border-radius:22px}.aib-route-hero h1{font-size:2.45rem}.aib-route-hero-visual{display:none}.aib-route-stats-hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.aib-route-stats-hero .aib-stat{padding:14px}.aib-facts-grid,.aib-practical-grid{grid-template-columns:1fr}.aib-route-story{padding:20px}.aib-route-map-section .aib-gpx-map{min-height:350px;height:52vh}.aib-route-quality{flex-direction:column;gap:5px}.aib-route-section-title{align-items:flex-start}.aib-route-actions-hero .aib-button{width:100%;text-align:center}}

/* v2.5 – Clean Shell: header/footer indipendenti dal tema per le schede percorso */
body.aib-route-standalone{margin:0;background:#f7f5f1;color:var(--aib-ink)}
body.aib-route-standalone .aib-route-page{padding-top:18px}
.aib-public-header{position:relative;z-index:20;width:100%;border-bottom:1px solid #e5ded6;background:rgba(255,253,250,.97);backdrop-filter:saturate(130%) blur(8px)}
.aib-public-header-inner{max-width:1220px;margin:0 auto;padding:16px 22px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.aib-brand{display:inline-flex;align-items:center;gap:11px;color:#111!important;text-decoration:none!important;font-weight:950;letter-spacing:-.02em;font-size:1.08rem;white-space:nowrap}
.aib-brand img{width:48px;height:48px;object-fit:contain;border-radius:50%}
.aib-public-nav{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.aib-public-nav a{padding:9px 11px;border-radius:999px;color:#222222!important;text-decoration:none!important;font-size:.86rem;font-weight:750}
.aib-public-nav a:hover,.aib-public-nav a:focus{background:#fff0e1;color:var(--aib-accent-dark)!important;outline:none}
.aib-public-footer{margin-top:22px;border-top:1px solid #e1e6e2;background:#111111;color:#fff}
.aib-public-footer-inner{max-width:1180px;margin:0 auto;padding:30px 22px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}
.aib-public-footer strong{font-size:.9rem;letter-spacing:.12em}.aib-public-footer span{color:#d7d7d7}.aib-public-footer small{color:#aaaaaa}
@media(max-width:800px){.aib-public-header-inner{align-items:flex-start}.aib-public-nav{gap:3px}.aib-public-nav a{padding:7px 8px;font-size:.8rem}.aib-public-footer-inner{grid-template-columns:1fr;gap:7px}}
@media(max-width:620px){.aib-public-header-inner{padding:12px 14px;flex-direction:column;gap:9px}.aib-brand img{width:42px;height:42px}.aib-public-nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:2px}.aib-public-nav a{white-space:nowrap;background:#f6f1eb}.aib-public-footer-inner{padding:24px 16px}}

/* AI Bike Up 2.6 – Brand & Clean */
.aib-practical-grid-clean{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}
.aib-route-quality,.aib-practical-warning{display:none!important}
.aib-eyebrow,.aib-kicker,.aib-card-tags{color:#b95608}
.aib-route-section-title h2{color:#111}
.aib-route-hero{box-shadow:0 18px 45px rgba(17,17,17,.06)}
.aib-route-hero-visual:after{content:"";position:absolute;right:-70px;bottom:-85px;width:260px;height:260px;border-radius:50%;border:56px solid rgba(255,255,255,.12)}
.aib-public-header{box-shadow:0 2px 12px rgba(17,17,17,.035)}
.aib-public-nav a:hover,.aib-public-nav a:focus{background:#fff0e1;color:#9c4705!important}
.aib-card-link,.aib-source a{color:#9c4705}
.aib-chip-list a:hover{border-color:#f28c28;color:#9c4705}
.aib-water-panel{border-color:#cfe8f4;background:#f5fbfe}
@media(max-width:700px){.aib-practical-grid-clean{grid-template-columns:1fr}}


/* AI Bike Up 2.7 – Navigator & Credits */
.aib-source-minimal{
    margin:34px auto 0!important;
    max-width:760px;
    border:0!important;
    background:transparent!important;
    color:#777;
    text-align:center;
}
.aib-source-minimal summary{
    display:inline-block;
    padding:4px 8px!important;
    cursor:pointer;
    color:#777;
    font-size:.72rem;
    font-weight:650!important;
    letter-spacing:.01em;
    list-style:none;
}
.aib-source-minimal summary::-webkit-details-marker{display:none}
.aib-source-minimal summary:hover{color:#9c4705}
.aib-source-minimal .aib-source-content{
    margin:8px auto 0;
    padding:10px 12px;
    max-width:680px;
    border-top:1px solid #e5e2de;
    color:#777;
    font-size:.72rem;
    line-height:1.55;
}
.aib-source-minimal .aib-source-content a{color:#8b4a18}

.aib-hero-final{margin-bottom:26px}
.aib-step-label{
    display:inline-block;
    margin-bottom:8px;
    color:#9c4705;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.11em;
}
.aib-quick-search-final{
    margin-top:0;
    border:2px solid #111;
    box-shadow:0 16px 40px rgba(17,17,17,.07);
}
.aib-quick-search-final .aib-filter select{
    border:1px solid #bfb8b1;
}
.aib-quick-search-final .aib-filter select:focus{
    border-color:#f28c28;
    outline:3px solid rgba(242,140,40,.14);
}
.aib-admin-draft-badge{
    display:inline-flex;
    margin:0 0 9px;
    padding:4px 7px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:.62rem;
    font-weight:900;
    letter-spacing:.08em;
}
@media(max-width:600px){
    .aib-hero-final h1{font-size:2.65rem}
    .aib-quick-search-final{border-radius:20px}
    .aib-step-label{line-height:1.7}
}


/* AI Bike Up 2.8 – Compact Home + Smart Route */
.aib-hero-final{
    max-width:1040px;
    margin:18px auto 24px!important;
    padding:44px 58px!important;
    border-radius:24px!important;
    min-height:0!important;
}
.aib-hero-final h1{
    max-width:720px!important;
    margin:.16em 0 .28em!important;
    font-size:clamp(2.35rem,4.45vw,4.35rem)!important;
    line-height:.98!important;
}
.aib-hero-final p{
    max-width:650px!important;
    margin:0 0 18px!important;
    font-size:clamp(1rem,1.55vw,1.16rem)!important;
    line-height:1.48!important;
}
.aib-hero-final:after{
    right:-70px!important;
    bottom:-125px!important;
    width:310px!important;
    height:310px!important;
    border-width:62px!important;
}
.aib-hero-final .aib-button{padding:11px 16px!important}
.aib-quick-search-final{max-width:1120px;margin-left:auto!important;margin-right:auto!important}
@media(max-width:700px){
    .aib-hero-final{padding:30px 23px!important;margin:12px 14px 20px!important}
    .aib-hero-final h1{font-size:2.5rem!important}
    .aib-hero-final:after{width:220px!important;height:220px!important;border-width:44px!important}
}


/* AI Bike Up 2.9 – route quality / water resilience */
.aib-water-badge{white-space:nowrap}
.aib-water-map-marker span{filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}


/* AI Bike Up 3.6 – Modello unico pagine Provincia */
.aib-province-shell{
    --aib-prov-ink:#111;
    --aib-prov-accent:#f28c28;
    --aib-prov-soft:#f7f3ee;
    --aib-prov-line:#e6dfd8;
    width:min(1180px,calc(100% - 36px));
    margin:28px auto 72px;
    color:var(--aib-prov-ink);
}
.aib-province-shell *{box-sizing:border-box}
.aib-province-hero{
    position:relative;
    overflow:hidden;
    padding:46px 52px;
    border-radius:26px;
    background:#111;
    color:#fff;
}
.aib-province-hero:after{
    content:"";
    position:absolute;
    width:280px;height:280px;
    right:-72px;bottom:-125px;
    border:56px solid rgba(242,140,40,.9);
    border-radius:50%;
}
.aib-province-eyebrow{
    position:relative;z-index:1;
    font-size:.76rem;
    letter-spacing:.15em;
    font-weight:900;
    text-transform:uppercase;
    color:#f6a24f;
}
.aib-province-hero h1{
    position:relative;z-index:1;
    max-width:820px;
    margin:8px 0 12px;
    font-size:clamp(2.35rem,5vw,4.55rem);
    line-height:.97;
    letter-spacing:-.045em;
    color:#fff;
}
.aib-province-hero p{
    position:relative;z-index:1;
    max-width:690px;
    margin:0;
    font-size:1.07rem;
    line-height:1.55;
    color:rgba(255,255,255,.86);
}
.aib-province-hero-meta{
    position:relative;z-index:1;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}
.aib-province-hero-meta span{
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.07);
    font-size:.78rem;
    font-weight:800;
}
.aib-province-bike-filter{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:22px 0 38px;
}
.aib-province-bike-filter a{
    padding:9px 14px;
    border:1px solid var(--aib-prov-line);
    border-radius:999px;
    background:#fff;
    color:#111;
    text-decoration:none;
    font-size:.88rem;
    font-weight:800;
}
.aib-province-bike-filter a:hover,
.aib-province-bike-filter a.is-active{
    border-color:var(--aib-prov-accent);
    background:var(--aib-prov-accent);
    color:#fff;
}
.aib-province-results-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin:0 0 18px;
}
.aib-province-results-label{
    color:#a94e07;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.13em;
}
.aib-province-results-head h2{
    margin:3px 0 0;
    font-size:clamp(1.8rem,3vw,2.6rem);
    letter-spacing:-.035em;
}
.aib-province-results-head p{margin:0;color:#666;font-weight:700}
.aib-province-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.aib-province-card{
    overflow:hidden;
    border:1px solid var(--aib-prov-line);
    border-radius:22px;
    background:#fff;
    box-shadow:0 9px 28px rgba(20,20,20,.06);
}
.aib-province-card-map-link,
.aib-province-card-photo{
    display:block;
    height:285px;
    overflow:hidden;
    background:#eee9e3;
}
.aib-province-card-photo img{
    width:100%;height:100%;
    object-fit:cover;
}
.aib-province-card-empty{
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#f8ede1,#f1ece7);
    color:#8b572a;
    text-decoration:none;
    letter-spacing:.15em;
    font-weight:900;
}
.aib-province-map{
    width:100%;
    height:100%;
    position:relative;
    background:#ece8e3;
}
.aib-province-map-loading{
    position:absolute;
    inset:0;
    z-index:500;
    display:grid;
    place-items:center;
    background:#ece8e3;
    color:#7d736b;
    font-size:.82rem;
    font-weight:800;
}
.aib-province-card-body{padding:22px}
.aib-province-card-kicker{
    color:#a94e07;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.aib-province-card h2{
    margin:6px 0 15px;
    font-size:clamp(1.35rem,2vw,1.75rem);
    line-height:1.12;
    letter-spacing:-.025em;
}
.aib-province-card h2 a{color:#111;text-decoration:none}
.aib-province-card-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
    margin:0 0 15px;
}
.aib-province-card-stats span{
    min-width:0;
    padding:10px 8px;
    border-radius:11px;
    background:var(--aib-prov-soft);
}
.aib-province-card-stats strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.92rem;
}
.aib-province-card-stats small{
    display:block;
    margin-top:2px;
    color:#777;
    font-size:.67rem;
    font-weight:700;
}
.aib-province-card-body>p{
    margin:0 0 14px;
    color:#5f5a56;
    line-height:1.48;
    font-size:.93rem;
}
.aib-province-card-footer{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-bottom:17px;
}
.aib-province-card-footer span{
    padding:6px 9px;
    border-radius:999px;
    background:#f8f5f2;
    color:#5d5752;
    font-size:.73rem;
    font-weight:700;
}
.aib-province-water{color:#286c85!important;background:#eef8fb!important}
.aib-province-water-none{color:#777!important;background:#f5f3f1!important}
.aib-province-card-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:14px;
    border-top:1px solid var(--aib-prov-line);
    color:#9c4705;
    text-decoration:none;
    font-weight:900;
}
.aib-province-card-cta span{font-size:1.25rem}
.aib-province-map-credit{
    margin:17px 0 0;
    color:#777;
    font-size:.72rem;
    text-align:right;
}
.aib-province-card .leaflet-container{font-family:inherit}
@media(max-width:860px){
    .aib-province-grid{grid-template-columns:1fr}
    .aib-province-card-map-link,.aib-province-card-photo{height:260px}
}
@media(max-width:620px){
    .aib-province-shell{width:min(100% - 22px,1180px);margin-top:14px}
    .aib-province-hero{padding:31px 23px;border-radius:20px}
    .aib-province-hero h1{font-size:2.55rem}
    .aib-province-results-head{align-items:flex-start;flex-direction:column;gap:5px}
    .aib-province-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .aib-province-card-map-link,.aib-province-card-photo{height:230px}
}


/* AI Bike Up 3.7 – Experience design: semplice, umano, completo */
:root{--aib-orange:#ef641f;--aib-orange-dark:#b94b12;--aib-cream:#fbf8f2;--aib-paper:#fffdf9;--aib-ink:#121212;--aib-soft:#f3eee6}
.aib-home-v37{max-width:1320px!important;margin:0 auto;padding:18px 24px 74px!important;background:var(--aib-paper)}
.aib-home-hero-v37{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);align-items:center;gap:42px;padding:36px 12px 20px}
.aib-home-overline,.aib-section-kicker{display:block;margin-bottom:9px;color:var(--aib-orange-dark);font-size:.72rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.aib-home-hero-copy h1{margin:0 0 20px;font-size:clamp(3.1rem,5.3vw,6rem);line-height:.91;letter-spacing:-.058em;color:#111}
.aib-home-hero-copy h1 em{font-style:normal;color:var(--aib-orange)}
.aib-home-hero-copy>p{max-width:610px;margin:0;color:#4c4a47;font-size:1.12rem;line-height:1.55}
.aib-home-hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:25px}.aib-home-hero-actions>span{color:#706a64;font-size:.78rem;font-weight:700}
.aib-button-big{padding:14px 22px!important;border-radius:14px!important;background:var(--aib-orange)!important;box-shadow:0 9px 24px rgba(239,100,31,.22)}
.aib-home-hero-visual{min-width:0}.aib-home-feature{position:relative;overflow:hidden;border:1px solid #e8e0d7;border-radius:30px;background:#f3ede5;box-shadow:0 22px 60px rgba(60,44,32,.12)}
.aib-home-feature-map-link,.aib-home-feature-photo,.aib-home-feature-fallback{display:block;height:430px;background:#e9e4dd;overflow:hidden;text-decoration:none}.aib-home-feature-map{height:100%!important;min-height:0!important}.aib-home-feature-photo img{width:100%;height:100%;object-fit:cover}.aib-home-feature-fallback{display:grid;place-items:center;align-content:center;gap:8px;background:radial-gradient(circle at 72% 28%,#ffe2cf 0 16%,transparent 17%),linear-gradient(135deg,#eee7df,#f9f4ee);color:#8a4d27}.aib-home-feature-fallback span{font-weight:950;letter-spacing:.16em}.aib-home-feature-fallback small{font-weight:700}
.aib-home-feature-copy{position:absolute;left:20px;right:20px;bottom:20px;padding:18px 20px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(255,253,249,.92);backdrop-filter:blur(10px);box-shadow:0 12px 30px rgba(17,17,17,.12)}.aib-home-feature-label{color:var(--aib-orange-dark);font-size:.65rem;font-weight:950;letter-spacing:.12em}.aib-home-feature-copy h3{margin:5px 0 10px;font-size:1.28rem;line-height:1.1}.aib-home-feature-copy h3 a{color:#111;text-decoration:none}.aib-home-feature-metrics{display:flex;gap:7px;flex-wrap:wrap}.aib-home-feature-metrics span{padding:6px 9px;border-radius:999px;background:#f4f0eb;color:#4c4742;font-size:.72rem;font-weight:750}.aib-home-feature-metrics .is-water{background:#eaf7fb;color:#2d6c84}.aib-home-feature-cta{display:inline-block;margin-top:10px;color:#9e430c;text-decoration:none;font-size:.82rem;font-weight:900}
.aib-home-search-v37{display:grid;grid-template-columns:230px 1fr;align-items:end;gap:22px;margin:28px 12px 14px;padding:22px;border:1px solid #e7dfd7;border-radius:22px;background:#fff;box-shadow:0 12px 35px rgba(42,32,24,.07)}.aib-home-search-title span{display:block;color:#a64b12;font-size:.65rem;font-weight:950;letter-spacing:.12em}.aib-home-search-title strong{display:block;margin-top:3px;font-size:1.24rem}.aib-home-search-v37 .aib-filter{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}.aib-home-search-v37 .aib-filter-home{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px!important}.aib-home-search-v37 .aib-filter label span{font-size:.68rem;color:#68615b}.aib-home-search-v37 .aib-filter select{height:48px;border-radius:12px;background:#fcfaf7}.aib-home-search-v37 .aib-filter .aib-button{height:48px;align-self:end;border-radius:12px;background:var(--aib-orange)}
.aib-home-promise{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 12px 48px}.aib-home-promise article{padding:16px 17px;border:1px solid #ebe3da;border-radius:16px;background:#fff}.aib-home-promise strong{display:block;margin-bottom:5px;font-size:.9rem}.aib-home-promise span{display:block;color:#68615b;font-size:.78rem;line-height:1.4}
.aib-home-routes-v37{margin-top:0!important}.aib-home-v37 .aib-grid{gap:16px}.aib-home-v37 .aib-card{border-radius:18px;box-shadow:0 8px 25px rgba(35,29,24,.055);border-color:#e9e1d8}.aib-home-v37 .aib-card-image{height:190px;background:linear-gradient(145deg,#f4eee6,#fbf7f2)}.aib-home-v37 .aib-card-placeholder{position:relative;color:transparent}.aib-home-v37 .aib-card-placeholder:before{content:"";position:absolute;inset:28px;border-radius:50%;border:2px solid rgba(239,100,31,.23);background:radial-gradient(circle,rgba(239,100,31,.055),transparent 63%)}.aib-home-v37 .aib-card-placeholder:after{content:"AI BIKE UP";position:absolute;inset:0;display:grid;place-items:center;color:rgba(145,69,27,.45);font-size:.74rem;font-weight:950;letter-spacing:.14em}.aib-card-tags{color:#b1480c!important}.aib-card-link{color:#9e430c!important}.aib-card-meta span{border-radius:10px;background:#f7f3ee}
/* Province: stesso spirito della home, più leggero e orientato alle schede */
.aib-province-shell{--aib-prov-accent:#ef641f;--aib-prov-soft:#f7f3ee;--aib-prov-line:#e9e0d7;background:#fffdf9}.aib-province-hero{background:linear-gradient(135deg,#fff 0 62%,#f8eee4 100%);color:#111;border:1px solid #e9e0d7;box-shadow:0 16px 42px rgba(42,32,24,.07)}.aib-province-hero:after{border-color:rgba(239,100,31,.16)}.aib-province-eyebrow{color:#a9470f}.aib-province-hero h1{color:#111}.aib-province-hero p{color:#59534e}.aib-province-hero-meta span{border-color:#e8ddd2;background:#fff;color:#5d554e}.aib-province-bike-filter a:hover,.aib-province-bike-filter a.is-active{border-color:#ef641f;background:#ef641f}.aib-province-card{box-shadow:0 9px 26px rgba(34,27,21,.055)}
@media(max-width:980px){.aib-home-hero-v37{grid-template-columns:1fr}.aib-home-hero-copy h1{font-size:clamp(3rem,9vw,5.6rem)}.aib-home-feature-map-link,.aib-home-feature-photo,.aib-home-feature-fallback{height:390px}.aib-home-search-v37{grid-template-columns:1fr}.aib-home-promise{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.aib-home-v37{padding:8px 13px 52px!important}.aib-home-hero-v37{padding:22px 2px 12px;gap:25px}.aib-home-hero-copy h1{font-size:3.15rem}.aib-home-hero-copy>p{font-size:1rem}.aib-home-feature-map-link,.aib-home-feature-photo,.aib-home-feature-fallback{height:330px}.aib-home-feature-copy{left:11px;right:11px;bottom:11px;padding:14px}.aib-home-feature-copy h3{font-size:1.05rem}.aib-home-search-v37{margin:18px 0 12px;padding:16px}.aib-home-search-v37 .aib-filter-home{grid-template-columns:1fr}.aib-home-promise{grid-template-columns:1fr;margin:12px 0 36px}.aib-home-v37 .aib-card-image{height:175px}}


/* AI Bike Up 3.8 – Card reali: mappa GPX, dati completi, acqua sobria */
.aib-card-map-link{position:relative;background:#ece8e2!important}
.aib-card-route-map{width:100%;height:100%;min-height:0!important;background:#ece8e2}
.aib-card-map-link .leaflet-container{font-family:inherit}
.aib-card-map-link:after{content:"Mappa del percorso";position:absolute;z-index:550;left:12px;top:12px;padding:5px 8px;border-radius:999px;background:rgba(255,253,249,.92);border:1px solid rgba(255,255,255,.8);color:#6a5e54;font-size:.64rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 4px 14px rgba(0,0,0,.08);pointer-events:none}
.aib-card-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important;margin:2px 0 12px!important}
.aib-card-meta span{min-width:0;padding:9px 10px!important;border-radius:10px!important;background:#f7f3ee!important}
.aib-card-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#171717;font-size:.84rem;line-height:1.15}
.aib-card-meta small{display:block;margin-top:3px;color:#7b736d;font-size:.64rem;font-weight:750;text-transform:none}
.aib-water-badge{margin:0 0 13px!important;padding:6px 10px!important;background:#edf8fb!important;color:#286c85!important;font-size:.74rem!important}
.aib-water-badge-muted{background:#f3f1ee!important;color:#77716c!important}
.aib-home-v37 .aib-card-image{height:205px!important}
.aib-home-v37 .aib-card h3{font-size:1.18rem;line-height:1.16;margin:.38em 0 .7em}
.aib-home-v37 .aib-card-body{padding:18px}
.aib-home-v37 .aib-card-body>p{min-height:4.15em;margin-top:4px;line-height:1.45}
.aib-home-v37 .aib-card-link{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:13px;border-top:1px solid #eee5dc}
.aib-province-water{font-weight:800}
@media(max-width:900px){.aib-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.aib-home-v37 .aib-card-image{height:210px!important}.aib-card-meta strong{font-size:.88rem}}


/* AI Bike Up 3.9 – Visual polish: categorie compatte, tempi leggibili, card uniformi */
.aib-card,
.aib-province-card{overflow:hidden;background:#fff;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media(hover:hover){.aib-card:hover,.aib-province-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(35,29,24,.10);border-color:#ded3c8}}

.aib-card-context{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin:0 0 10px}
.aib-bike-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.aib-bike-badges span{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border:1px solid #eadfd5;border-radius:999px;background:#fff8f1;color:#a94912;font-size:.64rem;font-weight:900;line-height:1;letter-spacing:.035em;white-space:nowrap}
.aib-region-label{flex:0 0 auto;color:#756d66;font-size:.66rem;font-weight:850;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}

.aib-home-v37 .aib-grid{align-items:stretch}
.aib-home-v37 .aib-card{display:flex;flex-direction:column;min-height:100%}
.aib-home-v37 .aib-card-body{display:flex;flex:1;flex-direction:column}
.aib-home-v37 .aib-card h3{margin:.1em 0 .72em;font-size:1.17rem;line-height:1.18;letter-spacing:-.018em}
.aib-home-v37 .aib-card h3 a{color:#111;text-decoration:none}
.aib-home-v37 .aib-card-body>p{min-height:0;margin:4px 0 0;color:#625c56;font-size:.9rem;line-height:1.5}
.aib-home-v37 .aib-card-link{margin-top:auto;padding-top:14px}

.aib-card-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.aib-card-meta span{display:flex!important;min-height:58px;flex-direction:column;justify-content:center;padding:9px 11px!important;border:1px solid #eee6de;background:#f8f5f1!important}
.aib-card-meta strong{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:normal;color:#171717;font-size:.86rem;line-height:1.16}
.aib-card-meta small{margin-top:4px!important;color:#7b736d;font-size:.62rem!important;line-height:1.05}

.aib-water-badge{display:inline-flex!important;align-items:center;gap:5px;width:max-content;max-width:100%;border:1px solid #dbeef4;border-radius:999px!important;white-space:normal}

.aib-card-map-link:after{content:"Traccia GPX";padding:5px 9px;border:1px solid rgba(255,255,255,.88);background:rgba(255,253,249,.94);color:#665b52}
.aib-home-v37 .aib-card-image{height:198px!important}
.aib-card-route-map .leaflet-control-zoom{display:none}
.aib-card-route-map .leaflet-control-attribution{font-size:7px;opacity:.65}

.aib-province-card-body .aib-card-context{margin-bottom:11px}
.aib-province-card-body .aib-bike-badges span{background:#fff7ef}
.aib-province-card h2{margin-top:0}
.aib-province-card-stats span{min-width:0}
.aib-province-card-stats strong{white-space:normal;overflow:visible}
.aib-province-card-footer:empty{display:none}
.aib-province-water{border:1px solid #dbeef4}

/* Home: più editoriale e pulita senza sacrificare la ricerca immediata */
.aib-home-hero-v37{padding-top:28px}
.aib-home-hero-copy h1{max-width:720px}
.aib-home-hero-copy>p{font-size:1.08rem}
.aib-home-search-v37{position:relative;z-index:4;margin-top:24px}
.aib-home-promise article{transition:transform .18s ease,border-color .18s ease}
@media(hover:hover){.aib-home-promise article:hover{transform:translateY(-2px);border-color:#dfd2c5}}

@media(max-width:720px){
  .aib-card-context{align-items:flex-start;flex-direction:column;gap:7px}
  .aib-region-label{white-space:normal}
  .aib-bike-badges span{font-size:.62rem}
  .aib-card-meta strong{font-size:.84rem}
}


/* AI Bike Up 4.0 – Premium UX: gerarchia visiva, fasce km, CTA e province coerenti */
.aib-home-v37{max-width:1360px!important;padding-top:10px!important}
.aib-home-hero-v37{gap:48px;padding:38px 16px 24px}
.aib-home-hero-copy h1{font-size:clamp(3.4rem,5.5vw,6.15rem);line-height:.92;letter-spacing:-.06em}
.aib-home-hero-copy h1 em{display:inline-block;margin-top:.06em}
.aib-home-hero-copy>p{max-width:650px;color:#514b45;font-size:1.1rem;line-height:1.58}
.aib-home-hero-actions .aib-button-big{padding:14px 22px;border-radius:14px;box-shadow:0 12px 26px rgba(239,100,31,.18)}
.aib-home-feature{border-radius:26px;box-shadow:0 22px 55px rgba(42,32,24,.12)}
.aib-home-feature-copy{border-radius:17px}
.aib-home-search-v37{margin-top:22px;border-radius:18px;box-shadow:0 12px 32px rgba(42,32,24,.065)}
.aib-home-promise{margin-bottom:42px}
.aib-home-promise article{border-radius:14px}

.aib-distance-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-6px 0 20px}
.aib-distance-legend span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #e9e0d7;border-radius:999px;background:#fff;color:#6d655f;font-size:.68rem;line-height:1}
.aib-distance-legend b{color:#211d1a;font-size:.68rem}

.aib-card-image,.aib-province-card-map-link,.aib-province-card-photo{position:relative}
.aib-distance-tier{position:absolute;z-index:560;right:12px;top:12px;display:inline-flex;align-items:center;min-height:25px;padding:5px 9px;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(17,17,17,.84);color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.045em;text-transform:uppercase;box-shadow:0 5px 16px rgba(0,0,0,.13);backdrop-filter:blur(6px)}
.aib-distance-tier.is-medium{background:rgba(126,77,35,.9)}
.aib-distance-tier.is-long{background:rgba(190,77,15,.92)}
.aib-distance-tier.is-challenge{background:rgba(17,17,17,.94);outline:1px solid rgba(239,100,31,.72);outline-offset:-3px}

.aib-home-v37 .aib-card{border-radius:17px;border-color:#e8dfd6;box-shadow:0 8px 24px rgba(32,25,19,.05)}
.aib-home-v37 .aib-card-image{height:205px!important}
.aib-home-v37 .aib-card-body{padding:17px 18px 18px}
.aib-card-context{margin-bottom:11px}
.aib-bike-badges span{min-height:23px;padding:4px 8px;background:#fffaf4;border-color:#eadfd4;color:#9e430d}
.aib-region-label{font-size:.62rem;color:#77706a}
.aib-home-v37 .aib-card h3{font-size:1.16rem;line-height:1.18;min-height:2.36em;margin:.08em 0 .7em}
.aib-card-meta{margin-bottom:11px!important}
.aib-card-meta span{min-height:56px;border-radius:9px!important;background:#faf7f3!important}
.aib-card-meta strong{font-size:.88rem}
.aib-water-badge{margin-bottom:12px!important;padding:6px 10px!important;font-size:.71rem!important}
.aib-home-v37 .aib-card-body>p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#655f59;font-size:.88rem;line-height:1.48}
.aib-home-v37 .aib-card-link{display:inline-flex!important;align-items:center;justify-content:center!important;align-self:flex-start;margin-top:16px!important;padding:9px 13px!important;border:1px solid #ead8ca!important;border-radius:999px;background:#fff8f1;color:#9e430c!important;font-size:.78rem;font-weight:900;line-height:1;text-decoration:none}
.aib-home-v37 .aib-card-link:hover{border-color:#ef641f!important;background:#ef641f;color:#fff!important}
.aib-card-map-link:after{left:11px;top:11px;padding:5px 9px;font-size:.6rem}

.aib-province-shell{width:min(100% - 34px,1240px);margin:26px auto 76px}
.aib-province-hero{padding:46px 48px;border-radius:24px;background:linear-gradient(125deg,#fff 0 64%,#fff3e9 100%)}
.aib-province-hero h1{max-width:880px;font-size:clamp(2.8rem,5vw,4.8rem);line-height:.98;letter-spacing:-.052em}
.aib-province-hero p{max-width:760px;font-size:1.02rem;line-height:1.55}
.aib-province-bike-filter{gap:8px;margin:18px 0 32px}
.aib-province-bike-filter a{border-radius:999px;font-weight:850}
.aib-province-results-head{padding-bottom:12px;border-bottom:1px solid #ebe2da}
.aib-province-grid{gap:18px}
.aib-province-card{border-radius:17px;border-color:#e8dfd6}
.aib-province-card-body{padding:18px}
.aib-province-card h2{font-size:1.22rem;line-height:1.18;letter-spacing:-.02em}
.aib-province-card-stats span{border-radius:9px;background:#faf7f3}
.aib-province-card p{color:#655f59;line-height:1.5}
.aib-province-card-cta{display:inline-flex;align-items:center;gap:8px;width:max-content;margin-top:auto;padding:9px 13px;border:1px solid #ead8ca;border-radius:999px;background:#fff8f1;color:#9e430c;font-size:.78rem;font-weight:900}
.aib-province-card-cta:hover{border-color:#ef641f;background:#ef641f;color:#fff}

/* Header delle schede: MTB ed E-bike diventano un'unica scelta pubblica */
.aib-public-header-inner{padding-top:13px;padding-bottom:13px}
.aib-public-nav{gap:4px}
.aib-public-nav a{font-size:.82rem}

@media(max-width:980px){
  .aib-home-hero-v37{gap:28px;padding-left:4px;padding-right:4px}
  .aib-home-v37 .aib-card h3{min-height:0}
  .aib-province-shell{width:min(100% - 24px,1240px)}
  .aib-province-hero{padding:36px 28px}
}
@media(max-width:660px){
  .aib-home-hero-copy h1{font-size:3.25rem}
  .aib-distance-legend{gap:6px;margin-bottom:16px}
  .aib-distance-legend span{font-size:.64rem}
  .aib-home-v37 .aib-card-image{height:220px!important}
  .aib-home-v37 .aib-card-body{padding:16px}
  .aib-province-hero{padding:28px 20px}
  .aib-province-hero h1{font-size:2.55rem}
}

/* AI Bike Up 4.1 – Italia viaggio, Regioni dedicate, privacy-ready */
body.aib-site-standalone{margin:0;background:#fbf8f2;color:#111;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.aib-public-header-v41{position:sticky;top:0;z-index:999;background:rgba(255,252,247,.94);border-bottom:1px solid #eee5dc;backdrop-filter:blur(14px)}
.admin-bar .aib-public-header-v41{top:32px}
.aib-public-header-v41 .aib-public-header-inner{max-width:1440px;padding:10px 34px}
.aib-brand-v41{gap:12px}.aib-brand-v41 img{width:62px;height:62px;border-radius:50%;object-fit:contain}
.aib-brand-v41>span{display:flex;flex-direction:column;gap:1px}.aib-brand-v41 strong{font-size:1.34rem;letter-spacing:-.045em}.aib-brand-v41 strong em{font-style:normal;color:#ef641f}.aib-brand-v41 small{color:#68615b;font-size:.55rem;letter-spacing:.17em}
.aib-public-nav-v41 a{position:relative;padding:10px 11px;border-radius:10px;background:transparent;font-size:.82rem}.aib-public-nav-v41 a.is-active,.aib-public-nav-v41 a:hover{background:#fff3e8;color:#9e430d!important}.aib-public-nav-v41 a.is-active:after{content:"";position:absolute;left:11px;right:11px;bottom:2px;height:2px;border-radius:2px;background:#ef641f}

.aib-home-v41{max-width:1440px!important;margin:0 auto;padding:0 34px 72px!important;background:#fffdf9}
.aib-home-hero-v41{display:grid;grid-template-columns:minmax(380px,.76fr) minmax(650px,1.24fr);align-items:center;gap:34px;padding:34px 0 18px;min-height:540px}
.aib-home-hero-v41 .aib-home-overline{margin-bottom:12px}.aib-home-hero-v41 h1{margin:0;font-size:clamp(3.4rem,5.5vw,6.5rem);line-height:.9;letter-spacing:-.065em;color:#111}.aib-home-hero-v41 h1 em{display:inline-block;margin-top:.08em;font-style:normal;color:#dd6427}.aib-home-hero-v41 p{max-width:610px;margin:22px 0 0;color:#514b45;font-size:1.07rem;line-height:1.58}
.aib-home-hero-v41 .aib-home-hero-actions{margin-top:24px}.aib-button-outline{border:1px solid #e4c2ad!important;background:#fff!important;color:#9e430d!important}.aib-button-outline:hover{background:#fff3e8!important}
.aib-home-trust{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;color:#625b55;font-size:.72rem;font-weight:800}
.aib-home-atlas{min-width:0}.aib-atlas-map{position:relative;overflow:hidden;width:100%;border:1px solid #e8dfd5;border-radius:28px;background:linear-gradient(145deg,#eef2ea,#f4eee7);box-shadow:0 22px 60px rgba(46,36,27,.11)}
.aib-atlas-map-italy{height:500px}.aib-atlas-map-region{height:455px}
.aib-atlas-map .leaflet-tile-pane{filter:saturate(.78) sepia(.08) brightness(1.035)}.aib-atlas-map .leaflet-control-container{display:none}.aib-atlas-loading{position:absolute;inset:0;z-index:1;display:grid;place-items:center;color:#926242;font-weight:900;letter-spacing:.08em}
.aib-atlas-div-icon,.aib-region-route-div-icon{background:transparent!important;border:0!important}
.aib-atlas-pin{display:flex;align-items:center;gap:7px;width:max-content;max-width:178px;color:#111!important;text-decoration:none!important;transform:translateZ(0)}
.aib-atlas-photo{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;overflow:hidden;border:3px solid #fff;border-radius:50%;background:linear-gradient(135deg,#ef641f,#ffb56f);box-shadow:0 7px 18px rgba(30,24,19,.20);font-size:1.25rem}.aib-atlas-photo img{width:100%;height:100%;object-fit:cover}.aib-atlas-photo.is-empty{color:#fff}
.aib-atlas-label{display:flex;flex-direction:column;min-width:98px;padding:7px 10px;border:1px solid rgba(232,223,213,.92);border-radius:12px;background:rgba(255,253,249,.95);box-shadow:0 8px 20px rgba(35,28,22,.10);backdrop-filter:blur(8px)}.aib-atlas-label strong{font-size:.7rem;line-height:1.1}.aib-atlas-label small{margin-top:2px;color:#746c65;font-size:.57rem;line-height:1.15}

.aib-home-search-v41{display:grid;grid-template-columns:250px 1fr;align-items:end;gap:22px;margin:8px 0 24px;padding:18px 20px;border:1px solid #e7dfd7;border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(42,32,24,.06)}
.aib-home-search-v41 .aib-home-search-title span{display:block;color:#a64b12;font-size:.62rem;font-weight:950;letter-spacing:.12em}.aib-home-search-v41 .aib-home-search-title strong{display:block;margin-top:3px;font-size:1.18rem}.aib-home-search-v41 .aib-filter{margin:0;padding:0;border:0;background:transparent}.aib-home-search-v41 .aib-filter-home{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.aib-home-search-v41 .aib-filter select{height:45px;background:#fdfaf6}.aib-home-search-v41 .aib-filter .aib-button{height:45px;border-radius:11px}
.aib-home-promise-v41{grid-template-columns:repeat(6,minmax(0,1fr));margin:14px 0 42px}.aib-home-promise-v41 article{padding:13px 14px}.aib-home-promise-v41 strong{font-size:.78rem}.aib-home-promise-v41 span{font-size:.67rem}
.aib-home-routes-v41{margin:38px 0 48px!important}.aib-home-v41 .aib-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.aib-home-v41 .aib-card{border-radius:14px}.aib-home-v41 .aib-card-image{height:145px!important}.aib-home-v41 .aib-card-body{padding:13px}.aib-home-v41 .aib-card h3{min-height:2.5em;margin:.05em 0 .62em;font-size:.98rem;line-height:1.16}.aib-home-v41 .aib-card-context{margin-bottom:8px}.aib-home-v41 .aib-bike-badges span{font-size:.56rem;min-height:20px;padding:3px 6px}.aib-home-v41 .aib-region-label{font-size:.55rem}.aib-home-v41 .aib-card-meta{gap:5px!important;margin-bottom:8px!important}.aib-home-v41 .aib-card-meta span{min-height:44px;padding:6px 7px!important}.aib-home-v41 .aib-card-meta strong{font-size:.75rem}.aib-home-v41 .aib-card-meta small{font-size:.54rem!important}.aib-home-v41 .aib-water-badge{margin-bottom:8px!important;padding:5px 8px!important;font-size:.62rem!important}.aib-home-v41 .aib-card-body>p{display:none}.aib-home-v41 .aib-card-link{margin-top:auto!important;padding:7px 10px!important;font-size:.67rem}.aib-home-v41 .aib-distance-tier{min-height:21px;padding:4px 7px;font-size:.52rem}.aib-home-v41 .aib-card-map-link:after{font-size:.5rem;padding:4px 7px}

.aib-region-gallery{margin-top:42px!important}.aib-region-gallery-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.aib-region-tile{position:relative;overflow:hidden;min-height:150px;border:1px solid #e7ddd3;border-radius:16px;background:#eee;color:#111;text-decoration:none;box-shadow:0 8px 24px rgba(30,25,20,.055)}.aib-region-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85)}.aib-region-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,14,12,.72),transparent 60%)}.aib-region-tile>span{position:absolute;z-index:2;left:13px;right:13px;bottom:12px;color:#fff}.aib-region-tile strong,.aib-region-tile small{display:block}.aib-region-tile strong{font-size:.9rem}.aib-region-tile small{margin-top:2px;font-size:.62rem;opacity:.86}.aib-region-tile:hover img{transform:scale(1.035);transition:.25s ease}
.aib-privacy-ready{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:48px 0 0;padding:20px 22px;border:1px solid #e7dfd7;border-radius:17px;background:#fff9f2}.aib-privacy-ready div{display:flex;flex-direction:column;gap:4px}.aib-privacy-ready strong{font-size:.92rem}.aib-privacy-ready span{max-width:900px;color:#665e57;font-size:.73rem;line-height:1.45}.aib-privacy-shield{display:grid!important;place-items:center!important;flex:0 0 42px;width:42px;height:42px;border:2px solid #ef641f;border-radius:50%;color:#b94b12!important;font-size:1rem!important;font-weight:950}

/* Regione: stessa identità della Home, copertina locale */
.aib-region-shell{max-width:1440px;margin:0 auto;padding:24px 34px 72px;background:#fffdf9}.aib-region-hero{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(650px,1.28fr);align-items:center;gap:34px;padding:18px 0 24px}.aib-breadcrumb{display:flex;align-items:center;gap:7px;margin-bottom:18px;color:#776f68;font-size:.68rem}.aib-breadcrumb a{color:#776f68;text-decoration:none}.aib-region-copy h1{margin:0;font-size:clamp(4rem,7vw,7.2rem);line-height:.88;letter-spacing:-.065em}.aib-region-copy h2{margin:18px 0 0;color:#df6527;font-size:clamp(1.45rem,2vw,2.15rem);line-height:1.05;letter-spacing:-.025em}.aib-region-copy p{max-width:580px;margin:16px 0 0;color:#5d5650;font-size:1rem;line-height:1.55}.aib-region-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:23px}.aib-region-actions>span{color:#6c655f;font-size:.72rem;font-weight:750}.aib-region-visual{min-width:0}
.aib-region-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;margin:8px 0 32px;padding:14px;border:1px solid #e7dfd7;border-radius:16px;background:#fff}.aib-region-filter label{display:flex;flex-direction:column;gap:5px}.aib-region-filter label span{color:#6a625c;font-size:.64rem;font-weight:800}.aib-region-filter select{height:45px;padding:0 10px;border:1px solid #ddd3c9;border-radius:10px;background:#fcfaf7}.aib-region-filter .aib-button{height:45px;border-radius:10px}
.aib-region-routes{scroll-margin-top:100px}.aib-region-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.aib-region-grid .aib-province-card{border-radius:14px}.aib-region-grid .aib-province-card-map-link,.aib-region-grid .aib-province-card-photo{height:145px}.aib-region-grid .aib-province-card-body{padding:13px}.aib-region-grid .aib-province-card h2{font-size:.98rem;min-height:2.45em}.aib-region-grid .aib-province-card-stats{gap:5px}.aib-region-grid .aib-province-card-stats span{min-height:44px;padding:6px 7px}.aib-region-grid .aib-province-card-stats strong{font-size:.75rem}.aib-region-grid .aib-province-card-stats small{font-size:.54rem}.aib-region-grid .aib-province-card p{display:none}.aib-region-grid .aib-province-card-footer{margin-top:6px}.aib-region-grid .aib-province-water,.aib-region-grid .aib-province-surface{padding:5px 7px;font-size:.58rem}.aib-region-grid .aib-province-card-cta{padding:7px 10px;font-size:.66rem}
.aib-region-route-pin{display:flex;align-items:center;gap:6px;width:150px;color:#111!important;text-decoration:none!important}.aib-region-route-photo{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;overflow:hidden;border:3px solid #fff;border-radius:50%;background:#ef641f;box-shadow:0 5px 14px rgba(0,0,0,.18)}.aib-region-route-photo img{width:100%;height:100%;object-fit:cover}.aib-region-route-pin small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:95px;padding:5px 7px;border:1px solid #e6ddd4;border-radius:9px;background:rgba(255,253,249,.94);font-size:.54rem;font-weight:800;line-height:1.2;box-shadow:0 5px 14px rgba(0,0,0,.08)}

/* Province: schede più piccole e coerenti */
.aib-province-shell{max-width:1320px!important}.aib-province-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.aib-province-card-map-link,.aib-province-card-photo{height:180px}.aib-province-card-body{padding:15px}.aib-province-card h2{font-size:1.05rem}.aib-province-card p{font-size:.82rem}

/* Footer privacy / cookie visibile e sobrio */
.aib-public-footer-v41{margin-top:0;border-top:1px solid #e8dfd5;background:#f6efe7;color:#111}.aib-public-footer-v41 .aib-public-footer-grid{max-width:1440px;grid-template-columns:1fr auto auto;padding:22px 34px}.aib-footer-brand{display:flex;align-items:center;gap:10px}.aib-footer-brand img{width:44px;height:44px;object-fit:contain}.aib-footer-brand div{display:flex;flex-direction:column}.aib-footer-brand strong{color:#111;font-size:.95rem;letter-spacing:-.03em}.aib-footer-brand strong em{font-style:normal;color:#ef641f}.aib-footer-brand span{color:#716961;font-size:.63rem}.aib-footer-legal{display:flex;gap:15px;flex-wrap:wrap;justify-content:center}.aib-footer-legal a{color:#5b544e!important;text-decoration:none;font-size:.68rem;font-weight:700}.aib-footer-legal a:hover{color:#a04410!important}.aib-public-footer-v41 small{color:#7c736b;font-size:.62rem}

/* Admin: semaforo privacy prima della pubblicazione */
.aib-admin-privacy{max-width:980px;margin:18px 0;padding:18px 20px;border:1px solid #dcdcde;border-left:4px solid #ef641f;background:#fff}.aib-admin-privacy h2{margin-top:0}.aib-admin-privacy>p{max-width:850px}.aib-admin-privacy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.aib-admin-privacy li{display:flex;flex-direction:column;gap:3px;margin:0;padding:10px 12px;border:1px solid #e4e4e4;border-radius:8px;background:#fafafa}.aib-admin-privacy li.is-ok{border-color:#b8dfc2;background:#f2fbf4}.aib-admin-privacy li.is-check{border-color:#efc3a8;background:#fff7f1}.aib-admin-privacy li.is-info{grid-column:1/-1}.aib-admin-privacy li span{color:#555;font-size:12px;line-height:1.4}

@media(max-width:1180px){
 .aib-home-hero-v41,.aib-region-hero{grid-template-columns:1fr;gap:24px}.aib-atlas-map-italy{height:460px}.aib-home-promise-v41{grid-template-columns:repeat(3,1fr)}.aib-home-v41 .aib-grid,.aib-region-grid{grid-template-columns:repeat(3,1fr)}.aib-region-gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
 .admin-bar .aib-public-header-v41{top:46px}.aib-public-header-v41 .aib-public-header-inner{padding:10px 18px}.aib-public-nav-v41{overflow-x:auto;flex-wrap:nowrap;max-width:65vw}.aib-public-nav-v41 a{white-space:nowrap}.aib-home-v41,.aib-region-shell{padding-left:18px!important;padding-right:18px!important}.aib-home-search-v41{grid-template-columns:1fr}.aib-home-v41 .aib-grid,.aib-region-grid,.aib-province-grid{grid-template-columns:repeat(2,1fr)}.aib-region-filter{grid-template-columns:repeat(2,1fr)}.aib-region-filter .aib-button{width:100%}.aib-public-footer-v41 .aib-public-footer-grid{grid-template-columns:1fr;padding:20px 18px}.aib-footer-legal{justify-content:flex-start}.aib-admin-privacy ul{grid-template-columns:1fr}
}
@media(max-width:620px){
 .aib-brand-v41 img{width:48px;height:48px}.aib-brand-v41 strong{font-size:1.05rem}.aib-brand-v41 small{display:none}.aib-public-nav-v41{max-width:100%;width:100%}.aib-home-hero-v41{padding-top:22px;min-height:0}.aib-home-hero-v41 h1{font-size:3.2rem}.aib-atlas-map-italy,.aib-atlas-map-region{height:390px}.aib-atlas-label{display:none}.aib-home-promise-v41{grid-template-columns:repeat(2,1fr)}.aib-home-v41 .aib-grid,.aib-region-grid,.aib-province-grid,.aib-region-gallery-grid{grid-template-columns:1fr}.aib-home-v41 .aib-card-image,.aib-region-grid .aib-province-card-map-link,.aib-region-grid .aib-province-card-photo{height:210px!important}.aib-region-copy h1{font-size:3.7rem}.aib-region-filter{grid-template-columns:1fr}.aib-privacy-ready{align-items:flex-start}.aib-home-search-v41{padding:15px}.aib-home-search-v41 .aib-filter-home{grid-template-columns:1fr}.aib-region-route-pin small{display:none}
}

/* AI Bike Up 4.2 – consultazione diretta per Regione, bollini compatti, card più leggere */
.aib-atlas-pin{gap:5px;max-width:145px}
.aib-atlas-photo{flex-basis:42px;width:42px;height:42px;border-width:2px;box-shadow:0 5px 13px rgba(30,24,19,.18);font-size:.95rem}
.aib-atlas-label{min-width:82px;padding:5px 7px;border-radius:10px}
.aib-atlas-label strong{font-size:.61rem}.aib-atlas-label small{font-size:.5rem}
.aib-home-v41 .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.aib-home-v41 .aib-card-image{height:132px!important}
.aib-region-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.aib-region-grid .aib-province-card-map-link,.aib-region-grid .aib-province-card-photo{height:132px}
.aib-region-filter{grid-template-columns:repeat(2,minmax(0,1fr)) auto}
.aib-home-search-v41 .aib-filter-home.aib-filter-regions-only{grid-template-columns:repeat(2,minmax(0,1fr)) auto}
.aib-filter-regions-only{grid-template-columns:repeat(2,minmax(0,1fr)) auto auto}
.aib-card-region-visual,.aib-province-card-region-visual{position:relative;overflow:hidden;background:#efe7dd}
.aib-card-region-visual img,.aib-province-card-region-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(.98)}
.aib-card-region-visual:before,.aib-province-card-region-visual:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to top,rgba(22,17,12,.34),transparent 55%);pointer-events:none}
.aib-research-visual-badge{position:absolute;z-index:4;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:4px 7px;border-radius:999px;background:rgba(255,253,249,.94);color:#884012;font-size:.48rem;font-weight:950;letter-spacing:.045em;box-shadow:0 4px 14px rgba(25,19,14,.12)}
@media(max-width:1180px){.aib-home-v41 .aib-grid,.aib-region-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.aib-home-v41 .aib-grid,.aib-region-grid{grid-template-columns:repeat(2,1fr)}.aib-region-filter,.aib-home-search-v41 .aib-filter-home.aib-filter-regions-only,.aib-filter-regions-only{grid-template-columns:1fr}.aib-atlas-photo{width:38px;height:38px;flex-basis:38px}}
@media(max-width:540px){.aib-home-v41 .aib-grid,.aib-region-grid{grid-template-columns:1fr}}

/* AI Bike Up 4.3 — atlante emozionale statico 3D per Home, Lombardia e Piemonte */
.aib-atlas-static{background:#fbf8f3!important;box-shadow:none!important;border-color:#eee5dc!important}
.aib-atlas-static img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}
.aib-atlas-static-badge{position:absolute;left:18px;bottom:16px;z-index:2;padding:9px 13px;border-radius:999px;background:rgba(255,253,249,.92);border:1px solid rgba(224,101,39,.22);color:#7f3f18;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(8px)}
.aib-home-atlas .aib-atlas-static img{object-position:center 48%}
.aib-region-static-lombardia img,.aib-region-static-piemonte img{object-fit:contain;object-position:center;background:#fbf8f3}
@media (max-width:900px){.aib-atlas-static-badge{left:12px;bottom:12px;font-size:.62rem}.aib-atlas-static img{object-fit:cover}}

/* 4.4.2 — immagini nitide e stati GPX Fase 1 */
.aib-province-card-region-visual img,.aib-card-region-visual img{image-rendering:auto;filter:saturate(.98) contrast(1.02)!important;transform:none!important}
.aib-province-card-region-visual,.aib-card-region-visual{background:#f5efe7}
.aib-province-card-region-visual img{object-fit:cover;object-position:center}
.aib-research-visual-badge{background:rgba(255,253,249,.97);font-size:.52rem;letter-spacing:.035em}

/* AI Bike Up 4.6.0 – Site-first: filtro unico Regione + Provincia + bici */
.aib-filter-fast{grid-template-columns:repeat(3,minmax(160px,1fr)) auto auto;align-items:end}
.aib-filter-home.aib-filter-fast{grid-template-columns:repeat(3,minmax(160px,1fr)) auto}
.aib-filter-fast .aib-button{min-height:46px;white-space:nowrap}
.aib-admin-workflow-badge{display:inline-flex;margin:0 0 9px;padding:5px 8px;border-radius:999px;font-size:.64rem;font-weight:900;letter-spacing:.055em}
.aib-admin-workflow-badge.is-ready{background:#dff3e3;color:#126427}
.aib-admin-workflow-badge.is-check{background:#fff1c7;color:#7a5100}
.aib-admin-workflow-badge.is-prep{background:#e9eaec;color:#444}
@media(max-width:980px){.aib-filter-fast,.aib-filter-home.aib-filter-fast{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.aib-filter-fast,.aib-filter-home.aib-filter-fast{grid-template-columns:1fr}.aib-filter-fast .aib-button{width:100%}}

/* =========================================================
   AI Bike Up 4.6.1 — HOME RAPIDA / SITO-FIRST
   Obiettivo: ricerca completa visibile subito su desktop.
   ========================================================= */
.aib-home-v42{max-width:1440px!important;margin:0 auto;padding:0 34px 72px!important;background:#fffdf9}
.aib-home-hero-v42{display:grid;grid-template-columns:minmax(380px,.78fr) minmax(600px,1.22fr);align-items:center;gap:32px;padding:22px 0 8px;min-height:420px}
.aib-home-hero-v42 .aib-home-overline{margin-bottom:9px}
.aib-home-hero-v42 h1{margin:0;font-size:clamp(3.2rem,5vw,5.75rem);line-height:.9;letter-spacing:-.062em;color:#111}
.aib-home-hero-v42 h1 em{display:inline-block;margin-top:.08em;font-style:normal;color:#dd6427}
.aib-home-hero-v42 p{max-width:590px;margin:17px 0 0;color:#514b45;font-size:1.02rem;line-height:1.52}
.aib-home-hero-v42 .aib-home-hero-actions{margin-top:18px;gap:12px}
.aib-home-hero-v42 .aib-home-trust{margin-top:13px;gap:14px;display:flex;flex-wrap:wrap;color:#625c56;font-size:.72rem;font-weight:750}
.aib-home-v42 .aib-atlas-map-italy{height:390px}
.aib-home-search-v42{display:grid;grid-template-columns:290px 1fr;align-items:end;gap:22px;margin:8px 0 12px;padding:17px 19px;border:1px solid #e2d9d0;border-radius:17px;background:#fff;box-shadow:0 11px 30px rgba(42,32,24,.07)}
.aib-home-search-v42 .aib-home-search-title span{display:block;color:#a64b12;font-size:.61rem;font-weight:950;letter-spacing:.12em}
.aib-home-search-v42 .aib-home-search-title strong{display:block;margin-top:3px;font-size:1.12rem;line-height:1.18}
.aib-home-search-v42 .aib-home-search-title small{display:block;margin-top:5px;color:#77706a;font-size:.68rem;line-height:1.3}
.aib-home-search-v42 .aib-filter{margin:0;padding:0;border:0;background:transparent}
.aib-home-search-v42 .aib-filter-home{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:9px}
.aib-home-search-v42 .aib-filter label span{font-size:.66rem;color:#625c56}
.aib-home-search-v42 .aib-filter select{height:44px;min-height:44px;background:#fdfaf6;border-radius:10px}
.aib-home-search-v42 .aib-filter .aib-button{height:44px;min-height:44px;border-radius:10px;white-space:nowrap;padding-left:18px;padding-right:18px}
.aib-home-scenic-v42{display:flex;align-items:center;gap:13px;margin:0 0 32px;padding:10px 14px;border:1px solid #eee6de;border-radius:13px;background:#fbf8f4}
.aib-home-scenic-title{flex:0 0 auto;color:#9e430d;font-size:.58rem;font-weight:950;letter-spacing:.11em}
.aib-home-scenic-v42>div{display:flex;gap:7px;flex-wrap:wrap}
.aib-home-scenic-v42>div span{padding:6px 9px;border-radius:999px;background:#fff;border:1px solid #ebe1d8;color:#5e5751;font-size:.65rem;font-weight:750}
.aib-home-routes-v42{margin:32px 0 46px!important}
.aib-home-v42 .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.aib-home-v42 .aib-card{display:flex;flex-direction:column;min-height:100%;border-radius:14px}
.aib-home-v42 .aib-card-image{height:132px!important}
.aib-home-v42 .aib-card-body{display:flex;flex:1;flex-direction:column;padding:13px}
.aib-home-v42 .aib-card h3{min-height:2.45em;margin:.05em 0 .62em;font-size:.98rem;line-height:1.16}
.aib-home-v42 .aib-card-body>p{display:none}
.aib-home-v42 .aib-card-link{margin-top:auto!important;padding:8px 10px!important;font-size:.68rem}
.aib-home-v42 .aib-card-meta{gap:5px!important;margin-bottom:8px!important}
.aib-home-v42 .aib-card-meta span{min-height:42px;padding:6px 7px!important}
.aib-home-v42 .aib-bike-badges span{font-size:.56rem;min-height:20px;padding:3px 6px}
.aib-home-v42 .aib-region-label{font-size:.55rem}
.aib-home-v42 .aib-water-badge{margin-bottom:8px!important;padding:5px 8px!important;font-size:.62rem!important}
.aib-home-v42 .aib-distance-tier{min-height:21px;padding:4px 7px;font-size:.52rem}
@media(max-width:1180px){.aib-home-hero-v42{grid-template-columns:1fr;min-height:0}.aib-home-v42 .aib-atlas-map-italy{height:420px}.aib-home-search-v42{grid-template-columns:1fr}.aib-home-v42 .aib-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.aib-home-v42{padding-left:18px!important;padding-right:18px!important}.aib-home-hero-v42{padding-top:18px;gap:20px}.aib-home-hero-v42 h1{font-size:3.15rem}.aib-home-v42 .aib-atlas-map-italy{height:340px}.aib-home-search-v42 .aib-filter-home{grid-template-columns:1fr}.aib-home-search-v42 .aib-filter .aib-button{width:100%}.aib-home-scenic-v42{align-items:flex-start;flex-direction:column}.aib-home-v42 .aib-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.aib-home-v42{padding-left:13px!important;padding-right:13px!important}.aib-home-hero-v42 h1{font-size:2.9rem}.aib-home-v42 .aib-atlas-map-italy{height:300px}.aib-home-v42 .aib-grid{grid-template-columns:1fr}}
@media(min-width:901px){.aib-public-header-v41 .aib-public-header-inner{padding-top:7px;padding-bottom:7px}.aib-brand-v41 img{width:56px;height:56px}.aib-brand-v41 strong{font-size:1.25rem}}

/* =========================================================
   AI Bike Up 4.7.0 — STRUTTURA PUBBLICA DEFINITIVA
   Home invariata a 5 card; cataloghi, Regioni e schede coerenti.
   ========================================================= */
.aib-catalog-shell{max-width:1440px!important;margin:0 auto;padding:28px 34px 72px!important;background:#fffdf9}
.aib-catalog-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:28px;align-items:end;padding:30px 0 24px;border-bottom:1px solid #eee5dc}
.aib-catalog-hero h1{margin:5px 0 10px;font-size:clamp(2.7rem,5vw,5.25rem);line-height:.94;letter-spacing:-.055em;color:#111}
.aib-catalog-hero p{max-width:760px;margin:0;color:#5e5750;font-size:1.02rem;line-height:1.55}
.aib-catalog-priorities,.aib-region-priorities{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.aib-catalog-priorities{justify-content:flex-end}
.aib-catalog-priorities span,.aib-region-priorities span{padding:7px 10px;border:1px solid #ebe1d8;border-radius:999px;background:#fff;color:#5e5751;font-size:.66rem;font-weight:800}
.aib-catalog-filter{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:end;margin:18px 0 30px;padding:16px 18px;border:1px solid #e5ddd4;border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(42,32,24,.05)}
.aib-catalog-filter-copy{display:flex;flex-direction:column;gap:3px}.aib-catalog-filter-copy strong{font-size:.98rem}.aib-catalog-filter-copy span{color:#756d66;font-size:.7rem}
.aib-catalog-filter .aib-filter{margin:0;padding:0;border:0;background:transparent}.aib-catalog-filter .aib-filter-home{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.aib-catalog-filter .aib-filter-fast{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
.aib-catalog-results{margin-top:18px}.aib-catalog-shell .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
.aib-catalog-shell .aib-card{display:flex;flex-direction:column;min-height:100%;border-radius:14px}.aib-catalog-shell .aib-card-image{height:132px!important;aspect-ratio:auto}.aib-catalog-shell .aib-card-body{display:flex;flex:1;flex-direction:column;padding:13px}.aib-catalog-shell .aib-card h3{min-height:2.45em;margin:.05em 0 .62em;font-size:.98rem;line-height:1.16}.aib-catalog-shell .aib-card-body>p{display:none}.aib-catalog-shell .aib-card-link{margin-top:auto!important;padding:8px 10px!important;font-size:.68rem}.aib-catalog-shell .aib-card-meta{gap:5px!important;margin-bottom:7px!important}.aib-catalog-shell .aib-card-meta span{min-height:42px;padding:6px 7px!important}.aib-catalog-shell .aib-bike-badges span{font-size:.56rem;min-height:20px;padding:3px 6px}.aib-catalog-shell .aib-region-label{font-size:.55rem}
.aib-card-practical{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.aib-card-practical .aib-water-badge{margin:0!important}.aib-surface-badge{display:inline-flex;align-items:center;max-width:100%;padding:5px 8px;border:1px solid #e7dfd7;border-radius:999px;background:#faf7f3;color:#665f58;font-size:.61rem;font-weight:750;line-height:1.1}
.aib-home-v42 .aib-card-practical{min-height:26px}.aib-home-v42 .aib-surface-badge{font-size:.58rem;padding:5px 7px}
.aib-region-priorities{margin:-18px 0 28px}.aib-region-filter{grid-template-columns:repeat(3,minmax(0,1fr)) auto auto}
.aib-region-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important}
.aib-route-page{max-width:1440px}.aib-route-hero{margin-top:10px}.aib-route-hero .aib-breadcrumb{margin-bottom:9px}.aib-route-related{margin:48px 0 6px;padding-top:34px;border-top:1px solid #eee5dc}.aib-route-related .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.aib-route-related .aib-card{display:flex;flex-direction:column;border-radius:14px}.aib-route-related .aib-card-image{height:132px!important;aspect-ratio:auto}.aib-route-related .aib-card-body{display:flex;flex:1;flex-direction:column;padding:13px}.aib-route-related .aib-card h3{min-height:2.45em;font-size:.95rem}.aib-route-related .aib-card-body>p{display:none}.aib-route-related .aib-card-link{margin-top:auto}.aib-route-related .aib-card-meta span{min-height:42px;padding:6px 7px!important}.aib-route-related .aib-card-practical{min-height:26px}
/* Il controllo privacy resta nel back-office e nelle pagine legali, non nella Home pubblica. */
.aib-home-v42 .aib-privacy-ready{display:none!important}
@media(max-width:1180px){.aib-catalog-shell .aib-grid,.aib-region-grid,.aib-route-related .aib-grid{grid-template-columns:repeat(3,1fr)!important}.aib-catalog-hero{grid-template-columns:1fr}.aib-catalog-priorities{justify-content:flex-start}.aib-catalog-filter{grid-template-columns:1fr}}
@media(max-width:760px){.aib-catalog-shell{padding-left:18px!important;padding-right:18px!important}.aib-catalog-shell .aib-grid,.aib-region-grid,.aib-route-related .aib-grid{grid-template-columns:repeat(2,1fr)!important}.aib-catalog-filter .aib-filter-home,.aib-catalog-filter .aib-filter-fast,.aib-region-filter{grid-template-columns:1fr}.aib-region-priorities{margin-top:-8px}}
@media(max-width:540px){.aib-catalog-shell .aib-grid,.aib-region-grid,.aib-route-related .aib-grid{grid-template-columns:1fr!important}}

/* =========================================================
   AI Bike Up 4.7.1 — SCHEDA PERCORSO DEFINITIVA
   5 card invariate; visual GPX reale e crediti più compatti.
   ========================================================= */
.aib-route-hero h1{font-size:clamp(2.25rem,4.55vw,4.35rem)}
.aib-route-hero-map-wrap{position:relative;isolation:isolate;background:#ebe7e1!important}
.aib-route-hero-map-wrap:before,.aib-route-hero-map-wrap:after{display:none!important}
.aib-route-hero-map{position:absolute!important;inset:0;width:100%!important;height:100%!important;min-height:0!important;background:#ebe7e1;z-index:1}
.aib-route-hero-map .leaflet-container{font-family:inherit}
.aib-route-hero-map-label{position:absolute!important;z-index:560!important;left:14px!important;bottom:14px!important;padding:7px 10px;border:1px solid rgba(255,255,255,.92);border-radius:999px;background:rgba(255,253,249,.94);box-shadow:0 5px 16px rgba(0,0,0,.09);color:#8e4312!important;font-size:.6rem!important;font-weight:950!important;letter-spacing:.09em!important}
.aib-route-hero-map .aib-province-map-loading{position:absolute;inset:0;display:grid;place-items:center;color:#8b7464;font-size:.78rem;font-weight:850}
.aib-route-hero-map .leaflet-control-container{display:none!important}
.aib-route-page .aib-source-minimal{max-width:none!important;margin:18px 0 0!important;padding:8px 0 0!important;border:0!important;border-top:1px solid #eee5dc!important;border-radius:0!important;background:transparent!important;text-align:left!important}
.aib-route-page .aib-source-minimal summary{padding:7px 0!important;color:#777;font-size:.68rem}
.aib-route-page .aib-source-minimal .aib-source-content{max-width:none;margin:2px 0 0;padding:8px 0 2px;border-top:0;color:#777;font-size:.7rem}
.aib-source-minimal + .aib-route-related{margin-top:18px!important;padding-top:28px!important}
.aib-route-related .aib-province-map-loading{font-size:.72rem}
@media(max-width:900px){.aib-route-hero h1{font-size:clamp(2.25rem,7vw,4rem)}}
@media(max-width:600px){.aib-route-hero h1{font-size:2.4rem}.aib-route-hero-map-wrap{display:none!important}}

/* =========================================================
   AI Bike Up 4.7.2 — MAPPA ITALIA INTERA
   Mantiene la Home e le 5 card, elimina il ritaglio dell'atlante.
   ========================================================= */
.aib-home-v42 .aib-atlas-map-italy{
    height:auto!important;
    aspect-ratio:41 / 22;
}
.aib-home-v42 .aib-home-atlas .aib-atlas-static img{
    width:100%;
    height:100%;
    object-fit:contain!important;
    object-position:center center!important;
    background:#fbf8f3;
}


/* =========================================================
   AI Bike Up 4.7.3 — HERO SCHEDA PERCORSO COMPATTO
   Riduce l'altezza della fascia senza toccare le 5 card.
   ========================================================= */
.aib-route-hero{
    grid-template-columns:minmax(0,1.58fr) minmax(250px,.42fr);
    gap:22px;
    align-items:center;
    margin:10px 0 20px;
    padding:22px 28px;
    border-radius:26px;
}
.aib-route-hero .aib-breadcrumb{margin-bottom:6px}
.aib-route-tags{gap:7px;margin-bottom:10px}
.aib-route-tags span{padding:6px 9px;font-size:.72rem}
.aib-route-hero h1{
    max-width:920px;
    margin:5px 0 9px;
    font-size:clamp(2.05rem,3.85vw,3.65rem);
    line-height:.98;
    letter-spacing:-.048em;
}
.aib-route-lead{
    max-width:820px;
    margin:0 0 9px;
    font-size:clamp(.96rem,1.45vw,1.08rem);
    line-height:1.43;
}
.aib-route-status{margin:2px 0;padding:6px 9px;font-size:.72rem}
.aib-route-stats-hero{gap:10px;margin:12px 0 2px}
.aib-route-stats-hero .aib-stat{gap:3px;padding:12px 15px;border-radius:14px}
.aib-route-stats-hero .aib-stat strong{font-size:1.28rem}
.aib-route-stats-hero .aib-stat span{font-size:.74rem}
.aib-route-actions-hero{gap:9px;margin:12px 0 0}
.aib-route-actions-hero .aib-button{padding:10px 15px;font-size:.9rem}
.aib-route-hero-map-wrap,
.aib-route-hero-image{
    width:100%;
    min-height:0!important;
    height:385px;
    border-radius:20px;
}
.aib-route-hero-map-label{left:12px!important;bottom:12px!important;padding:6px 9px!important;font-size:.56rem!important}
@media(max-width:1100px){
    .aib-route-hero{grid-template-columns:minmax(0,1.45fr) minmax(235px,.55fr);padding:20px 22px}
    .aib-route-hero-map-wrap,.aib-route-hero-image{height:350px}
    .aib-route-hero h1{font-size:clamp(2rem,4.7vw,3.35rem)}
}
@media(max-width:900px){
    .aib-route-hero{grid-template-columns:1fr;gap:16px;padding:20px}
    .aib-route-hero-map-wrap,.aib-route-hero-image{height:300px}
    .aib-route-stats-hero{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:700px){
    .aib-route-stats-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
    .aib-route-hero{padding:18px 16px;border-radius:20px}
    .aib-route-hero h1{font-size:2.25rem}
    .aib-route-hero-map-wrap{display:none!important}
}

/* =========================================================
   AI Bike Up 4.8.0 — STRUTTURA DEFINITIVA DEL PORTALE
   Home approvata invariata; 5 percorsi per riga su desktop.
   Regioni e Province crescono automaticamente con i contenuti.
   ========================================================= */

/* Gerarchia generale più compatta e coerente tra le pagine */
.aib-catalog-shell,
.aib-region-shell,
.aib-province-shell,
.aib-route-page{width:min(100% - 34px,1440px);max-width:1440px!important;margin-left:auto!important;margin-right:auto!important}
.aib-catalog-shell{padding-top:20px!important}
.aib-catalog-hero{gap:22px;padding:22px 0 18px}
.aib-catalog-hero h1{font-size:clamp(2.45rem,4.3vw,4.65rem)}
.aib-catalog-filter{margin:14px 0 24px;padding:14px 16px}
.aib-catalog-results{margin-top:12px}

/* Cinque percorsi per riga, anche nelle pagine Provincia. */
.aib-province-grid,
.aib-region-grid,
.aib-catalog-shell .aib-grid,
.aib-route-related .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important;align-items:stretch}

/* Card Provincia identiche per densità alle altre griglie del portale. */
.aib-province-grid .aib-province-card{display:flex;flex-direction:column;min-width:0;border-radius:14px}
.aib-province-grid .aib-province-card-map-link,
.aib-province-grid .aib-province-card-photo{height:132px!important}
.aib-province-grid .aib-province-card-body{display:flex;flex:1;flex-direction:column;padding:13px}
.aib-province-grid .aib-province-card h2{min-height:2.45em;margin:.05em 0 .62em;font-size:.98rem;line-height:1.16}
.aib-province-grid .aib-province-card-stats{gap:5px}
.aib-province-grid .aib-province-card-stats span{min-height:42px;padding:6px 7px}
.aib-province-grid .aib-province-card-stats strong{font-size:.75rem}
.aib-province-grid .aib-province-card-stats small{font-size:.54rem}
.aib-province-grid .aib-province-card-body>p{display:none}
.aib-province-grid .aib-province-card-footer{min-height:26px;margin:6px 0 0}
.aib-province-grid .aib-province-water,
.aib-province-grid .aib-province-surface{padding:5px 7px;font-size:.58rem}
.aib-province-grid .aib-province-card-cta{margin-top:auto;padding:7px 10px;font-size:.66rem}

/* Provincia: copertina meno alta, più simile a Esplora/Regione. */
.aib-province-shell{margin-top:20px!important;margin-bottom:64px!important}
.aib-province-hero{padding:25px 30px;border-radius:22px}
.aib-province-hero .aib-breadcrumb{margin-bottom:8px}
.aib-province-eyebrow{font-size:.64rem;letter-spacing:.13em;font-weight:950}
.aib-province-hero h1{max-width:980px;margin:7px 0 10px;font-size:clamp(2.3rem,4.15vw,4.1rem);line-height:.96}
.aib-province-hero p{max-width:900px;margin:0;font-size:.96rem}
.aib-province-hero-meta{margin-top:14px;gap:7px}
.aib-province-hero-meta span{padding:6px 9px;font-size:.65rem}
.aib-province-bike-filter{margin:14px 0 24px}
.aib-province-results-head{margin-bottom:12px}

/* Regione: copertina più compatta, senza perdere l'atlante. */
.aib-region-shell{padding-top:18px!important}
.aib-region-hero{grid-template-columns:minmax(330px,.72fr) minmax(560px,1.28fr);gap:28px;padding:10px 0 18px}
.aib-region-copy h1{font-size:clamp(3.45rem,6vw,6.15rem)}
.aib-region-copy h2{margin-top:12px;font-size:clamp(1.28rem,1.8vw,1.9rem)}
.aib-region-copy p{margin-top:12px;font-size:.96rem}
.aib-region-actions{margin-top:17px}
.aib-region-visual .aib-atlas-map-region{height:390px}
.aib-region-filter{margin:6px 0 18px;padding:12px}
.aib-region-priorities{margin:-5px 0 16px}

/* Province della Regione: scorciatoie automatiche con contatore. */
.aib-region-province-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 24px;padding:10px 12px;border:1px solid #e8dfd6;border-radius:14px;background:#fff}
.aib-region-province-links>span{margin-right:2px;color:#9b4511;font-size:.62rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase}
.aib-region-province-links a{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #e8dfd6;border-radius:999px;background:#fffaf5;color:#5c554e!important;text-decoration:none!important;font-size:.65rem;font-weight:800}
.aib-region-province-links a small{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f1e9e1;color:#8f4213;font-size:.56rem}
.aib-region-province-links a:hover,
.aib-region-province-links a.is-active{border-color:#ef641f;background:#ef641f;color:#fff!important}
.aib-region-province-links a:hover small,
.aib-region-province-links a.is-active small{background:rgba(255,255,255,.2);color:#fff}

/* Home Regioni: dinamica. Le Regioni senza fotografia usano comunque una card elegante. */
.aib-home-v42 .aib-region-gallery-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.aib-region-tile.is-no-image{background:radial-gradient(circle at 75% 20%,rgba(239,100,31,.20),transparent 34%),linear-gradient(145deg,#3b332c,#8a674a)}
.aib-region-tile.is-no-image:before{content:"AI BIKE UP";position:absolute;right:12px;top:12px;color:rgba(255,255,255,.42);font-size:.54rem;font-weight:950;letter-spacing:.15em}

/* Footer definitivo: navigazione del portale + legale, senza elementi tecnici in Home. */
.aib-public-footer-v41 .aib-public-footer-grid{grid-template-columns:minmax(210px,1fr) auto auto auto;gap:20px;align-items:center}
.aib-footer-nav{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.aib-footer-nav a{color:#49423d!important;text-decoration:none!important;font-size:.68rem;font-weight:800}
.aib-footer-nav a:hover{color:#a04410!important}
.aib-footer-legal{gap:10px}

/* Miglioramento dell'uso da tastiera, senza alterare la grafica. */
.aib-public-nav a:focus-visible,
.aib-region-province-links a:focus-visible,
.aib-card a:focus-visible,
.aib-province-card a:focus-visible,
.aib-region-tile:focus-visible{outline:3px solid rgba(239,100,31,.32);outline-offset:3px}

/* Tablet: 3 card; telefono medio: 2; telefono stretto: 1. */
@media(max-width:1180px){
  .aib-province-grid,.aib-region-grid,.aib-catalog-shell .aib-grid,.aib-route-related .aib-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .aib-home-v42 .aib-region-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .aib-region-hero{grid-template-columns:1fr;gap:20px}
  .aib-region-visual .aib-atlas-map-region{height:380px}
  .aib-public-footer-v41 .aib-public-footer-grid{grid-template-columns:1fr auto;align-items:start}
  .aib-footer-nav,.aib-footer-legal{justify-content:flex-start}
}
@media(max-width:760px){
  .aib-catalog-shell,.aib-region-shell,.aib-province-shell,.aib-route-page{width:min(100% - 24px,1440px)}
  .aib-province-grid,.aib-region-grid,.aib-catalog-shell .aib-grid,.aib-route-related .aib-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .aib-home-v42 .aib-region-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aib-province-hero{padding:22px 20px}
  .aib-region-copy h1{font-size:3.45rem}
  .aib-region-visual .aib-atlas-map-region{height:330px}
  .aib-public-footer-v41 .aib-public-footer-grid{grid-template-columns:1fr}
}
@media(max-width:540px){
  .aib-province-grid,.aib-region-grid,.aib-catalog-shell .aib-grid,.aib-route-related .aib-grid,.aib-home-v42 .aib-region-gallery-grid{grid-template-columns:1fr!important}
  .aib-province-grid .aib-province-card-map-link,.aib-province-grid .aib-province-card-photo{height:205px!important}
  .aib-region-visual .aib-atlas-map-region{height:290px}
  .aib-footer-nav{gap:8px}
}

/* =========================================================
   AI Bike Up 4.9.2 — MAPPA ITALIA 3D INTERATTIVA · RILEVAMENTO GEOMETRICO
   L'immagine 3D resta invariata: l'interazione vive in overlay.
   ========================================================= */
.aib-atlas-interactive{isolation:isolate}
.aib-atlas-interactive>img{position:relative;z-index:1}
.aib-italy-region-overlay{position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none}
/* Area sensibile più generosa, ma totalmente invisibile. */
.aib-italy-region-hit{fill:rgba(0,0,0,0);stroke:rgba(0,0,0,0);stroke-width:0;vector-effect:non-scaling-stroke;pointer-events:none;outline:none}
/* Evidenziazione grafica separata dalla hitbox: non altera la precisione al passaggio. */
.aib-italy-region-shape{fill:rgba(229,112,44,0);stroke:rgba(229,112,44,0);stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:none;transition:fill .16s ease,stroke .16s ease,filter .16s ease}
.aib-italy-region-shape.is-active{fill:rgba(232,126,55,.30);stroke:rgba(203,92,26,.95);filter:drop-shadow(0 0 7px rgba(232,126,55,.55));outline:none}
.aib-italy-region-hit:focus + .aib-italy-region-shape{fill:rgba(232,126,55,.30);stroke:rgba(203,92,26,.95);filter:drop-shadow(0 0 7px rgba(232,126,55,.55))}
.aib-atlas-region-tooltip{position:absolute;z-index:9;display:none;transform:translate(12px,12px);padding:7px 10px;border:1px solid rgba(214,111,43,.25);border-radius:10px;background:rgba(255,253,249,.96);box-shadow:0 7px 18px rgba(35,28,22,.13);color:#7d3f1c;font-size:.72rem;font-weight:900;pointer-events:none;white-space:nowrap}
.aib-atlas-region-tooltip.is-visible{display:block}
.aib-atlas-region-picker{position:absolute;z-index:10;top:14px;left:14px}
.aib-atlas-region-picker-button{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border:1px solid rgba(218,111,43,.28);border-radius:999px;background:rgba(255,253,249,.96);box-shadow:0 8px 22px rgba(35,28,22,.12);color:#7e401d;font:inherit;font-size:.72rem;font-weight:900;cursor:pointer;backdrop-filter:blur(8px)}
.aib-atlas-region-picker-button span{font-size:1rem;line-height:.7;transition:transform .18s ease}
.aib-atlas-region-picker.is-open .aib-atlas-region-picker-button span{transform:rotate(180deg)}
.aib-atlas-region-picker-menu{position:absolute;top:46px;left:0;display:none;grid-template-columns:repeat(2,minmax(145px,1fr));gap:5px;width:350px;max-height:310px;padding:8px;overflow:auto;border:1px solid #eadfd5;border-radius:16px;background:rgba(255,253,249,.985);box-shadow:0 18px 42px rgba(35,28,22,.18);backdrop-filter:blur(10px)}
.aib-atlas-region-picker.is-open .aib-atlas-region-picker-menu{display:grid}
.aib-atlas-region-picker-menu a{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border-radius:10px;color:#222;text-decoration:none!important;transition:background .15s ease,color .15s ease}
.aib-atlas-region-picker-menu a strong{font-size:.69rem;line-height:1.15}
.aib-atlas-region-picker-menu a small{color:#888;font-size:.57rem;line-height:1.1}
.aib-atlas-region-picker-menu a:hover,.aib-atlas-region-picker-menu a:focus,.aib-atlas-region-picker-menu a.is-active{background:#fff0e5;color:#a54c18;outline:none}
.aib-region-tile{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.aib-region-tile.is-map-active{transform:translateY(-3px);border-color:rgba(224,101,39,.65);box-shadow:0 13px 30px rgba(224,101,39,.16)}
.aib-region-tile[data-aib-region-card="lombardia"] img{object-position:center center;filter:saturate(.92) contrast(1.02)}
@media(max-width:760px){
  .aib-atlas-region-picker{top:10px;left:10px}
  .aib-atlas-region-picker-button{min-height:34px;padding:7px 10px;font-size:.65rem}
  .aib-atlas-region-picker-menu{top:41px;grid-template-columns:1fr;width:min(270px,78vw);max-height:255px}
  .aib-atlas-region-tooltip{display:none!important}
  .aib-italy-region-hit{stroke-width:18}.aib-italy-region-shape{stroke-width:2.6}
}

/* 4.9.2: il puntatore viene risolto sull'intero atlante, non sui singoli poligoni sovrapposti. */
.aib-atlas-interactive.is-region-hover{cursor:pointer}
.aib-atlas-interactive .aib-italy-region-overlay{pointer-events:none!important}
.aib-atlas-interactive .aib-italy-region-hit{pointer-events:none!important}


/* =========================================================
   AI Bike Up 4.9.3 — FASE 1 STABILE MAPPA ITALIA
   La mappa 3D resta invariata e non usa overlay regionali.
   Navigazione tramite Scegli Regione + card Regione.
   ========================================================= */
.aib-atlas-phase1{position:relative;isolation:isolate}
.aib-atlas-phase1>img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center}
.aib-atlas-phase1 .aib-atlas-region-picker{z-index:10}
.aib-atlas-phase1 .aib-atlas-static-badge{z-index:3}
.aib-italy-region-overlay,.aib-atlas-region-tooltip{display:none!important}
.aib-atlas-phase1{cursor:default!important}
.aib-region-tile.is-map-active{transform:none!important;border-color:inherit!important;box-shadow:inherit!important}

/* =========================================================
   AI Bike Up 5.0.0 — PORTALE COMPLETO 20 REGIONI
   Struttura pronta prima del popolamento Regione per Regione.
   ========================================================= */
.aib-regions-directory{padding-top:24px;padding-bottom:72px}
.aib-regions-directory-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:end;padding:34px 38px;border:1px solid #eadfd6;border-radius:26px;background:radial-gradient(circle at 78% 20%,rgba(239,100,31,.16),transparent 30%),linear-gradient(145deg,#fffdf9,#f8f0e8)}
.aib-regions-directory-hero h1{margin:8px 0 12px;font-size:clamp(3.2rem,6vw,6.4rem);line-height:.91;letter-spacing:-.055em;color:#24201d}
.aib-regions-directory-hero h1 em{color:#d85b18;font-style:normal}
.aib-regions-directory-hero p{max-width:900px;margin:0;color:#665f59;font-size:1rem;line-height:1.65}
.aib-regions-directory-summary{display:flex;flex-direction:column;align-items:flex-start;padding:20px 22px;border:1px solid rgba(218,111,43,.24);border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(57,42,31,.08)}
.aib-regions-directory-summary strong{font-size:3.1rem;line-height:.9;color:#df641e}
.aib-regions-directory-summary span{margin-top:7px;font-size:.84rem;font-weight:900;color:#292522}
.aib-regions-directory-summary small{margin-top:5px;color:#80766d;font-size:.65rem}
.aib-regions-directory-priorities{margin:16px 0 22px}
.aib-regions-directory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.aib-region-directory-card{position:relative;display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid #e9dfd5;border-radius:18px;background:#fff;color:#26211e!important;text-decoration:none!important;box-shadow:0 7px 18px rgba(55,40,30,.06);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.aib-region-directory-card:hover{transform:translateY(-3px);border-color:rgba(224,98,30,.45);box-shadow:0 15px 30px rgba(55,40,30,.11)}
.aib-region-directory-image,.aib-region-directory-fallback{display:block;height:142px;overflow:hidden;background:#4b4037}
.aib-region-directory-image img{width:100%;height:100%;object-fit:cover;display:block}
.aib-region-directory-fallback{position:relative;padding:18px;background:radial-gradient(circle at 80% 18%,rgba(237,105,31,.38),transparent 34%),linear-gradient(145deg,#3a312b,#7c5c45)}
.aib-region-directory-fallback:after{content:"";position:absolute;right:-22px;bottom:-35px;width:130px;height:130px;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.aib-region-directory-fallback b{display:block;color:rgba(255,255,255,.72);font-size:.55rem;letter-spacing:.16em}
.aib-region-directory-fallback em{position:absolute;left:18px;right:18px;bottom:16px;color:#fff;font-size:.84rem;font-weight:850;font-style:normal}
.aib-region-directory-copy{display:flex;flex:1;flex-direction:column;padding:14px 15px 15px}
.aib-region-directory-copy>strong{font-size:1rem;line-height:1.08;color:#2c2622}
.aib-region-directory-copy>small{min-height:42px;margin-top:6px;color:#716861;font-size:.67rem;line-height:1.38}
.aib-region-directory-copy>span{margin-top:10px;color:#8b8178;font-size:.61rem}
.aib-region-directory-copy>span b{color:#b64d13}
.aib-region-directory-copy>em{margin-top:auto;padding-top:11px;color:#bd5317;font-size:.66rem;font-weight:900;font-style:normal}

/* Copertina editoriale per le Regioni dove la cartina/foto non è ancora stata inserita. */
.aib-region-cover-fallback{position:relative;display:flex;height:100%;min-height:340px;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:30px;border-radius:24px;background:radial-gradient(circle at 76% 21%,rgba(239,100,31,.30),transparent 31%),linear-gradient(145deg,#3b322c,#806047);box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)}
.aib-region-cover-fallback:before,.aib-region-cover-fallback:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.aib-region-cover-fallback:before{width:260px;height:260px;right:-80px;top:-95px}
.aib-region-cover-fallback:after{width:170px;height:170px;right:50px;top:10px}
.aib-region-cover-kicker{position:relative;z-index:1;margin-bottom:auto;color:rgba(255,255,255,.68);font-size:.62rem;font-weight:950;letter-spacing:.14em}
.aib-region-cover-fallback strong{position:relative;z-index:1;color:#fff;font-size:clamp(2.5rem,4vw,4.8rem);line-height:.92;letter-spacing:-.045em}
.aib-region-cover-fallback em{position:relative;z-index:1;margin-top:9px;color:#f5c19e;font-size:1rem;font-weight:800;font-style:normal}
.aib-region-cover-fallback small{position:relative;z-index:1;margin-top:12px;color:rgba(255,255,255,.72);font-size:.68rem}
.aib-region-province-links a.is-empty{opacity:.62;background:#faf7f4}
.aib-region-province-links a.is-empty small{background:#eee7e1;color:#91867d}
.aib-region-empty{padding:34px!important;border-style:dashed!important;background:#fffaf5!important}

@media(max-width:1180px){
  .aib-regions-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .aib-regions-directory{width:min(100% - 24px,1440px)}
  .aib-regions-directory-hero{grid-template-columns:1fr;padding:26px 22px}
  .aib-regions-directory-summary{width:100%}
  .aib-regions-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aib-region-cover-fallback{min-height:290px}
}
@media(max-width:540px){
  .aib-regions-directory-grid{grid-template-columns:1fr}
  .aib-region-directory-image,.aib-region-directory-fallback{height:175px}
}

/* AI Bike Up 5.1 — menu Regioni completo e pagine catalogo uniformate */
.aib-nav-region-wrap{position:relative;display:flex;align-items:center}
.aib-nav-region-trigger{display:flex!important;align-items:center;gap:5px}
.aib-nav-region-trigger span{font-size:.9rem;line-height:1;transition:transform .16s ease}
.aib-nav-region-menu{position:absolute;z-index:1200;top:calc(100% + 7px);right:-190px;display:none;grid-template-columns:repeat(4,minmax(125px,1fr));gap:5px;width:590px;padding:10px;border:1px solid #eadfd6;border-radius:18px;background:rgba(255,253,249,.99);box-shadow:0 18px 45px rgba(35,28,22,.18);backdrop-filter:blur(12px)}
.aib-nav-region-wrap:hover .aib-nav-region-menu,.aib-nav-region-wrap:focus-within .aib-nav-region-menu,.aib-nav-region-wrap.is-open .aib-nav-region-menu{display:grid}
.aib-nav-region-wrap:hover .aib-nav-region-trigger span,.aib-nav-region-wrap.is-open .aib-nav-region-trigger span{transform:rotate(180deg)}
.aib-nav-region-menu a{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 9px!important;border-radius:10px!important;background:transparent!important;text-align:left}
.aib-nav-region-menu a strong{font-size:.69rem;line-height:1.12;color:#2a2521}
.aib-nav-region-menu a small{font-size:.56rem;line-height:1.1;color:#8c8178}
.aib-nav-region-menu a:hover,.aib-nav-region-menu a:focus{background:#fff0e5!important;color:#a54c18!important}
.aib-nav-region-menu a:hover strong,.aib-nav-region-menu a:focus strong{color:#a54c18}
.aib-nav-region-all{grid-column:1/-1!important;display:block!important;margin-top:3px;padding:9px 10px!important;border-top:1px solid #eee3d8;border-radius:8px!important;color:#b84d13!important;font-weight:900!important}

/* Le copertine regionali devono essere sempre visive: niente riquadri marroni vuoti. */
.aib-region-directory-image{position:relative;background:#eee7df}
.aib-region-directory-image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(20,18,16,.02),rgba(20,18,16,.10))}
.aib-region-directory-image img{transform:scale(1.015);transition:transform .3s ease}
.aib-region-directory-card:hover .aib-region-directory-image img{transform:scale(1.055)}
.aib-region-directory-fallback{background-image:url('atlas/italia-3d.png');background-size:cover;background-position:center}
.aib-region-directory-fallback:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(43,34,28,.68),rgba(122,78,47,.28))}
.aib-region-directory-fallback b,.aib-region-directory-fallback em{z-index:1}

/* Cataloghi Strada / Gravel / MTB-E-bike: stessa larghezza e linguaggio visuale del portale. */
.aib-catalog-standalone{margin:0;background:#fbf8f3}
.aib-catalog-standalone .aib-site-shell{width:min(100% - 48px,1440px);margin-left:auto;margin-right:auto}
.aib-catalog-hero{margin-top:24px}

@media(max-width:900px){
  .aib-nav-region-menu{right:-120px;grid-template-columns:repeat(3,minmax(120px,1fr));width:470px}
}
@media(max-width:760px){
  .aib-public-header-v41,.aib-public-header-v41 .aib-public-header-inner,.aib-public-nav-v41{overflow:visible!important}
  .aib-public-nav-v41{flex-wrap:wrap!important;max-width:none!important}
  .aib-nav-region-menu{position:absolute;left:0;right:auto;top:calc(100% + 6px);grid-template-columns:repeat(2,minmax(120px,1fr));width:min(88vw,390px);max-height:62vh;overflow:auto}
}

/* AI Bike Up 5.1.1 — dropdown Regioni affidabile + immagini regionali sempre visibili */
.aib-public-header-v41,
.aib-public-header-v41 .aib-public-header-inner,
.aib-public-nav-v41,
.aib-nav-region-wrap{overflow:visible!important}
.aib-nav-region-wrap{z-index:1500}
.aib-nav-region-menu{z-index:9999!important}
.aib-nav-region-wrap.is-open .aib-nav-region-menu{display:grid!important}
.aib-nav-region-menu{pointer-events:auto}
.aib-region-directory-image{display:block!important;overflow:hidden!important;background:#e8e0d7!important}
.aib-region-directory-image img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;filter:none!important;opacity:1!important}
.aib-region-directory-card{overflow:hidden}


/* =========================================================
   AI Bike Up 5.1.2 — FOTO REGIONALI REALI
   Le pagine Regione e le card usano fotografie dedicate.
   Nessun ritaglio della cartina 3D viene usato come foto.
   ========================================================= */
.aib-region-photo{position:relative;overflow:hidden;border:1px solid #e8dfd5;border-radius:28px;background:linear-gradient(145deg,#45382f,#7a5b45);box-shadow:0 22px 60px rgba(46,36,27,.11)}
.aib-region-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:#f8f4ed;filter:none!important;opacity:1!important;transform:none!important}
.aib-region-photo:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(20,15,12,.22),transparent 44%)}
.aib-region-photo .aib-atlas-static-badge{z-index:3}
.aib-region-photo-credit{position:absolute;z-index:4;right:14px;bottom:12px;max-width:62%;padding:5px 8px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(28,22,18,.58);color:#fff!important;text-decoration:none!important;font-size:.54rem;font-weight:750;line-height:1.1;backdrop-filter:blur(7px)}
.aib-region-photo-credit:hover{background:rgba(28,22,18,.78)}
.aib-region-photo-fallback{display:none;position:absolute;z-index:2;inset:0;flex-direction:column;justify-content:flex-end;padding:30px;background:radial-gradient(circle at 76% 21%,rgba(239,100,31,.30),transparent 31%),linear-gradient(145deg,#3b322c,#806047);color:#fff}
.aib-region-photo-fallback strong{font-size:clamp(2.5rem,4vw,4.8rem);line-height:.92;letter-spacing:-.045em}
.aib-region-photo-fallback em{margin-top:9px;color:#f5c19e;font-size:1rem;font-weight:800;font-style:normal}
.aib-region-photo-fallback small{margin-top:12px;color:rgba(255,255,255,.72);font-size:.68rem}
.aib-region-photo.is-fallback .aib-region-photo-fallback{display:flex}
.aib-region-photo.is-fallback .aib-region-photo-credit{display:none}

.aib-region-directory-image{position:relative;background:linear-gradient(145deg,#3b322c,#806047)!important}
.aib-region-directory-photo-fallback{display:none;position:absolute;z-index:1;inset:0;padding:16px;background:radial-gradient(circle at 80% 18%,rgba(237,105,31,.38),transparent 34%),linear-gradient(145deg,#3a312b,#7c5c45)}
.aib-region-directory-photo-fallback b{display:block;color:rgba(255,255,255,.72);font-size:.55rem;letter-spacing:.16em}
.aib-region-directory-photo-fallback em{position:absolute;left:16px;right:16px;bottom:14px;color:#fff;font-size:.8rem;font-weight:850;font-style:normal}
.aib-region-directory-image.is-fallback .aib-region-directory-photo-fallback{display:block}
.aib-region-directory-credit{position:absolute;z-index:3;right:7px;bottom:7px;padding:3px 6px;border-radius:999px;background:rgba(25,20,17,.58);color:#fff;font-size:.48rem;font-weight:800;line-height:1;opacity:.72}
.aib-region-directory-image.is-fallback .aib-region-directory-credit{display:none}
.aib-region-directory-image:after{z-index:2}

.aib-region-tile.is-no-image{background:radial-gradient(circle at 75% 18%,rgba(239,100,31,.28),transparent 32%),linear-gradient(145deg,#3a312b,#7c5c45)}
.aib-region-tile.is-no-image:before{content:"AI BIKE UP";position:absolute;z-index:1;top:14px;left:14px;color:rgba(255,255,255,.68);font-size:.55rem;font-weight:900;letter-spacing:.15em}
.aib-region-tile>img{filter:none!important}

@media(max-width:760px){
  .aib-region-photo-credit{right:10px;bottom:10px;max-width:72%;font-size:.5rem}
}

/* 5.2.0 - tavole 3D regionali */
.aib-region-directory-image{background:#f8f4ed!important}.aib-region-directory-image img{object-fit:contain!important;object-position:center!important}.aib-region-directory-image:after{background:linear-gradient(to bottom,rgba(20,18,16,0),rgba(20,18,16,.035))!important}.aib-region-tile{background:#f8f4ed!important}.aib-region-tile img{object-fit:contain!important;object-position:center!important;background:#f8f4ed}.aib-region-tile:after{background:linear-gradient(to top,rgba(16,14,12,.50),transparent 58%)}

/* =========================================================
   AI Bike Up 5.3.0 — NAVIGAZIONE E CATALOGHI DEFINITIVI
   Un solo linguaggio per Esplora, Strada, Gravel, MTB/E-bike.
   ========================================================= */
.aib-nav-toggle{display:none;align-items:center;gap:7px;padding:8px 11px;border:1px solid #e9dfd6;border-radius:12px;background:#fffaf5;color:#2c2723;font:inherit;font-size:.8rem;font-weight:850;cursor:pointer}
.aib-nav-toggle span{font-size:1rem;line-height:1}
.aib-catalog-bike-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.aib-catalog-bike-tabs a{padding:8px 12px;border:1px solid #e7ddd3;border-radius:999px;background:#fff;color:#3e3935;text-decoration:none;font-size:.72rem;font-weight:850;transition:.16s ease}
.aib-catalog-bike-tabs a:hover,.aib-catalog-bike-tabs a.is-active{border-color:#d66a2a;background:#fff0e5;color:#a84a15}
.aib-catalog-region-jump{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:start;margin:-8px 0 30px;padding:15px 16px;border:1px solid #eee4da;border-radius:16px;background:#fbf8f4}
.aib-catalog-region-jump-head{display:flex;flex-direction:column;gap:3px;padding:6px 3px}
.aib-catalog-region-jump-head strong{font-size:.86rem}
.aib-catalog-region-jump-head span{color:#80766e;font-size:.64rem;line-height:1.35}
.aib-catalog-region-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.aib-catalog-region-links a{display:flex;align-items:center;min-height:34px;padding:6px 8px;border:1px solid #eadfd5;border-radius:9px;background:#fff;color:#3f3934;text-decoration:none;font-size:.64rem;font-weight:800;line-height:1.12}
.aib-catalog-region-links a:hover,.aib-catalog-region-links a.is-active{border-color:#d66a2a;background:#fff0e5;color:#a84a15}
.aib-catalog-filter .aib-filter select{background-color:#fff}
.aib-catalog-results>.aib-section-head{padding-top:3px}
@media(max-width:1050px){
  .aib-catalog-region-jump{grid-template-columns:1fr}
  .aib-catalog-region-links{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:760px){
  .aib-nav-toggle{display:flex;margin-left:auto}
  .aib-public-header-v41 .aib-public-header-inner{display:grid!important;grid-template-columns:1fr auto;align-items:center!important}
  .aib-public-header-v41 .aib-brand{min-width:0}
  .aib-public-nav-v41{display:none!important;grid-column:1/-1;width:100%;max-width:none!important;padding:8px 0 3px;overflow:visible!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important}
  .aib-public-header-v41.is-menu-open .aib-public-nav-v41{display:flex!important}
  .aib-public-nav-v41>a,.aib-nav-region-wrap>.aib-nav-region-trigger{width:100%;justify-content:space-between!important;padding:10px 12px!important;border-radius:10px!important;background:#fffaf5!important}
  .aib-nav-region-wrap{width:100%;display:block!important}
  .aib-nav-region-menu{position:static!important;width:100%!important;max-height:48vh!important;margin-top:5px;grid-template-columns:repeat(2,minmax(0,1fr))!important;box-shadow:none!important;border-radius:12px!important}
  .aib-catalog-region-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .aib-catalog-region-links{grid-template-columns:1fr 1fr}
  .aib-catalog-region-links a{font-size:.67rem}
}

/* =========================================================
   AI Bike Up 5.4.0 — CATALOGHI E FILTRI DEFINITIVI
   Strada / Gravel / MTB-E-bike condividono la stessa UX.
   ========================================================= */
.aib-catalog-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 4px}
.aib-catalog-guide>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:11px 13px;border:1px solid #eee3da;border-radius:14px;background:#fff}
.aib-catalog-guide small{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff0e5;color:#a84a15;font-size:.7rem;font-weight:950}
.aib-catalog-guide strong{font-size:.76rem;line-height:1.15}.aib-catalog-guide span{margin-top:2px;color:#7a7169;font-size:.61rem;line-height:1.25}
.aib-catalog-filter .aib-filter-fast{grid-template-columns:repeat(4,minmax(0,1fr)) auto!important}
.aib-catalog-filter .aib-filter label span{white-space:nowrap}
.aib-empty-v54{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-height:150px;padding:24px;border:1px dashed #ddcfc2;border-radius:16px;background:#fbf8f4}
.aib-empty-v54 strong{font-size:1.1rem}.aib-empty-v54 span{max-width:620px;color:#756d66;font-size:.82rem;line-height:1.5}.aib-empty-v54 a{margin-top:5px;color:#a84a15;text-decoration:none;font-size:.78rem;font-weight:900}
.aib-catalog-results>.aib-section-head{margin-bottom:16px}
@media(max-width:1120px){.aib-catalog-filter .aib-filter-fast{grid-template-columns:repeat(2,minmax(0,1fr)) auto!important}}
@media(max-width:760px){.aib-catalog-guide{grid-template-columns:1fr}.aib-catalog-filter .aib-filter-fast{grid-template-columns:1fr!important}.aib-catalog-filter .aib-filter-fast .aib-button{width:100%}}

/* 5.5 — Lombardia: hub delle 12 province */
.aib-lombardia-province-hub{margin:26px 0 20px;padding:24px;border:1px solid #eadfd5;border-radius:24px;background:#fffdf9}
.aib-lombardia-province-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:18px}
.aib-lombardia-province-card{display:flex;min-height:160px;flex-direction:column;gap:10px;padding:14px;border:1px solid #eadfd5;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fcf8f2 100%);text-decoration:none;color:#161616;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;position:relative;overflow:hidden}
.aib-lombardia-province-card:before{content:"";position:absolute;inset:0;opacity:.95;background:radial-gradient(circle at top right,rgba(216,107,49,.12),transparent 36%)}
.aib-lombardia-province-card:after{content:"";position:absolute;right:-18px;top:-18px;width:74px;height:74px;border-radius:50%;border:1px solid rgba(214,176,148,.28)}
.aib-lombardia-province-card:hover,.aib-lombardia-province-card.is-active{transform:translateY(-3px);border-color:#d86b31;box-shadow:0 12px 28px rgba(55,38,24,.10)}
.aib-lombardia-province-visual,.aib-lombardia-province-title-wrap,.aib-lombardia-province-stats,.aib-lombardia-province-cta{position:relative;z-index:1}
.aib-lombardia-province-visual{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}
.aib-lombardia-province-badge{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.82);color:#69452c;box-shadow:0 4px 12px rgba(0,0,0,.05);backdrop-filter:blur(4px)}
.aib-lombardia-province-badge svg{width:18px;height:18px}
.aib-lombardia-province-micro{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.78);font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#76553e;white-space:nowrap}
.aib-lombardia-province-title-wrap{display:flex;flex-direction:column;gap:5px}
.aib-lombardia-province-card strong{font-size:17px;line-height:1.05}
.aib-lombardia-province-title-wrap>span{font-size:13px;color:#665d56;line-height:1.35;min-height:34px}
.aib-lombardia-province-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.aib-lombardia-province-stats small{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.aib-lombardia-province-stats .is-published{background:#f8efe4;color:#b45427}
.aib-lombardia-province-stats .is-draft{background:#f2f2f2;color:#5e5a56}
.aib-lombardia-province-cta{display:flex;align-items:center;justify-content:space-between;margin-top:2px;font-size:12px;font-weight:800;color:#1f1f1f}
.aib-lombardia-province-cta b{font-size:15px;color:#d86b31}
.aib-tone-laghi:before,.aib-tone-lago:before{background:radial-gradient(circle at top right,rgba(99,174,210,.22),transparent 38%),radial-gradient(circle at bottom left,rgba(216,107,49,.10),transparent 28%)}
.aib-tone-monti:before,.aib-tone-alpi:before{background:radial-gradient(circle at top right,rgba(128,160,115,.18),transparent 38%),radial-gradient(circle at bottom left,rgba(216,107,49,.10),transparent 28%)}
.aib-tone-pianura:before,.aib-tone-canali:before{background:radial-gradient(circle at top right,rgba(197,182,117,.18),transparent 38%),radial-gradient(circle at bottom left,rgba(120,163,176,.12),transparent 28%)}
.aib-tone-citta:before,.aib-tone-ville:before{background:radial-gradient(circle at top right,rgba(216,107,49,.16),transparent 40%),radial-gradient(circle at bottom left,rgba(124,102,177,.10),transparent 28%)}
.aib-tone-colline:before,.aib-tone-sole:before,.aib-tone-boschi:before,.aib-tone-default:before{background:radial-gradient(circle at top right,rgba(216,107,49,.16),transparent 40%),radial-gradient(circle at bottom left,rgba(117,164,111,.11),transparent 28%)}
.aib-lombardia-editor-note{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;margin-top:16px;border-radius:18px;background:#f3ede4;color:#4a4036}
.aib-lombardia-editor-note strong{font-size:17px;white-space:nowrap}
.aib-lombardia-editor-note span{flex:1;font-size:13px;color:#665d56}
.aib-lombardia-editor-note a{font-weight:800;color:#b45427;text-decoration:none;white-space:nowrap}
@media(max-width:1240px){.aib-lombardia-province-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1024px){.aib-lombardia-province-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.aib-lombardia-province-hub{padding:18px}.aib-lombardia-province-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aib-lombardia-editor-note{align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:470px){.aib-lombardia-province-grid{grid-template-columns:1fr}.aib-lombardia-province-card{min-height:150px}}


/* =========================================================
   AI Bike Up 6.2.1 — COLLAUDO 1–14 + ICONE PIÙ LEGGERE
   ========================================================= */
/* Icone delle Province: molto più piccole, tono elegante e riconoscibile. */
.aib-lombardia-province-badge{width:20px!important;height:20px!important;border-radius:7px!important;box-shadow:0 2px 7px rgba(32,28,24,.08)!important;border:1px solid rgba(70,60,50,.08)}
.aib-lombardia-province-badge svg{width:11px!important;height:11px!important;stroke-width:1.65}
.aib-tone-laghi .aib-lombardia-province-badge,.aib-tone-lago .aib-lombardia-province-badge{background:#edf6f8!important;color:#356f83!important;border-color:#d4e8ee!important}
.aib-tone-monti .aib-lombardia-province-badge,.aib-tone-alpi .aib-lombardia-province-badge{background:#eef3ec!important;color:#526c55!important;border-color:#dbe6d9!important}
.aib-tone-pianura .aib-lombardia-province-badge,.aib-tone-canali .aib-lombardia-province-badge{background:#f5f1e5!important;color:#7b6c36!important;border-color:#e8dfc5!important}
.aib-tone-citta .aib-lombardia-province-badge,.aib-tone-ville .aib-lombardia-province-badge{background:#f8eee8!important;color:#945b3f!important;border-color:#ecd8cc!important}
.aib-tone-colline .aib-lombardia-province-badge,.aib-tone-sole .aib-lombardia-province-badge,.aib-tone-boschi .aib-lombardia-province-badge,.aib-tone-default .aib-lombardia-province-badge{background:#eef3ed!important;color:#5c755e!important;border-color:#dce6dd!important}

/* Se una vecchia mappa/cache Leaflet mostra ancora i grandi cerchi numerati,
   li riduciamo a meno della metà e usiamo colori sobri. */
.aib-region-visual .marker-cluster{width:18px!important;height:18px!important;margin-left:-9px!important;margin-top:-9px!important;border-radius:50%!important;background:rgba(255,255,255,.92)!important;border:1px solid rgba(40,45,48,.18)!important;box-shadow:0 2px 7px rgba(30,30,30,.18)!important}
.aib-region-visual .marker-cluster div{width:14px!important;height:14px!important;margin:1px!important;border-radius:50%!important;background:#61798a!important}
.aib-region-visual .marker-cluster span{display:block!important;line-height:14px!important;font-size:7px!important;font-weight:850!important;color:#fff!important}
.aib-region-visual .marker-cluster-small div{background:#607b67!important}
.aib-region-visual .marker-cluster-medium div{background:#5f7489!important}
.aib-region-visual .marker-cluster-large div{background:#9b624c!important}

/* Vista dedicata al pacchetto 1–14. */
.aib-first14-preview-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border:1px solid #e6d9cc;border-radius:14px;background:#fbf7f2;color:#322b26}
.aib-first14-preview-head>span{padding:4px 7px;border-radius:999px;background:#efe6dc;color:#8a512f;font-size:9px;font-weight:900;letter-spacing:.08em}
.aib-first14-preview-head>strong{font-size:14px}.aib-first14-preview-head>small{color:#776d64;font-size:11px}
.aib-province-card.is-first14-card{position:relative}
.aib-first14-number{position:absolute;z-index:30;top:9px;right:9px;display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(255,255,255,.82);border-radius:9px;background:rgba(35,42,46,.88);box-shadow:0 3px 9px rgba(0,0,0,.16);color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em;backdrop-filter:blur(6px)}

/* =========================================================
   AI Bike Up 6.2.2 — ICONE PROVINCE 50% + ACCESSO PRIMI 14
   ========================================================= */
/* Richiesta collaudo: dimezzate rispetto ai 20px della 6.2.1. */
.aib-lombardia-province-visual{min-height:24px!important}
.aib-lombardia-province-badge{width:10px!important;height:10px!important;min-width:10px!important;border-radius:4px!important;box-shadow:0 1px 3px rgba(32,28,24,.08)!important}
.aib-lombardia-province-badge svg{width:6px!important;height:6px!important;stroke-width:1.55!important}
.aib-first14-top-link{margin:2px 0 14px!important;border:1px solid #e6d8ca!important;background:#f7f1e9!important}

/* v6.2.3 — preparazione live dei GPX nel collaudo locale dei primi 14 */
.aib-first14-live-build{display:flex;flex-direction:column;gap:5px;margin:16px 0;padding:12px 14px;border:1px solid #e5ddd4;border-radius:14px;background:#fffaf5;color:#5b4a3c;font-size:.86rem;line-height:1.4}.aib-first14-live-build strong{color:#1b1815;font-size:.92rem}.aib-first14-live-build.is-working{border-color:#e7c7a8;background:#fff8f0}.aib-first14-live-build.is-ok{border-color:#bed8ca;background:#f4fbf7}.aib-first14-live-build.is-error{border-color:#e3c1b9;background:#fff6f3}.aib-first14-live-list{margin:0 0 16px}.aib-route-hero-copy .aib-first14-live-build{max-width:720px}


/* =========================================================
   AI Bike Up 6.3.0 RC — STRUTTURA DEFINITIVA / PRIMI 14
   ========================================================= */
/* Dimensione finale delle icone Province: circa metà della versione mostrata nel collaudo. */
.aib-lombardia-province-visual{min-height:20px!important}
.aib-lombardia-province-badge{
  width:9px!important;height:9px!important;min-width:9px!important;
  border-radius:3px!important;box-shadow:none!important;
}
.aib-lombardia-province-badge svg{width:5px!important;height:5px!important;stroke-width:1.45!important}
.aib-lombardia-province-micro{padding:4px 8px!important;font-size:9px!important;letter-spacing:.065em!important}

/* I percorsi del collaudo mostrano chiaramente uno stato di costruzione se manca il GPX. */
.aib-province-card[data-aib-first14-pending="1"]{outline:1px dashed #d9bea6;outline-offset:-1px}
.aib-province-card[data-aib-first14-pending="1"] .aib-province-card-cta{color:#8a6a51}
.aib-province-card[data-aib-first14-pending="1"] .aib-province-card-cta:before{content:"GPX in preparazione · ";font-weight:700;color:#9b795e}

/* AI Bike Up 6.3.2 – Layout compatto pagina percorso */
.aib-route-page{width:min(100% - 26px,1320px)!important;max-width:1320px!important;padding:12px 0 38px!important}
.aib-route-hero{margin:8px 0 14px!important;padding:16px 18px!important;gap:16px!important;border-radius:22px!important}
.aib-route-hero .aib-breadcrumb{margin-bottom:4px!important}
.aib-route-tags{gap:6px!important;margin-bottom:10px!important}.aib-route-tags span{padding:6px 9px!important;font-size:.74rem!important}
.aib-route-hero h1{max-width:880px!important;margin:4px 0 8px!important;font-size:clamp(1.95rem,4.1vw,3.1rem)!important;line-height:1.02!important}
.aib-route-hero-copy>p{margin:0 0 8px!important;font-size:1rem!important;line-height:1.5!important;max-width:820px!important}
.aib-route-quality{margin:0 0 8px!important}
.aib-route-quality .aib-quality-chip,.aib-route-quality .aib-quality-pill,.aib-route-quality .aib-status{padding:5px 10px!important;font-size:.78rem!important}
.aib-route-stats-hero{gap:8px!important;margin:10px 0 12px!important}.aib-route-stats-hero .aib-stat{padding:12px 13px!important;border-radius:14px!important}.aib-route-stats-hero .aib-stat strong{font-size:1.1rem!important}.aib-route-stats-hero .aib-stat span{font-size:.72rem!important}
.aib-route-actions-hero{gap:8px!important;margin-top:10px!important}.aib-route-actions-hero .aib-button{padding:10px 14px!important;font-size:.9rem!important}
.aib-route-hero-map-wrap,.aib-route-hero-image{height:240px!important;border-radius:18px!important}.aib-route-hero-map-label{left:10px!important;bottom:10px!important;padding:5px 8px!important;font-size:.54rem!important}
.aib-route-map-section{margin:18px 0 22px!important}.aib-route-map-section .aib-gpx-map{height:min(46vh,440px)!important;min-height:320px!important;border-radius:16px!important}
.aib-route-facts,.aib-route-story,.aib-route-practical{margin:20px 0!important}
.aib-route-section-title{margin-bottom:10px!important}.aib-route-section-title h2{font-size:clamp(1.7rem,2.6vw,2.25rem)!important;line-height:1.05!important}.aib-route-section-title p{font-size:.92rem!important;line-height:1.45!important}
.aib-facts-grid{gap:10px!important}.aib-fact{gap:10px!important;padding:13px 14px!important;border-radius:16px!important}.aib-fact-icon{width:34px!important;height:34px!important;flex-basis:34px!important}.aib-fact strong{font-size:.92rem!important;line-height:1.28!important}.aib-fact small{font-size:.72rem!important}
.aib-route-story{padding:18px 20px!important;border-radius:18px!important}.aib-route-prose{max-width:920px!important;font-size:.98rem!important;line-height:1.58!important}
.aib-practical-grid{gap:10px!important}.aib-practical-grid article{padding:16px!important;border-radius:16px!important}.aib-practical-grid article>span{width:34px!important;height:34px!important}.aib-practical-grid h3{margin:10px 0 5px!important;font-size:1rem!important}.aib-practical-grid p{font-size:.9rem!important;line-height:1.45!important}
.aib-route-page .aib-source-minimal{margin-top:10px!important;padding-top:6px!important}.aib-route-page .aib-source-minimal summary{padding:5px 0!important;font-size:.64rem!important}.aib-route-page .aib-source-minimal .aib-source-content{font-size:.68rem!important}
.aib-route-related{margin:22px 0 4px!important;padding-top:18px!important}.aib-route-related .aib-grid{gap:10px!important}.aib-route-related .aib-card-image{height:118px!important}.aib-route-related .aib-card-body{padding:11px!important}.aib-route-related .aib-card h3{min-height:2.25em!important;font-size:.88rem!important;margin:.05em 0 .45em!important}.aib-route-related .aib-card-meta{gap:5px!important;margin-bottom:6px!important}.aib-route-related .aib-card-meta span{min-height:38px!important;padding:5px 6px!important}.aib-route-related .aib-card-link{font-size:.82rem!important}
.aib-water-panel{margin:16px 0!important;padding:16px 18px!important;border-radius:16px!important}.aib-water-list{gap:7px!important;margin:12px 0 6px!important}.aib-water-list li{padding:8px 10px!important}.aib-water-note{font-size:.74rem!important}
@media(max-width:1100px){.aib-route-hero{grid-template-columns:minmax(0,1.35fr) minmax(220px,.55fr)!important}.aib-route-related .aib-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:900px){.aib-route-page{width:min(100% - 20px,1320px)!important}.aib-route-hero{grid-template-columns:1fr!important}.aib-route-hero-map-wrap,.aib-route-hero-image{height:220px!important}.aib-facts-grid,.aib-practical-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-route-related .aib-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.aib-route-page{width:min(100% - 14px,1320px)!important;padding-bottom:28px!important}.aib-route-hero{padding:14px!important;border-radius:18px!important}.aib-route-hero h1{font-size:2rem!important}.aib-route-hero-copy>p{font-size:.94rem!important}.aib-route-stats-hero{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-route-stats-hero .aib-stat{padding:11px!important}.aib-facts-grid,.aib-practical-grid,.aib-route-related .aib-grid{grid-template-columns:1fr!important}.aib-route-story{padding:16px!important}.aib-route-map-section .aib-gpx-map{height:340px!important;min-height:340px!important}.aib-route-hero-map-wrap{display:none!important}}

/* =========================================================
   AI Bike Up 6.5.0 — SCHEDA PERCORSO ULTRA-COMPATTA + 14 MINI CARD
   Obiettivo: tutte le caratteristiche essenziali nella prima schermata.
   ========================================================= */
.aib-route-page{width:min(100% - 20px,1280px)!important;max-width:1280px!important;padding:8px 0 26px!important}
.aib-route-hero{grid-template-columns:minmax(0,1.5fr) minmax(285px,.5fr)!important;gap:14px!important;margin:6px 0 10px!important;padding:12px 14px!important;border-radius:18px!important;align-items:stretch!important}
.aib-route-hero .aib-breadcrumb{margin-bottom:2px!important;font-size:.7rem!important}
.aib-route-tags{gap:4px!important;margin:0 0 5px!important}.aib-route-tags span{padding:4px 7px!important;font-size:.62rem!important}
.aib-route-hero h1{max-width:900px!important;margin:2px 0 5px!important;font-size:clamp(1.55rem,2.65vw,2.25rem)!important;line-height:1.01!important;letter-spacing:-.035em!important}
.aib-route-lead{max-width:840px!important;margin:0 0 5px!important;font-size:.84rem!important;line-height:1.32!important}
.aib-route-status{display:inline-flex!important;align-self:flex-start!important;margin:1px 0 4px!important;padding:4px 7px!important;font-size:.62rem!important}
.aib-route-stats-hero{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin:5px 0!important}.aib-route-stats-hero .aib-stat{gap:1px!important;padding:8px 9px!important;border-radius:10px!important}.aib-route-stats-hero .aib-stat strong{font-size:.94rem!important;line-height:1.05!important}.aib-route-stats-hero .aib-stat span{font-size:.58rem!important}
.aib-route-actions-hero{gap:5px!important;margin:5px 0 0!important}.aib-route-actions-hero .aib-button{padding:7px 10px!important;font-size:.72rem!important}
.aib-route-quickfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:6px}.aib-route-quickfacts>span{display:flex;min-width:0;align-items:baseline;gap:5px;padding:5px 7px;border:1px solid #e8e0d7;border-radius:9px;background:rgba(255,255,255,.72)}.aib-route-quickfacts small{flex:0 0 auto;color:#7b6c60;font-size:.53rem;font-weight:750;text-transform:uppercase;letter-spacing:.03em}.aib-route-quickfacts strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:850}
.aib-route-hero-map-wrap,.aib-route-hero-image{height:270px!important;min-height:0!important;border-radius:14px!important}.aib-route-hero-map-label{left:8px!important;bottom:8px!important;padding:4px 7px!important;font-size:.46rem!important}
/* La seconda mappa resta disponibile, ma molto meno invasiva. */
.aib-route-map-section{margin:10px 0 14px!important}.aib-route-map-section .aib-route-section-title{margin-bottom:5px!important}.aib-route-map-section .aib-route-section-title h2{font-size:1.25rem!important;margin:0!important}.aib-route-map-section .aib-eyebrow{font-size:.52rem!important}.aib-route-map-section .aib-gpx-map{height:300px!important;min-height:300px!important;border-radius:12px!important}.aib-map-download{font-size:.68rem!important}.aib-map-credit{margin-top:3px!important;font-size:.58rem!important}
/* Sezioni editoriali corte; nessuna ripetizione delle caratteristiche già nell'hero. */
.aib-route-facts{display:none!important}.aib-route-story,.aib-route-practical{margin:12px 0!important}.aib-route-story{padding:12px 14px!important;border-radius:13px!important}.aib-route-section-title{margin-bottom:6px!important}.aib-route-section-title h2{font-size:1.3rem!important;line-height:1.05!important}.aib-route-section-title .aib-eyebrow{font-size:.52rem!important}.aib-route-prose{max-width:1000px!important;font-size:.82rem!important;line-height:1.45!important}.aib-route-prose p{margin:.35em 0!important}
.aib-practical-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.aib-practical-grid article{padding:10px 11px!important;border-radius:11px!important}.aib-practical-grid article>span{width:25px!important;height:25px!important;font-size:.72rem!important}.aib-practical-grid h3{margin:5px 0 2px!important;font-size:.82rem!important}.aib-practical-grid p{font-size:.72rem!important;line-height:1.35!important}
.aib-route-page .aib-source-minimal{margin-top:7px!important;padding-top:4px!important}.aib-route-page .aib-source-minimal summary{padding:3px 0!important;font-size:.55rem!important}.aib-route-page .aib-source-minimal .aib-source-content{padding:4px 0!important;font-size:.58rem!important}
.aib-route-related{margin:12px 0 2px!important;padding-top:10px!important}.aib-route-related .aib-route-section-title{margin-bottom:6px!important}.aib-route-related .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:7px!important}.aib-route-related .aib-card-image{height:78px!important}.aib-route-related .aib-card-body{padding:7px!important}.aib-route-related .aib-card h3{min-height:2.1em!important;margin:0 0 4px!important;font-size:.68rem!important;line-height:1.05!important}.aib-route-related .aib-card-meta span{min-height:28px!important;padding:3px 4px!important}.aib-route-related .aib-card-meta strong{font-size:.56rem!important}.aib-route-related .aib-card-meta small{font-size:.45rem!important}.aib-route-related .aib-card-practical{display:none!important}.aib-route-related .aib-card-link{padding:4px 6px!important;font-size:.55rem!important}

/* Collaudo 01-14: mini schede da circa 3,5–4 cm, senza mini-mappa. */
.aib-first14-compact-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:7px!important;align-items:stretch!important}
.aib-first14-compact-grid .is-first14-card{position:relative!important;min-width:0!important;min-height:88px!important;max-height:98px!important;overflow:hidden!important;border-radius:10px!important;box-shadow:0 3px 10px rgba(25,20,16,.045)!important}
.aib-first14-compact-grid .is-first14-card>.aib-province-card-map-link,.aib-first14-compact-grid .is-first14-card>.aib-province-card-photo{display:none!important}
.aib-first14-compact-grid .is-first14-card .aib-first14-number{top:5px!important;right:5px!important;width:21px!important;height:21px!important;font-size:.52rem!important;border-radius:7px!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-body{display:flex!important;flex-direction:column!important;height:100%!important;padding:6px 7px!important}
.aib-first14-compact-grid .is-first14-card .aib-card-context,.aib-first14-compact-grid .is-first14-card .aib-region-label{display:none!important}
.aib-first14-compact-grid .is-first14-card .aib-bike-badges{display:flex!important;gap:2px!important;max-width:calc(100% - 24px)!important;margin:0 0 3px!important;white-space:nowrap!important;overflow:hidden!important}.aib-first14-compact-grid .is-first14-card .aib-bike-badges span{min-height:0!important;padding:2px 4px!important;font-size:.43rem!important;border-radius:999px!important}
.aib-first14-compact-grid .is-first14-card h2{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;min-height:0!important;max-height:2.25em!important;margin:0 22px 3px 0!important;font-size:.61rem!important;line-height:1.08!important;letter-spacing:-.01em!important}.aib-first14-compact-grid .is-first14-card h2 a{font-size:inherit!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-stats{display:flex!important;gap:3px!important;margin:0!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats span{display:none!important;min-height:0!important;padding:2px 4px!important;border-radius:5px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats span:first-child,.aib-first14-compact-grid .is-first14-card .aib-province-card-stats span:last-child{display:flex!important;align-items:baseline!important;gap:2px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats strong{font-size:.52rem!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats small{font-size:.42rem!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-body>p,.aib-first14-compact-grid .is-first14-card .aib-province-card-footer{display:none!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-cta{min-height:0!important;margin:auto 0 0!important;padding:2px 0 0!important;border:0!important;background:transparent!important;font-size:.5rem!important;color:#9b4a19!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-cta span{font-size:.55rem!important}

@media(max-width:1150px){.aib-route-hero{grid-template-columns:minmax(0,1.4fr) minmax(245px,.6fr)!important}.aib-route-hero-map-wrap,.aib-route-hero-image{height:250px!important}.aib-first14-compact-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media(max-width:900px){.aib-route-hero{grid-template-columns:1fr!important}.aib-route-hero-map-wrap,.aib-route-hero-image{height:220px!important}.aib-route-quickfacts{grid-template-columns:repeat(2,minmax(0,1fr))}.aib-first14-compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:650px){.aib-route-page{width:min(100% - 12px,1280px)!important}.aib-route-hero{padding:10px!important}.aib-route-hero h1{font-size:1.55rem!important}.aib-route-stats-hero{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-route-quickfacts{grid-template-columns:1fr}.aib-route-hero-map-wrap{display:none!important}.aib-route-map-section .aib-gpx-map{height:280px!important;min-height:280px!important}.aib-first14-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-first14-compact-grid .is-first14-card{max-height:none!important;min-height:86px!important}}


/* =========================================================
   AI Bike Up 7.0.0 — RELEASE DEFINITIVA DI PUBBLICAZIONE
   12 percorsi attivi, 2 accantonati. Layout finale compatto.
   ========================================================= */
/* Scheda singola: una sola mappa interattiva nell'hero, dati completi subito visibili. */
.aib-route-page{width:min(100% - 18px,1480px)!important;max-width:1480px!important;padding:6px 0 20px!important}
.aib-route-hero{grid-template-columns:minmax(0,1.55fr) minmax(330px,.45fr)!important;gap:10px!important;margin:4px 0 7px!important;padding:9px 11px!important;border-radius:15px!important}
.aib-route-hero .aib-breadcrumb{font-size:.62rem!important;margin:0 0 1px!important}.aib-route-tags{margin:0 0 3px!important}.aib-route-tags span{padding:3px 6px!important;font-size:.56rem!important}
.aib-route-hero h1{max-width:1000px!important;margin:1px 0 3px!important;font-size:clamp(1.35rem,2.15vw,1.95rem)!important;line-height:1!important;letter-spacing:-.03em!important}
.aib-route-lead{margin:0 0 3px!important;max-width:950px!important;font-size:.75rem!important;line-height:1.25!important}.aib-route-status{margin:1px 0 2px!important;padding:3px 6px!important;font-size:.55rem!important}
.aib-route-stats-hero{gap:4px!important;margin:3px 0!important}.aib-route-stats-hero .aib-stat{padding:6px 7px!important;border-radius:8px!important}.aib-route-stats-hero .aib-stat strong{font-size:.82rem!important}.aib-route-stats-hero .aib-stat span{font-size:.5rem!important}
.aib-route-actions-hero{gap:4px!important;margin:3px 0 0!important}.aib-route-actions-hero .aib-button{padding:5px 8px!important;font-size:.62rem!important}
.aib-route-quickfacts{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:3px!important;margin-top:4px!important}.aib-route-quickfacts>span{gap:4px!important;padding:4px 6px!important;border-radius:7px!important}.aib-route-quickfacts small{font-size:.46rem!important}.aib-route-quickfacts strong{font-size:.59rem!important}
.aib-route-hero-map-wrap,.aib-route-hero-image{height:230px!important;border-radius:12px!important}.aib-route-hero-map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important}.aib-route-hero-map .leaflet-control-container{display:block!important}.aib-route-hero-map .leaflet-control-attribution{font-size:6px!important;opacity:.6}.aib-route-hero-map .leaflet-control-zoom{transform:scale(.75);transform-origin:top left}.aib-route-hero-map-label{left:7px!important;bottom:7px!important;padding:3px 6px!important;font-size:.42rem!important}
/* Mappa secondaria solo se l'hero usa una foto; resta chiusa fino a richiesta. */
.aib-route-map-details{margin:6px 0!important;padding:0!important;border:1px solid #e8dfd5!important;border-radius:10px!important;background:#fff!important}.aib-route-map-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;cursor:pointer;font-size:.72rem;list-style:none}.aib-route-map-details>summary::-webkit-details-marker{display:none}.aib-route-map-details>summary span{font-size:.58rem;color:#8c6a52}.aib-route-map-details-body{padding:0 8px 8px}.aib-route-map-details .aib-gpx-map{height:260px!important;min-height:260px!important}.aib-map-details-actions{display:flex;justify-content:flex-end;padding:4px 0}.aib-map-details-actions a{font-size:.62rem!important}
/* Parte editoriale in due colonne: nessun grande vuoto tra una sezione e l'altra. */
.aib-route-info-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.45fr);gap:7px;align-items:start;margin:6px 0!important}.aib-route-info-grid .aib-route-story,.aib-route-info-grid .aib-route-practical{margin:0!important;height:100%}.aib-route-story{padding:9px 11px!important;border-radius:10px!important}.aib-route-section-title{margin-bottom:4px!important}.aib-route-section-title h2{font-size:1.05rem!important;line-height:1.02!important;margin:0!important}.aib-route-section-title .aib-eyebrow{font-size:.45rem!important}.aib-route-prose{max-width:none!important;font-size:.72rem!important;line-height:1.35!important}.aib-route-prose p{margin:.2em 0!important}
.aib-practical-grid{grid-template-columns:1fr!important;gap:4px!important}.aib-practical-grid article{display:grid!important;grid-template-columns:22px 1fr;column-gap:6px;align-items:start;padding:7px 8px!important;border-radius:8px!important}.aib-practical-grid article>span{grid-row:1/3;width:22px!important;height:22px!important;font-size:.62rem!important}.aib-practical-grid h3{margin:0 0 1px!important;font-size:.7rem!important}.aib-practical-grid p{margin:0!important;font-size:.62rem!important;line-height:1.25!important}.aib-route-page .aib-source-minimal{margin:4px 0 0!important;padding-top:2px!important}.aib-route-page .aib-source-minimal summary{padding:2px 0!important;font-size:.49rem!important}.aib-route-page .aib-source-minimal .aib-source-content{padding:3px 0!important;font-size:.52rem!important}
.aib-route-related{margin:8px 0 0!important;padding-top:7px!important}.aib-route-related .aib-route-section-title h2{font-size:.95rem!important}.aib-route-related .aib-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important}.aib-route-related .aib-card-image{height:62px!important}.aib-route-related .aib-card-body{padding:6px!important}.aib-route-related .aib-card h3{font-size:.6rem!important;min-height:2em!important}.aib-route-related .aib-card-meta{display:none!important}.aib-route-related .aib-card-link{font-size:.5rem!important;padding:3px 4px!important}
/* Blocco iniziale: il doppio delle mini-card precedenti, 4 per riga desktop. */
.aib-first14-compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}.aib-first14-compact-grid .is-first14-card{min-height:148px!important;max-height:162px!important;border-radius:13px!important;box-shadow:0 5px 15px rgba(25,20,16,.055)!important}.aib-first14-compact-grid .is-first14-card .aib-first14-number{top:8px!important;right:8px!important;width:27px!important;height:27px!important;font-size:.65rem!important;border-radius:8px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-body{padding:10px 11px!important}.aib-first14-compact-grid .is-first14-card .aib-bike-badges{gap:4px!important;max-width:calc(100% - 34px)!important;margin-bottom:6px!important}.aib-first14-compact-grid .is-first14-card .aib-bike-badges span{padding:3px 6px!important;font-size:.54rem!important}.aib-first14-compact-grid .is-first14-card h2{max-height:2.35em!important;margin:0 32px 7px 0!important;font-size:.82rem!important;line-height:1.12!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats span{display:flex!important;min-height:31px!important;flex-direction:column!important;justify-content:center!important;padding:4px 5px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats strong{font-size:.62rem!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats small{font-size:.45rem!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-cta{padding-top:5px!important;font-size:.6rem!important}.aib-first14-preview-head{margin-bottom:7px!important;padding:8px 10px!important}.aib-first14-preview-head strong{font-size:.9rem!important}.aib-first14-preview-head small,.aib-first14-preview-head span{font-size:.58rem!important}
/* Province Lombardia: molto più compatte, 6 per riga = 12 province in due righe. */
.aib-lombardia-province-hub{margin:10px 0 9px!important;padding:12px!important;border-radius:16px!important}.aib-lombardia-province-hub>.aib-section-head{margin-bottom:6px!important}.aib-lombardia-province-hub>.aib-section-head h2{font-size:1.45rem!important}.aib-lombardia-province-hub>.aib-section-head p{font-size:.72rem!important;max-width:430px!important}.aib-lombardia-province-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:7px!important;margin-top:8px!important}.aib-lombardia-province-card{min-height:104px!important;gap:4px!important;padding:8px 9px!important;border-radius:13px!important}.aib-lombardia-province-card:after{width:48px!important;height:48px!important;right:-14px!important;top:-14px!important}.aib-lombardia-province-visual{min-height:14px!important}.aib-lombardia-province-badge{width:8px!important;height:8px!important;min-width:8px!important}.aib-lombardia-province-badge svg{width:4px!important;height:4px!important}.aib-lombardia-province-micro{padding:2px 5px!important;font-size:7px!important}.aib-lombardia-province-title-wrap{gap:2px!important}.aib-lombardia-province-card strong{font-size:13px!important}.aib-lombardia-province-title-wrap>span{font-size:9px!important;line-height:1.15!important;min-height:20px!important}.aib-lombardia-province-stats{gap:3px!important}.aib-lombardia-province-stats small{padding:3px 5px!important;font-size:7px!important}.aib-lombardia-province-cta{font-size:9px!important;margin-top:0!important}.aib-lombardia-province-cta b{font-size:11px!important}.aib-lombardia-editor-note{padding:8px 10px!important;margin-top:7px!important;border-radius:10px!important}.aib-lombardia-editor-note strong{font-size:11px!important}.aib-lombardia-editor-note span,.aib-lombardia-editor-note a{font-size:9px!important}
@media(max-width:1250px){.aib-first14-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.aib-lombardia-province-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.aib-route-info-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.aib-route-related .aib-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:900px){.aib-route-hero{grid-template-columns:1fr!important}.aib-route-hero-map-wrap,.aib-route-hero-image{height:215px!important}.aib-route-info-grid{grid-template-columns:1fr!important}.aib-first14-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-lombardia-province-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:600px){.aib-route-page{width:min(100% - 10px,1480px)!important}.aib-route-hero{padding:8px!important}.aib-route-hero h1{font-size:1.35rem!important}.aib-route-quickfacts{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-route-hero-map-wrap{display:block!important;height:205px!important}.aib-route-related .aib-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.aib-first14-compact-grid{grid-template-columns:1fr!important}.aib-first14-compact-grid .is-first14-card{min-height:135px!important;max-height:none!important}.aib-lombardia-province-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* AI Bike Up 7.1 – Bici adatte immediatamente leggibili */
.aib-route-bike-fit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px;padding:6px 8px;border:1px solid #eadfd4;border-radius:10px;background:#fffdf9}
.aib-route-bike-fit>small{font-size:.62rem;font-weight:950;letter-spacing:.09em;color:#7a6859;white-space:nowrap}
.aib-route-bike-fit>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.aib-bike-fit-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;font-size:.72rem;font-weight:900;line-height:1;border:1px solid #e5ddd5;background:#fff;color:#28231f}
.aib-bike-fit-pill b{font-size:.78rem;line-height:1}.aib-bike-fit-strada{background:#fff3e7;border-color:#f0d2b4;color:#8f430f}.aib-bike-fit-gravel{background:#f4efe7;border-color:#ded0be;color:#67523c}.aib-bike-fit-mtb{background:#eef5ea;border-color:#ccddc3;color:#3e6737}.aib-bike-fit-e-bike{background:#eef5fb;border-color:#c8dae9;color:#365f7e}
.aib-route-bike-fit>em{margin-left:auto;font-size:.66rem;font-style:normal;font-weight:750;color:#8a6551}
@media(max-width:700px){.aib-route-bike-fit>em{width:100%;margin-left:0}.aib-route-bike-fit{gap:6px}.aib-bike-fit-pill{font-size:.68rem;padding:4px 6px}}

/* =========================================================
   AI Bike Up 7.2.0 — MAPPA DETTAGLIATA + UI DEFINITIVA
   - scheda percorso più compatta
   - mappa full-screen con ritorno allo stesso punto
   - Lombardia più bassa
   - province leggere ma cromaticamente riconoscibili
   - percorsi in evidenza map-first
   ========================================================= */

/* Scheda percorso: elimina definitivamente gli allungamenti dovuti alle colonne a pari altezza. */
.aib-route-info-grid{align-items:start!important;margin:4px 0!important;gap:6px!important}
.aib-route-info-grid .aib-route-story,
.aib-route-info-grid .aib-route-practical{height:auto!important;min-height:0!important;align-self:start!important;margin:0!important}
.aib-route-story{padding:8px 10px!important}
.aib-route-practical{padding:0!important}
.aib-route-prose{line-height:1.28!important}
.aib-route-prose p{margin:.15em 0!important}
.aib-route-section-title{margin-bottom:3px!important}
.aib-practical-grid{gap:3px!important}
.aib-practical-grid article{padding:6px 7px!important}
.aib-route-page .aib-source-minimal{margin-top:2px!important}
.aib-route-related{margin-top:5px!important;padding-top:6px!important}

/* La mini-mappa resta un'anteprima; il controllo vero avviene nel full-screen. */
.aib-route-hero-map-wrap{position:relative!important;cursor:default}
.aib-route-hero-map .leaflet-tile-pane,
.aib-gpx-map-fullscreen .leaflet-tile-pane{filter:saturate(1.12) contrast(1.03) brightness(1.015)}
.aib-route-hero-map-open{position:absolute;z-index:650;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgba(255,255,255,.96);border-radius:999px;background:rgba(28,25,22,.86);box-shadow:0 5px 18px rgba(0,0,0,.18);color:#fff;font:inherit;font-size:.56rem;font-weight:900;letter-spacing:.025em;cursor:pointer;backdrop-filter:blur(5px)}
.aib-route-hero-map-open:hover{background:#e66524}.aib-route-hero-map-open span{font-size:.78rem}
.aib-map-fullscreen-trigger{display:inline-flex!important;align-items:center!important;gap:5px!important}
.aib-map-fullscreen-trigger:before{content:"⛶";font-size:.86em}
.aib-route-start-marker{background:transparent!important;border:0!important}.aib-route-start-marker span{display:grid;place-items:center;width:25px;height:25px;border:2px solid #fff;border-radius:50%;background:#1e2428;color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.24);font-size:10px;font-weight:950}

/* Full-screen overlay: nessun cambio pagina, quindi la X riporta allo stesso scroll. */
body.aib-map-modal-open{overflow:hidden!important}
.aib-map-modal{position:fixed;z-index:999999;inset:0;display:none;padding:12px;background:rgba(18,17,16,.72);backdrop-filter:blur(6px)}
.aib-map-modal.is-open{display:flex;align-items:stretch;justify-content:center}
.aib-map-modal-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,1780px);height:calc(100vh - 24px);overflow:hidden;border:1px solid rgba(255,255,255,.55);border-radius:18px;background:#fffdf9;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.aib-map-modal-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 12px;border-bottom:1px solid #e9e1d8;background:#fffdf9}
.aib-map-modal-header>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.aib-map-modal-header>div:first-child span{color:#b8531e;font-size:.56rem;font-weight:950;letter-spacing:.12em}.aib-map-modal-header>div:first-child strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.1}
.aib-map-modal-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.aib-map-modal-actions>a,.aib-map-fit-button{padding:7px 10px;border:1px solid #e4d9ce;border-radius:999px;background:#fff;color:#7f3a12;text-decoration:none;font:inherit;font-size:.68rem;font-weight:900;cursor:pointer}.aib-map-modal-actions>a:hover,.aib-map-fit-button:hover{border-color:#e66524;background:#fff2e8}.aib-map-modal-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#1e1c1a;color:#fff;font:inherit;font-size:1.35rem;line-height:1;cursor:pointer}.aib-map-modal-close:hover{background:#e66524}
.aib-gpx-map-fullscreen{width:100%!important;height:100%!important;min-height:0!important;border-radius:0!important;background:#ece8e1!important}
.aib-gpx-map-fullscreen .leaflet-control-zoom a{width:36px;height:36px;line-height:36px;font-size:20px}.aib-gpx-map-fullscreen .leaflet-control-attribution{font-size:9px}
.aib-map-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px;border-top:1px solid #e9e1d8;background:#fffdf9;color:#71675f;font-size:.58rem}
@media(max-width:760px){.aib-map-modal{padding:0}.aib-map-modal-panel{height:100vh;border-radius:0}.aib-map-modal-header{align-items:flex-start;padding:9px}.aib-map-modal-header>div:first-child strong{max-width:52vw;font-size:.82rem}.aib-map-fit-button{display:none}.aib-map-modal-actions>a{padding:6px 8px;font-size:.6rem}.aib-map-modal-close{width:32px;height:32px}.aib-map-modal-footer{display:none}}

/* Lombardia: hero/fascia più bassa e leggibile, senza togliere identità. */
.aib-region-shell{padding-top:12px!important}
.aib-region-hero{grid-template-columns:minmax(330px,.78fr) minmax(520px,1.22fr)!important;gap:22px!important;padding:5px 0 10px!important;align-items:center!important}
.aib-region-copy .aib-breadcrumb{margin-bottom:8px!important}
.aib-region-copy h1{font-size:clamp(3rem,5vw,5.05rem)!important;line-height:.91!important}
.aib-region-copy h2{margin-top:8px!important;font-size:clamp(1.15rem,1.6vw,1.65rem)!important}
.aib-region-copy p{margin-top:8px!important;font-size:.88rem!important;line-height:1.42!important}
.aib-region-actions{margin-top:13px!important;gap:10px!important}.aib-region-actions .aib-button-big{padding:10px 14px!important;font-size:.82rem!important}.aib-region-actions>span{font-size:.62rem!important}
.aib-region-visual .aib-atlas-map-region{height:305px!important;border-radius:22px!important}
.aib-region-filter{margin-top:8px!important;margin-bottom:10px!important;padding:10px 12px!important}
.aib-region-priorities{margin-bottom:8px!important}
@media(max-width:980px){.aib-region-hero{grid-template-columns:1fr!important}.aib-region-visual .aib-atlas-map-region{height:300px!important}}

/* Province: compatte, icona molto piccola ma cromaticamente riconoscibile. */
.aib-lombardia-province-hub{padding:10px!important;margin:7px 0!important}
.aib-lombardia-province-grid{gap:6px!important;margin-top:6px!important}
.aib-lombardia-province-card{min-height:94px!important;padding:7px 8px!important;gap:3px!important}
.aib-lombardia-province-badge{width:14px!important;height:14px!important;min-width:14px!important;border-radius:5px!important;box-shadow:none!important}
.aib-lombardia-province-badge svg{width:8px!important;height:8px!important;stroke-width:2.15!important}
.aib-lombardia-province-micro{padding:2px 5px!important;font-size:6.5px!important;letter-spacing:.08em!important}
.aib-lombardia-province-card strong{font-size:12px!important}.aib-lombardia-province-title-wrap>span{font-size:8.5px!important;min-height:18px!important}.aib-lombardia-province-stats small{font-size:6.5px!important;padding:2px 4px!important}.aib-lombardia-province-cta{font-size:8.5px!important}
.aib-tone-laghi .aib-lombardia-province-badge,.aib-tone-lago .aib-lombardia-province-badge{background:#e2f3fb!important;color:#247da6!important}
.aib-tone-monti .aib-lombardia-province-badge,.aib-tone-alpi .aib-lombardia-province-badge,.aib-tone-boschi .aib-lombardia-province-badge{background:#e6f1e1!important;color:#4f7d49!important}
.aib-tone-pianura .aib-lombardia-province-badge,.aib-tone-canali .aib-lombardia-province-badge{background:#f6edd0!important;color:#997520!important}
.aib-tone-sole .aib-lombardia-province-badge{background:#fff0cf!important;color:#b26e12!important}
.aib-tone-citta .aib-lombardia-province-badge,.aib-tone-ville .aib-lombardia-province-badge{background:#f7e6dc!important;color:#a8552e!important}
.aib-tone-colline .aib-lombardia-province-badge{background:#e7f0e7!important;color:#557c5a!important}

/* Anteprima riservata: la grafica deve essere uguale a quella pubblica e map-first. */
.aib-first14-preview-head{padding:6px 8px!important;margin:4px 0 7px!important;border-radius:9px!important;background:#faf7f2!important}
.aib-first14-preview-head span{color:#a54c19!important}.aib-first14-preview-head strong{font-size:.82rem!important}.aib-first14-preview-head small{font-size:.54rem!important}
.aib-first14-compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}
.aib-first14-compact-grid .is-first14-card{display:grid!important;grid-template-columns:34% minmax(0,1fr)!important;min-height:166px!important;max-height:178px!important;overflow:hidden!important;border-radius:14px!important;border:1px solid #e9dfd5!important;background:#fff!important;box-shadow:0 7px 20px rgba(31,24,18,.07)!important}
.aib-first14-compact-grid .is-first14-card>.aib-province-card-map-link{display:block!important;position:relative!important;width:100%!important;height:100%!important;min-height:166px!important;border-radius:0!important;overflow:hidden!important;background:#e9e6df!important}
.aib-first14-compact-grid .is-first14-card>.aib-province-card-photo{display:block!important;width:100%!important;height:100%!important;min-height:166px!important;border-radius:0!important}
.aib-first14-compact-grid .is-first14-card .aib-province-map{height:100%!important;min-height:100%!important}.aib-first14-compact-grid .is-first14-card .leaflet-tile-pane{filter:saturate(1.18) contrast(1.05) brightness(1.02)!important}
.aib-first14-compact-grid .is-first14-card>.aib-province-card-map-link:after{content:"MAPPA GPX";position:absolute;z-index:550;left:7px;bottom:7px;padding:3px 5px;border-radius:999px;background:rgba(255,253,249,.94);color:#a34b19;font-size:.43rem;font-weight:950;letter-spacing:.05em;box-shadow:0 3px 9px rgba(0,0,0,.09)}
.aib-first14-compact-grid .is-first14-card .aib-first14-number{top:7px!important;right:7px!important;z-index:700!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-body{padding:9px!important;min-width:0!important}
.aib-first14-compact-grid .is-first14-card .aib-bike-badges{margin-bottom:4px!important}.aib-first14-compact-grid .is-first14-card h2{font-size:.76rem!important;margin:0 30px 6px 0!important;line-height:1.1!important}
.aib-first14-compact-grid .is-first14-card .aib-province-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats span{display:flex!important;min-height:29px!important;padding:4px!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats strong{font-size:.59rem!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-stats small{font-size:.42rem!important}.aib-first14-compact-grid .is-first14-card .aib-province-card-cta{font-size:.56rem!important;padding-top:4px!important}
@media(max-width:1250px){.aib-first14-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px){.aib-first14-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.aib-first14-compact-grid{grid-template-columns:1fr!important}.aib-first14-compact-grid .is-first14-card{grid-template-columns:36% 1fr!important;min-height:145px!important;max-height:none!important}.aib-first14-compact-grid .is-first14-card>.aib-province-card-map-link,.aib-first14-compact-grid .is-first14-card>.aib-province-card-photo{min-height:145px!important}}

/* =========================================================
   AI Bike Up 8.0.0 — struttura nazionale definitiva
   Tutte le Regioni riusano il medesimo hub Provincia/Area.
   ========================================================= */
.aib-region-province-hub{position:relative}
.aib-region-province-hub .aib-lombardia-province-card{background:linear-gradient(180deg,#fff 0%,#fdfaf5 100%)}
.aib-region-province-hub .aib-lombardia-province-badge{filter:saturate(1.12)}

/* =========================================================
   AI BIKE UP 8.8.0 — STRUTTURA GRAFICA PUBBLICA DEFINITIVA
   Da questa release le future versioni aggiungono SOLO percorsi.
   Home, catalogo, Regioni, Province/Aree e scheda percorso mantengono
   identico layout, spaziature e gerarchie visive.
   ========================================================= */
:root{--aib-final-shell:1320px;--aib-final-radius:16px;--aib-final-gap:10px}
body.aib-site-standalone{background:#fffdf9!important}
.aib-public-header-v41 .aib-public-header-inner,.aib-public-footer-v41 .aib-public-footer-grid{max-width:var(--aib-final-shell)!important}
.aib-public-header-v41 .aib-public-header-inner{padding-top:9px!important;padding-bottom:9px!important}

/* HOME: identità forte, ma senza grandi vuoti verticali. */
.aib-home-v42{max-width:var(--aib-final-shell)!important;padding-top:0!important;padding-bottom:46px!important}
.aib-home-hero-v42{grid-template-columns:minmax(360px,.8fr) minmax(540px,1.2fr)!important;gap:26px!important;min-height:0!important;padding:16px 0 6px!important}
.aib-home-hero-v42 h1{font-size:clamp(2.9rem,4.5vw,5rem)!important;line-height:.92!important}
.aib-home-hero-v42 p{margin-top:12px!important;font-size:.96rem!important;line-height:1.44!important}
.aib-home-hero-v42 .aib-home-hero-actions{margin-top:14px!important}
.aib-home-v42 .aib-atlas-map-italy{height:330px!important;border-radius:20px!important}
.aib-home-search-v42{margin:6px 0 10px!important;padding:12px 14px!important;gap:15px!important}
.aib-home-scenic-v42{margin-bottom:20px!important;padding:8px 11px!important}
.aib-home-routes-v42{margin:22px 0 34px!important}

/* CATALOGO: filtri sempre in alto, card coerenti con le Regioni. */
.aib-catalog-shell{max-width:var(--aib-final-shell)!important;padding-top:12px!important;padding-bottom:48px!important}
.aib-catalog-hero{margin-bottom:12px!important;gap:18px!important}
.aib-catalog-filter{margin:8px 0 12px!important;padding:11px 13px!important;border-radius:14px!important}
.aib-catalog-region-jump{margin:6px 0 16px!important;padding:10px 12px!important}

/* TUTTE LE REGIONI: stesso identico modello grafico della Lombardia. */
.aib-region-shell{width:min(100% - 28px,var(--aib-final-shell))!important;max-width:var(--aib-final-shell)!important;margin-left:auto!important;margin-right:auto!important;padding:8px 0 46px!important}
.aib-region-hero{grid-template-columns:minmax(320px,.8fr) minmax(500px,1.2fr)!important;gap:20px!important;padding:2px 0 8px!important;align-items:center!important}
.aib-region-copy h1{margin:2px 0 5px!important;font-size:clamp(2.65rem,4.3vw,4.35rem)!important;line-height:.92!important}
.aib-region-copy h2{margin:5px 0 0!important;font-size:clamp(1.05rem,1.35vw,1.38rem)!important}
.aib-region-copy p{max-width:620px!important;margin:7px 0 0!important;font-size:.82rem!important;line-height:1.4!important}
.aib-region-actions{margin-top:10px!important;gap:8px!important}.aib-region-actions .aib-button-big{padding:9px 13px!important;font-size:.76rem!important}.aib-region-actions>span{font-size:.58rem!important}
.aib-region-visual .aib-atlas-map-region{height:278px!important;border-radius:18px!important}
.aib-region-filter{margin:6px 0 7px!important;padding:9px 10px!important;border-radius:13px!important;gap:8px!important}
.aib-region-filter label span{font-size:.61rem!important}.aib-region-filter select{min-height:39px!important;height:39px!important;border-radius:9px!important}.aib-region-filter .aib-button{min-height:39px!important;padding:8px 13px!important;border-radius:9px!important}
.aib-region-priorities{margin:0 0 6px!important;gap:5px!important}.aib-region-priorities span{padding:4px 7px!important;font-size:.55rem!important}

/* Province/Aree: molto compatte; servono solo per entrare rapidamente nel territorio. */
.aib-region-province-hub,.aib-lombardia-province-hub{margin:6px 0 8px!important;padding:9px!important;border-radius:14px!important}
.aib-region-province-hub .aib-section-head,.aib-lombardia-province-hub .aib-section-head{margin-bottom:5px!important;gap:10px!important}
.aib-region-province-hub .aib-section-head h2,.aib-lombardia-province-hub .aib-section-head h2{font-size:1.28rem!important}
.aib-region-province-hub .aib-section-head p,.aib-lombardia-province-hub .aib-section-head p{font-size:.62rem!important}
.aib-lombardia-province-grid{gap:5px!important;margin-top:5px!important}
.aib-lombardia-province-card{min-height:82px!important;padding:6px 7px!important;border-radius:11px!important;gap:2px!important}
.aib-lombardia-province-badge{width:12px!important;height:12px!important;min-width:12px!important;border-radius:4px!important}.aib-lombardia-province-badge svg{width:7px!important;height:7px!important}
.aib-lombardia-province-micro{padding:2px 4px!important;font-size:5.9px!important}
.aib-lombardia-province-card strong{font-size:11px!important}.aib-lombardia-province-title-wrap>span{font-size:7.8px!important;min-height:16px!important}.aib-lombardia-province-stats small{font-size:6px!important;padding:2px 4px!important}.aib-lombardia-province-cta{font-size:7.8px!important}
.aib-region-province-links{margin:5px 0 9px!important;padding:5px 7px!important;gap:4px!important}.aib-region-province-links a{padding:4px 6px!important;font-size:.55rem!important}

/* Percorsi: più importanti delle Province, con mappa leggibile e dati a colpo d'occhio. */
.aib-region-routes{margin-top:8px!important}.aib-region-routes>.aib-section-head{margin-bottom:8px!important}.aib-region-routes>.aib-section-head h2{font-size:1.55rem!important}.aib-region-routes>.aib-section-head p{font-size:.7rem!important}
.aib-region-grid,.aib-home-v42 .aib-grid,.aib-catalog-shell .aib-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important}
.aib-province-grid .aib-province-card,.aib-region-grid .aib-province-card,.aib-home-v42 .aib-card,.aib-catalog-shell .aib-card{border-radius:13px!important;box-shadow:0 6px 18px rgba(33,26,20,.055)!important}
.aib-province-grid .aib-province-card-map-link,.aib-province-grid .aib-province-card-photo,.aib-region-grid .aib-province-card-map-link,.aib-region-grid .aib-province-card-photo,.aib-home-v42 .aib-card-image,.aib-catalog-shell .aib-card-image{height:126px!important}
.aib-province-grid .aib-province-card-body,.aib-region-grid .aib-province-card-body,.aib-home-v42 .aib-card-body,.aib-catalog-shell .aib-card-body{padding:11px!important}
.aib-province-grid .aib-province-card h2,.aib-region-grid .aib-province-card h2,.aib-home-v42 .aib-card h3,.aib-catalog-shell .aib-card h3{font-size:.9rem!important;line-height:1.14!important;min-height:2.3em!important}
.aib-province-grid .aib-province-card-stats span,.aib-region-grid .aib-province-card-stats span,.aib-home-v42 .aib-card-meta span,.aib-catalog-shell .aib-card-meta span{min-height:38px!important;padding:5px 6px!important}

/* SCHEDA PERCORSO: tutte le caratteristiche essenziali restano nella prima schermata. */
.aib-route-page{width:min(100% - 20px,var(--aib-final-shell))!important;max-width:var(--aib-final-shell)!important;padding-top:7px!important}
.aib-route-hero{grid-template-columns:minmax(0,1.5fr) minmax(285px,.5fr)!important;gap:12px!important;margin:5px 0 9px!important;padding:11px 13px!important;border-radius:16px!important}
.aib-route-hero h1{font-size:clamp(1.5rem,2.45vw,2.12rem)!important}.aib-route-lead{font-size:.8rem!important;line-height:1.3!important}
.aib-route-stats-hero{gap:5px!important}.aib-route-stats-hero .aib-stat{padding:7px 8px!important}.aib-route-stats-hero .aib-stat strong{font-size:.9rem!important}.aib-route-stats-hero .aib-stat span{font-size:.55rem!important}
.aib-route-hero-map-wrap,.aib-route-hero-image{height:250px!important;border-radius:13px!important}
.aib-route-map-section{margin:12px 0 16px!important}.aib-route-map-section .aib-gpx-map{height:min(45vh,420px)!important;min-height:310px!important}

/* Le pagine senza percorsi mantengono la stessa struttura: i contenuti entreranno qui in seguito. */
.aib-region-empty,.aib-empty{margin:8px 0!important;padding:18px!important;border-radius:13px!important}

@media(max-width:1180px){
  .aib-home-hero-v42,.aib-region-hero{grid-template-columns:1fr!important}
  .aib-home-v42 .aib-atlas-map-italy,.aib-region-visual .aib-atlas-map-region{height:300px!important}
  .aib-region-grid,.aib-home-v42 .aib-grid,.aib-catalog-shell .aib-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .aib-region-shell{width:min(100% - 18px,var(--aib-final-shell))!important}
  .aib-home-v42{padding-left:14px!important;padding-right:14px!important}
  .aib-region-grid,.aib-home-v42 .aib-grid,.aib-catalog-shell .aib-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .aib-region-visual .aib-atlas-map-region{height:260px!important}
  .aib-route-hero{grid-template-columns:1fr!important}.aib-route-hero-map-wrap{height:220px!important}
}
@media(max-width:540px){
  .aib-region-grid,.aib-home-v42 .aib-grid,.aib-catalog-shell .aib-grid{grid-template-columns:1fr!important}
  .aib-province-grid .aib-province-card-map-link,.aib-province-grid .aib-province-card-photo,.aib-region-grid .aib-province-card-map-link,.aib-region-grid .aib-province-card-photo,.aib-home-v42 .aib-card-image,.aib-catalog-shell .aib-card-image{height:190px!important}
  .aib-region-copy h1{font-size:2.8rem!important}
  .aib-route-hero-map-wrap{display:none!important}
}
