@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--dark:#101815;--ink:#202725;--green:#607a64;--lime:#d9edb3;--cream:#f5f5f0;--line:#dfe1dc;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--cream);gap:20px}.logo{font-family:Manrope,sans-serif;letter-spacing:-1px;font-weight:500;font-size:20px}.logo b{font-weight:800}.header nav{display:flex;gap:34px;font-size:13px;color:#505b56}.header nav a:hover{text-decoration:underline}.smallbtn{border:1px solid var(--dark);padding:14px 20px;font-size:11px;font-weight:800;letter-spacing:1px}.hero{position:relative;min-height:670px;background:linear-gradient(90deg,rgba(8,22,22,.85),rgba(8,22,22,.15)),url('https://images.unsplash.com/photo-1544191696-15693072a25b?auto=format&fit=crop&w=2000&q=85') center 55%/cover;color:white}.hero-content{max-width:850px;padding:130px 7% 140px}.eyebrow,.section-label{font-size:11px;font-weight:800;letter-spacing:2px}.hero h1,h2{font-family:Manrope,sans-serif;letter-spacing:-.065em;line-height:1.08;font-weight:800}.hero h1{font-size:clamp(56px,7vw,106px);margin:26px 0}.hero em,h2 em{color:var(--lime);font-style:normal}.hero p{font-size:17px;line-height:1.8;max-width:500px;color:#f1f4f0}.hero-btn{display:inline-flex;align-items:center;gap:48px;background:var(--lime);color:var(--dark);font-weight:800;font-size:12px;letter-spacing:1px;padding:19px 23px;margin-top:25px}.hero-foot{position:absolute;bottom:28px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.8px;font-weight:700}.section{padding:112px 7% 125px;max-width:1600px;margin:auto}.section-label{color:var(--green)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-head h2{font-size:clamp(40px,5vw,70px);margin:24px 0 47px}.section-head h2 em{color:var(--green)}.section-head p{max-width:290px;line-height:1.7;color:#69716d}.categories{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.category{min-height:230px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:27px;background:#e8ebe4;border:1px solid #dce1d8;color:#202b26;transition:all .2s}.category:hover,.category.active{background:#1f3329;color:#fff}.category-number{font-size:11px;letter-spacing:2px}.category-name{font-family:Manrope,sans-serif;font-size:clamp(25px,3.1vw,45px);font-weight:800;letter-spacing:-2px}.category-bottom{font-size:12px}.fleet-bar{display:flex;justify-content:space-between;align-items:center;margin:65px 0 26px;border-bottom:1px solid var(--line);padding-bottom:16px}.fleet-bar h3{margin:0;letter-spacing:2px;font-size:14px}.fleet-bar span{font-size:12px;color:#818b84}.bikes{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.bike{background:#fff;border:1px solid #e5e8e3;overflow:hidden}.bike-photo{height:285px;background:#e9ece7;position:relative;display:flex;align-items:center;justify-content:center}.bike-photo img{height:100%;width:100%;object-fit:contain}.bike-photo .placeholder,.detail-photo .placeholder{font-size:54px;color:#9aa79a}.bike-photo small{position:absolute;top:15px;left:15px;background:white;font-size:10px;letter-spacing:1px;padding:9px 13px;font-weight:700}.bike-body{padding:25px}.bike-body h4{font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-1px;margin:0 0 8px}.bike-body p{font-size:13px;color:#7b847e;margin:0 0 23px}.bike-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e7e8e5;padding-top:18px}.bike-bottom b{font-size:23px}.bike-bottom small{font-size:11px;color:#788178;font-weight:400}.bike-bottom button{background:var(--dark);border:0;color:white;padding:12px 16px;font-weight:800;font-size:11px}.about{background:#192a22;color:white;padding:110px 12%;min-height:490px}.about .section-label{color:var(--lime)}.about h2{font-size:clamp(47px,6vw,85px);margin:23px 0}.about p{max-width:580px;color:#d0ded2;line-height:1.8}.about a{display:inline-block;margin-top:24px;font-weight:800;font-size:12px;letter-spacing:1.5px}.contact{text-align:center;padding:110px 20px}.contact h2{font-size:clamp(50px,6vw,80px);margin:25px 0}.contact h2 em{color:var(--green)}.contact p{color:#6b756c}.contact .hero-btn{background:var(--dark);color:white}footer{background:#0f1713;color:#d8e4d8;display:flex;gap:20px;justify-content:space-between;padding:36px 7%;font-size:12px}footer strong{letter-spacing:1px}.modal{max-width:min(900px,94vw);width:900px;max-height:90vh;border:0;padding:36px;box-shadow:0 15px 90px #0005;background:var(--cream);color:var(--dark)}.modal::backdrop{background:#07160dc4}.close{position:absolute;right:18px;top:10px;border:0;background:none;font-size:35px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-top:15px}.detail-photo{background:#e5e9e1;min-height:330px;display:flex;align-items:center;justify-content:center}.detail-photo img{width:100%;height:100%;max-height:480px;object-fit:contain}.detail h2,.booking h2{font-size:42px;margin:22px 0 12px}.detail p{line-height:1.8;color:#667168}.specs{margin:24px 0;border-top:1px solid var(--line)}.specs div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px;gap:10px}.specs span{color:#758079}.button{background:var(--dark);border:0;color:white;font-size:12px;font-weight:800;padding:16px 22px;letter-spacing:.5px}.booking{width:680px}.booking h2{font-size:38px}.booking p{color:#6a766b;line-height:1.6}.booking .fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.field label{font-size:12px;font-weight:800}.field input,.field textarea,.field select{border:1px solid #d6dcd4;background:white;padding:13px;border-radius:0;width:100%}.times{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.time{padding:11px;border:1px solid #cad3c9;background:white;font-size:12px}.time.active{background:#1f3329;color:white}.hint{font-size:12px;color:#69756a}.message{padding:12px;margin:12px 0;background:#e1e9da;color:#183927}.error{background:#f9e3df;color:#8e3028}.empty{color:#7a847b;padding:45px 0}.hide{display:none!important}@media(max-width:800px){.header{height:70px;padding:0 5%}.header nav{display:none}.smallbtn{font-size:9px}.logo{font-size:16px}.hero{min-height:620px}.hero-content{padding:125px 6%}.hero-foot{font-size:9px}.section{padding:80px 5%}.section-head{display:block}.section-head h2{margin-bottom:15px}.section-head p{margin-bottom:35px}.categories{grid-template-columns:1fr}.category{min-height:145px}.bikes{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.modal{padding:24px}.booking .fields{grid-template-columns:1fr}.times{grid-template-columns:repeat(3,1fr)}footer{flex-wrap:wrap}}

