/* Shared catalogue heading for Cartells, Cartes i menús and Taules de preus. */
/* Match Cartells to the full-width 5vw frame used by the format catalogues. */
.poster-catalog-step{
  width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:0!important;
  padding:32px 5vw 80px!important;
}
:is(.poster-catalog-step, .format-landing .format-step) > :is(.poster-catalog-heading, .format-catalog-heading){display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;align-items:start!important;gap:32px!important;margin:0 auto 8px!important;padding:34px 0 8px!important;text-align:left!important}
:is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro){width:100%!important;max-width:820px!important;margin:0!important;text-align:left!important}
:is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro) h1{min-height:0!important;margin:0!important;font-size:clamp(34px,4vw,58px)!important;line-height:1!important;letter-spacing:-.055em!important;text-align:left!important}
:is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro)>p{width:100%!important;max-width:760px!important;margin:12px 0 0!important;font-size:16px!important;line-height:1.45!important;text-align:left!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){display:inline-flex!important;min-height:48px!important;align-items:center!important;justify-content:center!important;align-self:start!important;gap:9px!important;margin-top:7px!important;padding:0 18px!important;border:1px solid #cfcac1!important;border-radius:10px!important;background:#fff!important;color:#181614!important;font:inherit!important;font-weight:750!important;cursor:pointer!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){flex-direction:row!important;direction:ltr!important;white-space:nowrap!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project) svg{order:-1!important;flex:none!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project) svg{width:20px!important;height:20px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project):hover{border-color:#8e8a82!important;background:#f5f4f0!important}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project) .project-open-plan-badge{display:none!important}

/* Keep the first catalogue control on the same grid line on all three pages. */
.poster-catalog-heading + .poster-filters,
.format-catalog-heading + .open-projects-cta + .format-tabs{
  width:min(1180px,calc(100% - 48px))!important;
  margin:28px auto 26px!important;
}

/* Keep the poster gallery inside the same column as its category tabs.
   Four calmer columns on desktop prevent the printable previews from becoming
   oversized after the catalogue frame was aligned with the other tools. */
.poster-catalog-step > .poster-format-grid{
  width:min(1180px,calc(100% - 48px))!important;
  margin-inline:auto!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  justify-content:stretch!important;
  gap:24px!important;
}

@media(max-width:980px){
  .poster-catalog-step > .poster-format-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:720px){.poster-catalog-step{padding:0 0 80px!important}:is(.poster-catalog-step,.format-landing .format-step)>:is(.poster-catalog-heading,.format-catalog-heading){grid-template-columns:minmax(0,1fr) auto!important;width:calc(100% - 28px)!important;gap:12px!important;padding-top:24px!important}:is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro) h1{font-size:clamp(30px,9vw,40px)!important}:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){width:46px!important;min-width:46px!important;padding:0!important;font-size:0!important}:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project) svg{width:21px!important;height:21px!important}.poster-catalog-heading + .poster-filters,.format-catalog-heading + .open-projects-cta + .format-tabs{width:calc(100% - 28px)!important;margin-top:28px!important}.poster-catalog-step>.poster-format-grid{width:calc(100% - 28px)!important;grid-template-columns:1fr!important;gap:18px!important}}

/* Shared vertical rhythm for all three tool-selection catalogues. */
:root{
  --catalog-heading-top:52px;
  --catalog-title-copy-gap:9px;
  --catalog-copy-tabs-gap:36px;
  --catalog-tabs-content-gap:28px;
}
.poster-catalog-step,
.format-landing .format-step{
  padding-top:0!important;
}
.poster-catalog-step{
  padding-right:0!important;
  padding-left:0!important;
}
:is(.poster-catalog-step,.format-landing .format-step)>
:is(.poster-catalog-heading,.format-catalog-heading){
  margin:0 auto!important;
  padding-top:var(--catalog-heading-top)!important;
  padding-bottom:0!important;
}
body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro)>p{
  margin:var(--catalog-title-copy-gap) 0 0!important;
}
:is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){
  margin-top:0!important;
}
.poster-catalog-heading+.poster-filters,
.format-catalog-heading+.open-projects-cta+.format-tabs{
  margin-top:var(--catalog-copy-tabs-gap)!important;
  margin-bottom:var(--catalog-tabs-content-gap)!important;
}
.format-landing-menus .format-tabs.format-visual-tabs,
.format-landing-prices .format-tabs.format-visual-tabs{
  margin-top:var(--catalog-copy-tabs-gap)!important;
  margin-bottom:var(--catalog-tabs-content-gap)!important;
}
.poster-catalog-step>.poster-format-grid{
  margin-top:0!important;
}

