/* Toolbar global únic. Mateix component i dimensions a totes les rutes SPA.
   No depén de body.is-fira-home ni del tipus d'activitat. */
body .topbar{height:68px!important;min-height:68px!important;padding:8px clamp(15px,2.5vw,38px)!important;background:#fff!important;border-bottom:1px solid #e3eae5!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:clamp(12px,2vw,30px)!important}
body .topbar .brand{display:inline-flex!important;gap:9px!important;align-items:center!important;flex:0 0 auto!important;min-width:0!important}
body .topbar .brand-mark,body.is-fira-home .topbar .brand-mark{flex:0 0 57px!important;width:57px!important;height:41px!important;background:none!important;border:0!important}
body .topbar .brand-mark svg,body.is-fira-home .topbar .brand-mark svg{width:57px!important;height:37px!important}
body .topbar .brand-name strong,body.is-fira-home .topbar .brand-name strong{font-size:13px!important;line-height:1.12!important;letter-spacing:-.025em!important;font-weight:850!important;max-width:none!important}
body .topbar .brand-name small,body.is-fira-home .topbar .brand-name small{font-size:11px!important;line-height:1.12!important;letter-spacing:0!important}
body .topbar .desktop-nav{display:flex;align-items:center;justify-content:center;gap:5px!important;min-width:0;flex:1 1 auto}
body .topbar .desktop-nav>a,body .topbar .desktop-nav .public-types-menu>summary{font-size:13px!important;padding:10px 9px!important;white-space:nowrap!important;font-weight:680!important;border-radius:0!important}
body .topbar .top-actions{display:flex!important;gap:9px!important;align-items:center!important;justify-content:flex-end!important;flex:0 0 auto!important}
body .topbar .user-menu-trigger,body .topbar .mobile-menu-trigger{height:40px!important;min-height:40px!important;width:40px!important;min-width:40px!important;border-radius:11px!important;background:#f3f7f4!important}
body .topbar .top-actions form,body.is-fira-home .topbar .top-actions form{width:38px!important;min-width:38px!important;flex:0 0 38px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
body .topbar .top-actions .global-search-trigger{width:38px!important;height:38px!important}
body .topbar .top-actions form:not(:focus-within) #search-top{position:absolute!important;top:-9999px!important;opacity:0!important;width:1px!important;height:1px!important}
body .topbar .top-actions form:focus-within,body.is-fira-home .topbar .top-actions form:focus-within{width:min(250px,35vw)!important;min-width:0!important;flex:0 1 250px!important;position:relative!important;left:auto!important;right:auto!important;top:auto!important;background:#f8faf8!important;border:1px solid #cbded1!important;border-radius:12px!important;padding:0 10px!important}
body .topbar .top-actions form:focus-within #search-top{position:static!important;top:auto!important;opacity:1!important;display:block!important;width:100%!important;height:39px!important;background:transparent!important}
@media(max-width:1000px){
 body .topbar{height:64px!important;min-height:64px!important;padding:7px 15px!important}
 body .topbar .desktop-nav{display:none!important}
 body .topbar .brand-mark,body.is-fira-home .topbar .brand-mark{flex-basis:48px!important;width:48px!important;height:38px!important}
 body .topbar .brand-mark svg,body.is-fira-home .topbar .brand-mark svg{width:48px!important;height:34px!important}
 body .topbar .brand-name strong,body.is-fira-home .topbar .brand-name strong{font-size:12px!important}
 body .topbar .brand-name small,body.is-fira-home .topbar .brand-name small{font-size:10px!important}
 body .topbar .top-actions{margin-left:auto!important}
 body .topbar .mobile-menu-trigger{display:grid!important;place-items:center!important}
}
@media(max-width:420px){
 body .topbar{padding-inline:10px!important;gap:5px!important}
 body .topbar .brand{gap:5px!important}
 body .topbar .brand-mark,body.is-fira-home .topbar .brand-mark{flex-basis:38px!important;width:38px!important}
 body .topbar .brand-mark svg,body.is-fira-home .topbar .brand-mark svg{width:38px!important}
 body .topbar .brand-name strong,body.is-fira-home .topbar .brand-name strong{font-size:10px!important}
 body .topbar .brand-name small,body.is-fira-home .topbar .brand-name small{font-size:9px!important}
 body .topbar .top-actions{gap:3px!important}
 body .topbar .user-menu-trigger,body .topbar .mobile-menu-trigger{width:36px!important;min-width:36px!important}
 body .topbar .top-actions form:focus-within{position:absolute!important;left:9px!important;right:90px!important;top:9px!important;width:auto!important;z-index:100!important;background:#fff!important}
}


/* Cerca contextual: visible i expandida quan el toolbar té espai.
   En tauletes i mòbils es contrau a la lupa, amb expansió en focus. */
@media(min-width:1180px){
 body .topbar .top-actions form,
 body.is-fira-home .topbar .top-actions form,
 body .topbar .top-actions form:not(:focus-within){
  position:relative!important;display:flex!important;align-items:center!important;
  flex:0 1 clamp(165px,15vw,240px)!important;
  width:clamp(165px,15vw,240px)!important;min-width:145px!important;
  border:1px solid #dfe7e1!important;border-radius:12px!important;
  background:#f7f9f7!important;padding:0 9px!important;
 }
 body .topbar .top-actions form #search-top,
 body .topbar .top-actions form:not(:focus-within) #search-top,
 body.is-fira-home .topbar .top-actions form #search-top{
  position:static!important;display:block!important;top:auto!important;
  width:100%!important;height:39px!important;min-width:0!important;
  opacity:1!important;background:transparent!important;border:0!important;
  box-shadow:none!important;padding:0 5px!important;font-size:12px!important;
 }
 body .topbar .top-actions form .global-search-trigger{
  display:grid!important;flex:0 0 27px!important;width:27px!important;
  height:34px!important;place-items:center!important;
 }
 body .topbar .top-actions form:focus-within .global-search-trigger{display:grid!important}
}
@media(min-width:1001px) and (max-width:1179px){
 body .topbar .top-actions form:not(:focus-within){width:38px!important;min-width:38px!important}
}

/* Navegació de reserves: el mateix llenguatge visual que els altres controls. */
body .topbar #reservation-bell[hidden],body .topbar #reservation-bell-count[hidden]{display:none!important}
body .topbar #reservation-bell{position:relative;display:grid;place-items:center;flex:0 0 40px;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;margin:0;border:0!important;border-radius:12px;background:transparent!important;color:#243747!important;box-shadow:none!important;cursor:pointer;transition:background .18s ease}
body .topbar #reservation-bell:hover,body .topbar #reservation-bell:focus-visible{background:#f1f4f6!important}
body .topbar #reservation-bell:focus-visible{outline:2px solid #47657e;outline-offset:2px}
body .topbar #reservation-bell svg{display:block;width:22px;height:22px;stroke-width:1.8;fill:none}
body .topbar #reservation-bell-count{position:absolute;top:1px;right:0;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:#294b65;color:white;font-size:10px;font-weight:750;line-height:1;border:2px solid #fff;box-sizing:content-box}
@media(max-width:650px){body .topbar #reservation-bell{flex:0 0 36px;width:36px;min-width:36px;height:40px;margin:0}body .topbar #reservation-bell svg{width:21px;height:21px}}

/* Contracte global: toolbar realment FIXA al capdamunt, en totes les rutes.
   L'espai del body evita que tape la primera línia del contingut. */
:root{--fira-fixed-toolbar-height:68px;scroll-padding-top:calc(var(--fira-fixed-toolbar-height) + 12px)}
body{padding-top:var(--fira-fixed-toolbar-height)!important}
body>.topbar{
 position:fixed!important;inset-block-start:0!important;top:0!important;inset-inline:0!important;
 left:0!important;right:0!important;width:100%!important;max-width:100vw!important;
 z-index:2000!important;margin:0!important;
 padding-top:8px!important;padding-bottom:8px!important;
 background:#fff!important;transform:none!important;isolation:auto!important;
}
body>.topbar :is(.desktop-nav,.top-actions,.brand){min-width:0}
body>.topbar :is(.public-types-menu,.user-menu){z-index:2001}
#main :is([id],section[id],article[id]){scroll-margin-top:calc(var(--fira-fixed-toolbar-height) + 12px)}
@media(max-width:1000px){:root{--fira-fixed-toolbar-height:64px}}
@supports (padding-top:env(safe-area-inset-top)){
 body>.topbar{padding-top:max(8px,env(safe-area-inset-top))!important;height:calc(var(--fira-fixed-toolbar-height) + max(0px,env(safe-area-inset-top) - 8px))!important}
 body{padding-top:calc(var(--fira-fixed-toolbar-height) + max(0px,env(safe-area-inset-top) - 8px))!important}
}

/* iOS/Safari: la zona segura superior no es pot sumar una segona vegada
   a l'alçària de la toolbar. Evita la banda buida damunt del logotip. */
@media(max-width:1000px){
 :root{--fira-fixed-toolbar-height:64px!important}
 html{scroll-padding-top:76px!important}
 body{padding-top:64px!important}
 body>.topbar{
  box-sizing:border-box!important;top:0!important;inset-block-start:0!important;
  height:64px!important;min-height:64px!important;max-height:64px!important;
  padding-top:7px!important;padding-bottom:7px!important;
  align-items:center!important;
 }
}

/* Toolbar · Activitats: icones SVG uniformes, sense emoji ni fons inconsistents. */
body .topbar .desktop-nav .public-types-list {
  width: min(280px, calc(100vw - 24px));
  padding: 6px;
  border: 1px solid #e2e7ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 38px #152a3c1c;
}
body .topbar .desktop-nav .public-types-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 40px;
  padding: 7px 11px;
  border-radius: 8px;
  color: #29394c;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.3;
}
body .topbar .desktop-nav .public-types-list a:hover,
body .topbar .desktop-nav .public-types-list a:focus-visible {
  background: #f0f3f7;
  color: #213a57;
}
body .topbar .desktop-nav .public-types-list .activity-menu-icon {
  display: block;
  width: 23px;
  height: 23px;
  min-width: 23px;
  flex: 0 0 23px;
  color: #354a61;
  fill: none;
  stroke: currentColor;
}

/* Correcció: els SVG del desplegable no poden heretar la mida global del toolbar. */
body .topbar .desktop-nav .public-types-menu .public-types-list a > svg.activity-menu-icon {
  box-sizing: border-box !important;
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  flex: 0 0 22px !important;
  padding: 0 !important;
  margin: 0 !important;
  stroke-width: 1.8 !important;
  overflow: visible !important;
}
body .topbar .desktop-nav .public-types-menu .public-types-list a {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  min-height: 42px !important;
  height: auto !important;
  padding: 8px 11px !important;
}

/* Accés ràpid als favorits dins la toolbar global, entre campana i usuari. */
body .topbar .top-actions #toolbar-favorites{
 display:grid!important;place-items:center!important;box-sizing:border-box!important;
 flex:0 0 40px!important;width:40px!important;min-width:40px!important;
 height:40px!important;min-height:40px!important;
 margin:0!important;padding:0!important;border:0!important;border-radius:12px!important;
 background:transparent!important;color:#263e58!important;
 box-shadow:none!important;text-decoration:none!important;
 transition:background .18s ease;
}
body .topbar .top-actions #toolbar-favorites:hover{background:#f2f5f8!important}
body .topbar .top-actions #toolbar-favorites:focus-visible{outline:2px solid #47657e!important;outline-offset:2px!important}
body .topbar .top-actions #toolbar-favorites svg{
 display:block!important;width:22px!important;height:22px!important;
 fill:none!important;stroke:currentColor!important;stroke-width:1.8!important
}
body .topbar .top-actions #toolbar-favorites.active svg{fill:#e8edf3!important;stroke:#244a67!important}
@media(max-width:650px){
 body .topbar .top-actions #toolbar-favorites{
  flex-basis:36px!important;width:36px!important;min-width:36px!important;height:40px!important
 }
 body .topbar .top-actions #toolbar-favorites svg{width:21px!important;height:21px!important}
}

/* Cerca global: estat explícit; cap camp ocult mentre el formulari està obert. */
body .topbar #global-search.is-open{position:relative!important;width:min(270px,42vw)!important;min-width:0!important;flex:0 1 270px!important}
body .topbar #global-search.is-open #search-top,
body .topbar .top-actions #global-search.is-open:not(:focus-within) #search-top{
 position:static!important;display:block!important;visibility:visible!important;top:auto!important;left:auto!important;opacity:1!important;width:100%!important;height:38px!important;min-width:0!important;pointer-events:auto!important
}
@media(max-width:1000px){body .topbar #global-search.is-open{width:min(250px,44vw)!important;flex:1 1 180px!important}}
@media(max-width:480px){body .topbar #global-search.is-open{width:min(190px,40vw)!important;flex:1 1 140px!important}}
