/* TAM 2027 preview. Artwork exported from the supplied Illustrator/PDF.
   Keep these rules scoped: the published 2025/2026 pages share the base CSS. */
:root {
  --tam27-header-height: clamp(72px, 5.729167vw, 110px);
  /* Height of the 2025/2026 fixed header that page templates still leave room for. */
  --tam27-legacy-offset: 51px;
  --tam27-deck: "forma-djr-deck", Arial, sans-serif;
}

.header-fitam.tam27-header {
  height: var(--tam27-header-height);
  /* Pull content up by the room it already leaves, so it sits right under this taller header. */
  margin: 0 0 calc(-1 * var(--tam27-legacy-offset));
  padding: 0;
}
.tam27-fixed { z-index: 1030; }
.tam27-bar {
  position: relative;
  height: var(--tam27-header-height);
  color: #fff;
  background: #fd60e8 url("../img/chrome/header-gradient.webp") center / 100% 100% no-repeat;
}
.tam27-bar img { display: block; width: 100%; height: auto; }
.tam27-brands {
  position: absolute;
  inset: 0 auto 0 3.958333%;
  width: 21.875%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.tam27-brands .tam27-foundation { width: 23.076923%; flex-shrink: 0; }
.tam27-brands .tam27-bhp { width: 36.842105%; }
.tam27-brands .tam27-present { width: 14.37247%; }
.tam27-festival {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(28.645833%, 550px);
  transform: translate(-50%, -50%);
}
.tam27-actions {
  position: absolute;
  right: 2.1875%;
  inset-block: 0;
  display: flex;
  gap: 1.041667vw;
  align-items: center;
}
.tam27-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max(32px, 1.927083vw);
  height: max(44px, 2.291667vw);
  border: 0;
  padding: 0;
  color: #fff;
  background: transparent;
  cursor: pointer;
}
.tam27-icon svg {
  width: clamp(18px, 1.25vw, 24px);
  height: auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: square;
}
.tam27-languages {
  display: flex;
  align-items: center;
  gap: .625vw;
  font: 400 clamp(16px, 1.145833vw, 22px)/1 var(--tam27-deck);
}
.tam27-languages a { color: #fff; text-decoration: none; }
.tam27-languages a:hover { text-decoration: underline; text-underline-offset: .2em; }
.tam27-menu-mobile { display: none; }
.tam27-bar a:focus-visible,
.tam27-icon:focus-visible,
.tam27-footer a:focus-visible,
.tam27-footer button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 5px;
}
.tam27-mobile-socials { display: flex; flex-wrap: wrap; gap: 12px; padding: 20px; }
/* The homepage's old Bootstrap spacing assumed a shorter header. */
.tam27-header ~ #banner-obras { padding-top: 0 !important; margin-top: var(--tam27-legacy-offset) !important; }