/* Free advice / concierge consultation */
.hero-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.hero-advice{display:inline-flex;align-items:center;min-height:54px;margin-top:25px;color:white;border-bottom:1px solid rgba(255,255,255,.7);font-size:12px;letter-spacing:1px;font-weight:800}.advice-section{display:grid;grid-template-columns:1.2fr 1fr;min-height:565px;background:#e9ece6}.advice-content{padding:100px max(35px,9vw) 85px 11%;display:flex;flex-direction:column;align-items:flex-start}.advice-content h2{font-size:clamp(42px,5vw,76px);margin:25px 0 21px}.advice-content h2 em{color:var(--green)}.advice-content>p{color:#546157;line-height:1.8;max-width:520px;font-size:16px}.advice-points{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.advice-points span{font-size:10px;letter-spacing:1px;font-weight:800;border:1px solid #c7cfc4;padding:12px}.advice-content .hero-btn{border:0;cursor:pointer;margin:20px 0 0}.advice-content .advice-small{font-size:12px;margin:15px 0 0}.advice-visual{background:linear-gradient(145deg,#20362a,#101e18);padding:55px;display:flex;align-items:stretch}.advice-visual-inner{display:flex;flex:1;flex-direction:column;justify-content:space-between;border:1px solid #66806b;padding:35px;color:#e1efdb;min-height:380px}.advice-visual-inner span{font-size:10px;letter-spacing:2px}.advice-visual-inner strong{font-family:Manrope,sans-serif;font-size:clamp(34px,4vw,66px);letter-spacing:-.06em;line-height:1.15}.advice-visual-inner em{color:#d9edb3;font-style:normal}@media(max-width:800px){.advice-section{grid-template-columns:1fr}.advice-content{padding:75px 7%}.advice-visual{padding:20px}.advice-visual-inner{min-height:250px}.advice-visual-inner strong{font-size:39px}}

.support-section{background:#e4e9df;padding:110px 9%}.support-section h2,.routes-section h2{font-size:clamp(42px,5.5vw,78px);max-width:900px}.support-section h2 em,.routes-section h2 em{color:#607a64}.support-section>p{max-width:680px;line-height:1.8;color:#526357}.service-tags{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.service-tags span{font-weight:800;letter-spacing:1px;font-size:10px;border:1px solid #819b80;padding:12px}.routes-section{padding:110px 9%;background:#f5f5f0}.routes-head{display:flex;justify-content:space-between;gap:25px;align-items:center}.routes-head p{max-width:620px;line-height:1.7;color:#5d6b62}.route-price{background:#192a22;padding:30px;min-width:145px;color:#fff;text-align:center}.route-price b{font-size:52px;display:block}.route-price span{font-size:10px;letter-spacing:1.5px}.route-area{margin:35px 0}.route-lock{background:white;border:1px solid #dce2da;padding:38px;max-width:700px}.route-lock strong{letter-spacing:1.5px}.route-lock p{color:#607065;line-height:1.7}.route-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:25px 0}.route-filters label{font-size:12px;font-weight:700;display:grid;gap:8px}.route-filters input{padding:12px;border:1px solid #cad3c9}.route-card{padding:25px;background:white;border:1px solid #dee5da;margin-bottom:14px}.route-card h3{font-size:20px}.route-card div{font-weight:700;margin:15px 0}.route-card a{font-size:12px;font-weight:800;text-decoration:underline}@media(max-width:800px){.routes-head{display:block}.route-price{display:inline-block}.route-filters{grid-template-columns:1fr}.support-section,.routes-section{padding:70px 6%}}

/* Gallery & photographic hero — October 2026 */
.hero{background-image:linear-gradient(90deg,rgba(8,23,21,.81) 0%,rgba(8,23,21,.52) 47%,rgba(8,23,21,.12) 100%),url('/girona-hero.webp');background-position:center 49%;background-size:cover}
.gallery-section{background:#f5f5f0;padding:104px clamp(22px,7vw,110px) 112px;scroll-margin-top:25px}.gallery-kicker{font-size:11px;letter-spacing:.2em;font-weight:800;color:#607a64}.gallery-intro{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:18px 0 34px}.gallery-intro h2{font-size:clamp(40px,5.8vw,76px);margin:12px 0}.gallery-intro h2 em{color:#607a64}.gallery-intro p{line-height:1.7;color:#68746b;max-width:550px}.gallery-count{font-size:11px;letter-spacing:.12em;white-space:nowrap;color:#6d7b70}.gallery-filters{display:flex;border-bottom:1px solid #cdd7cb;gap:34px;overflow-x:auto;margin-bottom:29px}.gallery-tab{border:none;background:none;padding:16px 0;font-size:12px;font-weight:800;letter-spacing:.08em;color:#79847b;white-space:nowrap;border-bottom:2px solid transparent}.gallery-tab span{margin-left:8px;font-size:10px;opacity:.6}.gallery-tab.is-active{color:#14251b;border-color:#14251b}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.gallery-image{background:#e0e6dc;border:0;padding:0;aspect-ratio:4/5;position:relative;overflow:hidden;cursor:zoom-in}.gallery-image:nth-child(7n+1),.gallery-image:nth-child(7n+6){grid-column:span 2;aspect-ratio:1.6}.gallery-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery-image:hover img{transform:scale(1.045)}.gallery-image::after{content:'↗';position:absolute;bottom:12px;right:13px;color:white;font-size:20px;text-shadow:0 1px 8px #0007}.gallery-note{display:flex;justify-content:space-between;gap:20px;margin-top:30px;color:#617067;font-size:13px}.gallery-note a{font-weight:800;text-decoration:underline;text-underline-offset:4px}.gallery-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;margin:0;padding:65px 75px;background:rgba(9,15,12,.96);border:0;color:white}.gallery-lightbox[open]{display:flex;align-items:center;justify-content:center}.gallery-lightbox::backdrop{background:#020603e8}.gallery-lightbox img{max-width:100%;max-height:100%;object-fit:contain}.gallery-lightbox button{position:absolute;color:white;border:1px solid #ffffff55;background:#111b16aa;width:43px;height:43px;font-size:22px;cursor:pointer}.gallery-lightbox-close{right:21px;top:21px}.gallery-lightbox-prev{left:16px;top:50%}.gallery-lightbox-next{right:16px;top:50%}.gallery-lightbox-position{position:absolute;bottom:20px;font-size:11px;letter-spacing:.1em;color:#d9e3d9}
@media(max-width:850px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-image:nth-child(7n+1),.gallery-image:nth-child(7n+6){grid-column:span 1;aspect-ratio:4/5}.gallery-image:nth-child(5n+1){grid-column:span 2;aspect-ratio:1.4}.gallery-intro{display:block}.gallery-count{display:block;margin-top:20px}.gallery-lightbox{padding:65px 52px}.hero{background-position:58% center}}@media(max-width:450px){.gallery-grid{gap:7px}.gallery-section{padding:70px 18px}.gallery-filters{gap:17px}.gallery-tab{font-size:10px}.gallery-note{flex-direction:column}.gallery-lightbox{padding:65px 16px}.gallery-lightbox-prev,.gallery-lightbox-next{top:auto;bottom:20px}.gallery-lightbox-position{bottom:33px}}

/* Interactive regional guide */
.poi-section{padding:100px max(6vw,22px);background:#f6f7f3;color:#1b2823}.poi-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:20px 0 35px}.poi-head h2{font-size:clamp(42px,5vw,74px);line-height:1.06;letter-spacing:-.05em;margin:0 0 20px}.poi-head p{max-width:600px;color:#637067;line-height:1.7}.poi-stat{font-size:48px;font-weight:650;line-height:1}.poi-stat span{display:block;font-size:10px;letter-spacing:.14em;color:#768178;padding-top:6px}.poi-toolbar{display:flex;gap:12px;margin-bottom:18px}.poi-toolbar label{display:flex;flex-direction:column;gap:7px;flex:1;font-size:10px;letter-spacing:.12em;color:#66746a}.poi-toolbar input,.poi-toolbar select{border:1px solid #d9dfd8;background:white;color:#1b2823;padding:13px 15px;font:inherit;font-size:14px;letter-spacing:0;border-radius:6px;width:100%}.poi-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:18px;align-items:stretch}.poi-layout #poiMap{height:560px;min-width:0;border-radius:10px;background:#e9efea;z-index:0}.poi-panel{height:560px;background:#fff;border:1px solid #e2e7df;border-radius:10px;overflow:auto}.poi-intro{padding:38px}.poi-intro span,.poi-detail-kicker{font-size:10px;letter-spacing:.15em;color:#67816e;text-transform:uppercase;font-weight:650}.poi-intro h3,.poi-detail h3{font-size:30px;letter-spacing:-.04em;line-height:1.1;margin:18px 0}.poi-intro p,.poi-detail p{color:#657168;line-height:1.6}.poi-cover{height:200px;background:#e8ece6;display:flex;align-items:center;justify-content:center;overflow:hidden}.poi-cover img{width:100%;height:100%;object-fit:cover}.poi-detail-body{padding:27px}.poi-km{margin-top:20px;border-top:1px solid #e3e9e1;padding-top:18px}.poi-km strong{font-size:25px}.poi-times{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.poi-times div{background:#f5f6f2;padding:12px 6px;border-radius:5px;text-align:center}.poi-times b{display:block;font-size:19px}.poi-times span{font-size:11px;color:#68736c}.poi-muted{font-size:12px;color:#89948b}.poi-spot{width:13px;height:13px;border:3px solid white;background:#253e30;border-radius:50%;box-shadow:0 0 0 2px #253e30}.poi-spot.home{background:#a4bc81;box-shadow:0 0 0 3px #233b2e;width:19px;height:19px}.poi-photo-credit{font-size:10px;color:#7e8981;padding-top:6px}.poi-note{font-size:12px;color:#7d887e;max-width:980px;margin-top:16px;line-height:1.5}.poi-detail a{font-size:12px;color:#305e42;text-decoration:underline}.poi-error{padding:30px;color:#69766c}@media(max-width:800px){.poi-section{padding:60px 18px}.poi-head{align-items:start}.poi-stat{font-size:30px}.poi-layout{grid-template-columns:1fr}.poi-layout #poiMap{height:390px}.poi-panel{height:auto;min-height:280px;max-height:550px}.poi-toolbar{flex-wrap:wrap}}


/* MAP HOTFIX — unified full-width Leaflet layout */
.poi-section{max-width:1600px;margin-inline:auto;overflow:hidden;isolation:isolate;padding-inline:clamp(20px,5vw,86px)}
.poi-head{max-width:100%;align-items:end}.poi-toolbar{max-width:100%;}
.poi-layout{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:18px!important;width:100%;min-width:0}
.poi-layout #poiMap{display:block!important;position:relative!important;isolation:isolate!important;width:100%!important;max-width:100%!important;min-width:0!important;height:540px!important;overflow:hidden!important;border:1px solid #d8e0d7;border-radius:14px;z-index:0}
.poi-layout #poiMap .leaflet-container{width:100%;height:100%;overflow:hidden}
.poi-layout #poiMap .leaflet-pane,.poi-layout #poiMap .leaflet-map-pane,.poi-layout #poiMap .leaflet-tile-pane,.poi-layout #poiMap .leaflet-overlay-pane,.poi-layout #poiMap .leaflet-marker-pane,.poi-layout #poiMap .leaflet-shadow-pane{position:absolute!important;top:0;left:0}
.poi-layout #poiMap .leaflet-tile{position:absolute!important;max-width:none!important;max-height:none!important;border:0!important;object-fit:fill!important}
.poi-layout #poiMap .leaflet-map-pane{z-index:400}.poi-layout #poiMap .leaflet-control-container{position:relative;z-index:800}
.poi-panel{height:auto!important;min-height:0!important;width:100%;max-width:100%;overflow:hidden!important;border-radius:14px}
.poi-detail{display:grid;grid-template-columns:minmax(220px,34%) minmax(0,1fr);align-items:stretch;min-height:250px}
.poi-cover{height:100%;min-height:250px}.poi-cover img{width:100%;height:100%;object-fit:cover}
.poi-detail-body{padding:30px clamp(22px,3vw,44px)}
.poi-photo-credit{padding:10px 18px}.poi-panel h3{margin:10px 0 12px}
.poi-spot{cursor:pointer}
@media(max-width:800px){.poi-layout #poiMap{height:420px!important}.poi-detail{grid-template-columns:1fr}.poi-cover{height:220px;min-height:220px}.poi-head{align-items:start}}
@media(max-width:480px){.poi-layout #poiMap{height:365px!important}.poi-head{display:block}.poi-stat{margin-top:18px}.poi-toolbar{display:grid;grid-template-columns:1fr}}