@media (min-width:721px) and (max-width:980px){
  :root{
    --catalog-heading-top:48px;
    --catalog-copy-tabs-gap:34px;
  }
}

@media(max-width:720px){
  :root{
    --catalog-heading-top:32px;
    --catalog-title-copy-gap:8px;
    --catalog-copy-tabs-gap:28px;
    --catalog-tabs-content-gap:24px;
  }
  body :is(.poster-catalog-step,.format-landing .format-step)>
  :is(.poster-catalog-heading,.format-catalog-heading){
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 46px!important;
    column-gap:14px!important;
    align-items:start!important;
    width:calc(100vw - 28px)!important;
    max-width:calc(100vw - 28px)!important;
    min-height:0!important;
    margin-inline:auto!important;
    padding:var(--catalog-heading-top) 0 0!important;
    box-sizing:border-box!important;
  }
  body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro){
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
  }
  body :is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){
    position:static!important;
    grid-column:2!important;
    grid-row:1!important;
    align-self:start!important;
    justify-self:end!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
  }
}

/* Desktop category rails must never behave like an inner scrolling frame. */
@media(min-width:621px){
  .poster-category-tabs,
  .poster-subcategory-tabs{
    overflow:visible!important;
    overscroll-behavior:auto!important;
    touch-action:pan-y!important;
  }
  .poster-subcategory-tabs{
    flex-wrap:wrap!important;
  }
}

/* Desktop catalogue geometry — one coordinate system for all selectors. */
@media(min-width:721px){
  body :is(.poster-catalog-step,.format-landing .format-step)>
  :is(.poster-catalog-heading,.format-catalog-heading){
    width:min(1180px,calc(100% - 48px))!important;
    max-width:1180px!important;
    margin:0 auto!important;
    padding:34px 0 0!important;
  }
  body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro) h1{
    margin:0!important;
    font-size:58px!important;
    line-height:1!important;
  }
  body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro)>p{
    margin:12px 0 0!important;
  }
  body :is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){
    margin-top:0!important;
  }
  body .poster-catalog-heading+.poster-filters,
  body .format-catalog-heading+.open-projects-cta+.format-tabs,
  body .format-landing-menus .format-tabs.format-visual-tabs,
  body .format-landing-prices .format-tabs.format-visual-tabs{
    width:min(1180px,calc(100% - 48px))!important;
    max-width:1180px!important;
    margin:22px auto 28px!important;
  }
}

/* One fixed anchor for the project action across every catalogue heading. */
body :is(.poster-catalog-step,.format-landing .format-step)>
:is(.poster-catalog-heading,.format-catalog-heading){
  position:relative!important;
  display:block!important;
}
body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro){
  padding-right:230px!important;
  box-sizing:border-box!important;
}
body :is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){
  position:absolute!important;
  top:34px!important;
  right:0!important;
  margin:0!important;
}
@media(max-width:720px){
  body :is(.poster-catalog-heading .poster-catalog-intro,.format-catalog-heading .intro){
    padding-right:60px!important;
  }
  body :is(.poster-catalog-heading .catalog-open-project,.format-catalog-heading .format-open-project){
    top:var(--catalog-heading-top)!important;
    right:0!important;
  }
}