.tam27-footer {
  position: relative;
  padding: 3.4375vw 0 0;
  color: #fff;
  background: #fc60e8 url("../img/chrome/footer-gradient.webp?v=2") center top / 100% 100% no-repeat;
  font-family: var(--tam27-deck);
  font-weight: 400;
}
.tam27-footer img { display: block; max-width: 100%; height: auto; }
.tam27-partners {
  position: relative;
  width: 91.40625%;
  aspect-ratio: 1755 / 149;
  margin-left: 3.958333%;
}
.tam27-partner { position: absolute; top: .729167vw; }
.tam27-partner p {
  margin: 0;
  color: #fff;
  font: 700 clamp(7.5px, .572917vw, 11px)/1.357 var(--tam27-deck);
  text-transform: uppercase;
}
.tam27-partner img { width: 100%; }
.tam27-partner--festival { left: 0; top: 0; width: 8.433048%; }
.tam27-partner--support { left: 11.851852%; width: 25.754986%; }
.tam27-partner--sponsor { left: 40%; width: 8.603989%; }
.tam27-partner--media { left: 50.940171%; width: 38.005698%; }
.tam27-partner--tickets { left: 91.282051%; width: 8.717949%; }
.tam27-partner--support img { margin-top: 1.302083vw; }
.tam27-partner--sponsor img { margin-top: 1.71875vw; }
.tam27-partner--media img { margin-top: 1.666667vw; }
.tam27-partner--tickets img { margin-top: 2.239583vw; }
.tam27-tagline {
  width: 69.166667%;
  margin: 1.145833vw auto 0;
  /* Keep the background lettering visible across the full gradient. */
  filter: brightness(0) invert(1);
  opacity: .18;
}
.tam27-footer-info {
  display: grid;
  grid-template-columns: 41.2% 41.2% 17.6%;
  width: 65.104167%;
  margin: 2.03125vw 0 0 18.125%;
  font-family: "owners-narrow", "Arial Narrow", sans-serif;
  font-size: clamp(15px, 1.041667vw, 20px);
  line-height: 1.8;
}
.tam27-footer-info p { margin: 0; }
.tam27-footer-info a { color: #fff; text-decoration: none; }
.tam27-footer-info a:hover { text-decoration: underline; }
.tam27-footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 2.083333vw; }
.tam27-footer-links div { display: flex; flex-direction: column; }
.tam27-socials ul { list-style: none; padding: .520833vw 0 0; margin: 0; }
.tam27-socials li { padding: 0; margin: 0; line-height: 2.025; }
.tam27-socials a { display: flex; align-items: center; gap: .625vw; }
.tam27-socials i,
.tam27-socials svg { width: 1.145833vw; height: 1.145833vw; font-size: 1.145833vw; text-align: center; }

/* Reuse the real three-step subscription form inside the same gradient. */
.tam27-footer .newsletter2024 {
  background: transparent;
  padding: 3.854167vw 0 4.895833vw !important;
}
.tam27-footer .newsletter2024 > .container-custom { width: 50%; padding: 0; }
.tam27-footer .newsletter2024 > .container-custom > .row { margin: 0; }
.tam27-footer .newsletter2024 .col-xl-8 { flex: 0 0 100%; max-width: 100%; margin: 0; padding: 0; }
.tam27-footer .news1 > .row { margin: 0; align-items: center; }
.tam27-footer .news1 > .row > .col-6 { flex: 0 0 50%; max-width: 50%; padding: 0; }
.tam27-footer .news1 > .row > .col-6:first-child { flex-basis: 51.5625%; max-width: 51.5625%; }
.tam27-footer .news1 > .row > .col-6:last-child { flex-basis: 48.4375%; max-width: 48.4375%; }
.tam27-footer .news1 .titulo-seccion { margin: 0 !important; padding: 0 !important; }
.tam27-footer .newsletter2024 .titulo-seccion p {
  font-family: var(--tam27-deck);
  font-size: clamp(18px, 1.25vw, 24px);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.tam27-footer .newsletter2024 .form-check { padding-left: clamp(18px, 1.145833vw, 22px); margin-top: .3125vw !important; }
.tam27-footer .newsletter2024 .form-check-input { width: clamp(12px, .729167vw, 14px); height: clamp(12px, .729167vw, 14px); margin: .2em 0 0 clamp(-22px, -1.145833vw, -18px); }
.tam27-footer .newsletter2024 .form-check label { display: block; font: 400 clamp(11px, .677083vw, 13px)/1.4 var(--tam27-deck); }
.tam27-footer .newsletter2024 .form-check small { font-size: inherit; }
.tam27-footer .newsletter2024 .input-group { margin: 0 !important; }
.tam27-footer .newsletter2024 .input-group input {
  height: 3.697917vw;
  padding: .520833vw 1.197917vw;
  border: 0;
  background: #fff;
  color: #333;
  font: 400 16px/1.5 var(--tam27-deck);
  border-radius: 4vw 0 0 4vw;
}
.tam27-footer .newsletter2024 .input-group input::placeholder { color: #757575; }
.tam27-footer .newsletter2024 .input-group button {
  width: 4.010417vw;
  padding: 0;
  background: #ffa0f1;
  border: 0;
  color: #fff;
  border-radius: 0 4vw 4vw 0;
}
.tam27-footer .newsletter2024 .input-group button:hover { background: #e742d3; }
.tam27-footer .newsletter2024 .news2,
.tam27-footer .newsletter2024 .news3 { font-family: var(--tam27-deck); }
.tam27-footer .newsletter2024 .news2 .form-check label { font-size: 14px; line-height: 1.5; }
.tam27-footer .newsletter2024 .news2 .form-check { padding-left: 20px; }
.tam27-footer .newsletter2024 .news2 .form-check-input { width: 13px; height: 13px; margin-left: -20px; }
.tam27-footer .newsletter2024 .guardar button { color: #fff; background: #b72d9e; border-color: #b72d9e; }

@media (max-width: 767.98px) {
  :root { --tam27-header-height: 96px; --tam27-legacy-offset: 65px; }
  .tam27-brands { left: 16px; top: 0; bottom: auto; width: 164px; height: 54px; gap: 16px; }
  .tam27-brands .tam27-foundation { width: 58px; }
  .tam27-brands .tam27-bhp { width: 79px; }
  .tam27-brands .tam27-present { position: absolute; right: 0; bottom: 5px; display: block; width: 30px; }
  .tam27-festival { left: 50%; top: 72px; width: min(76%, 380px); transform: translate(-50%, -50%); }
  .tam27-actions { right: 12px; bottom: auto; height: 54px; gap: 5px; }
  .tam27-icon { width: 32px; height: 44px; }
  .tam27-icon svg { width: 20px; }
  .tam27-languages { font-size: 14px; gap: 5px; }
  .tam27-menu-desktop { display: none; }
  .tam27-menu-mobile { display: inline-flex; }
  .tam27-footer { padding-top: 32px; background-size: auto 100%; }
  .tam27-partners {
    position: static;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) minmax(0, .45fr);
    align-items: center;
    gap: 24px 18px;
    width: auto;
    margin: 0 20px;
    aspect-ratio: auto;
  }
  .tam27-partner { position: static; width: auto; }
  .tam27-partner p { font-size: 7.5px; line-height: 1.4; }
  .tam27-partner img { margin-top: 12px; }
  .tam27-partner--festival img { margin: 0; }
  .tam27-partner--media { grid-column: 1 / 3; }
  .tam27-partner--tickets { align-self: start; }
  .tam27-tagline { width: 90%; margin-top: 32px; }
  .tam27-footer-info {
    width: auto;
    margin: 24px 28px 0;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 28px 24px;
    font-size: 16px;
    line-height: 1.8;
  }
  .tam27-address { grid-column: 1 / -1; }
  .tam27-footer-links { gap: 24px; }
  .tam27-socials ul { padding-top: 8px; }
  .tam27-socials a { gap: 10px; }
  .tam27-socials i, .tam27-socials svg { width: 16px; height: 16px; font-size: 16px; }
  .tam27-footer .newsletter2024 { padding: 40px 28px !important; }
  .tam27-footer .newsletter2024 > .container-custom { width: 100%; }
  .tam27-footer .news1 > .row { gap: 20px; }
  .tam27-footer .news1 > .row > .col-6:first-child,
  .tam27-footer .news1 > .row > .col-6:last-child { flex-basis: 100%; max-width: 100%; }
  .tam27-footer .newsletter2024 .titulo-seccion p { font-size: 18px; }
  .tam27-footer .newsletter2024 .form-check { padding-left: 20px; margin-top: 8px !important; }
  .tam27-footer .newsletter2024 .form-check-input { width: 12px; height: 12px; margin-left: -20px; }
  .tam27-footer .newsletter2024 .form-check label { font-size: 12px; }
  .tam27-footer .newsletter2024 .input-group input { height: 48px; padding: 12px 20px; font-size: 16px; border-radius: 30px 0 0 30px; }
  .tam27-footer .newsletter2024 .input-group button { width: 54px; border-radius: 0 30px 30px 0; }
}
@media (max-width: 359.98px) {
  .tam27-brands { left: 12px; width: 154px; gap: 12px; }
  .tam27-brands .tam27-foundation { width: 54px; }
  .tam27-brands .tam27-bhp { width: 77px; }
  .tam27-actions { right: 8px; gap: 2px; }
  .tam27-icon { width: 28px; }
  .tam27-languages { font-size: 12px; gap: 3px; }
}
