:root {
  --lc-cream: #fdf8ec;
  --lc-sand: #f2e9cf;
  --lc-paper: #fffdf5;
  --lc-navy: #1d3557;
  --lc-deep-navy: #12233a;
  --lc-red: #e63b2e;
  --lc-blue: #1e93d6;
  --lc-green: #2fa05c;
  --lc-yellow: #f5b91e;
  --lc-brown: #b5502a;
  --lc-muted: #8a7f68;
  --lc-line: #e9ddba;
  --lc-display: "Bevan", Georgia, serif;
  --lc-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lc-radius: 16px;
}

.lc-desktop-nav,
.lc-desktop-week {
  display: none;
}

.lc-category-highlight {
  display: none;
}

.lc-join-options {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.lc-join-options button {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 1px 8px;
  width: 100%;
  padding: 10px 11px;
  border: 1.5px solid var(--lc-line);
  border-left: 4px solid var(--lc-blue);
  border-radius: 9px;
  color: var(--lc-navy);
  background: var(--lc-paper);
  cursor: pointer;
  text-align: left;
}

.lc-join-options button:nth-child(1) { border-left-color: var(--lc-red); }
.lc-join-options button:nth-child(2) { border-left-color: var(--lc-brown); }
.lc-join-options button:nth-child(3) { border-left-color: var(--lc-green); }
.lc-join-options span { grid-row: 1 / span 2; color: var(--lc-blue); font-size: 18px; }
.lc-join-options b { font: 800 12px/1.2 var(--lc-ui); }
.lc-join-options small { color: var(--lc-muted); font: 10.5px/1.35 var(--lc-ui); }

@media (min-width: 900px) {
  html {
    scroll-padding-top: 92px;
  }

  body {
    background:
      radial-gradient(circle at 12% 12%, rgba(245, 185, 30, 0.13), transparent 22rem),
      radial-gradient(circle at 88% 42%, rgba(30, 147, 214, 0.1), transparent 28rem),
      var(--lc-sand) !important;
  }

  button,
  a {
    -webkit-tap-highlight-color: transparent;
  }

  button:focus-visible,
  a:focus-visible,
  input:focus-visible,
  textarea:focus-visible {
    outline: 3px solid rgba(30, 147, 214, 0.55);
    outline-offset: 3px;
  }

  .lc-app-shell {
    width: calc(100% - 32px) !important;
    max-width: none !important;
    min-height: 100vh !important;
    padding-bottom: 0 !important;
    box-shadow: 0 0 70px rgba(29, 53, 87, 0.17) !important;
  }

  .lc-mobile-header,
  .lc-mobile-nav {
    display: none !important;
  }

  .lc-desktop-nav {
    position: sticky;
    top: 0;
    z-index: 60;
    display: grid;
    grid-template-columns: minmax(230px, 0.86fr) minmax(500px, 1.65fr) auto auto;
    align-items: center;
    gap: 18px;
    min-height: 78px;
    padding: 10px clamp(22px, 3vw, 48px);
    background: rgba(29, 53, 87, 0.98);
    border-bottom: 4px solid var(--lc-yellow);
    box-shadow: 0 10px 28px rgba(18, 35, 58, 0.18);
    backdrop-filter: blur(14px);
  }

  .lc-desktop-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 0;
    border: 0;
    color: var(--lc-cream);
    background: transparent;
    cursor: pointer;
    text-align: left;
  }

  .lc-desktop-brand img {
    width: 52px;
    height: 52px;
    flex: none;
    border: 2px solid var(--lc-yellow);
    border-radius: 50%;
    object-fit: cover;
    background: var(--lc-cream);
  }

  .lc-desktop-brand strong,
  .lc-desktop-brand small {
    display: block;
  }

  .lc-desktop-brand strong {
    font: 17px/1.06 var(--lc-display);
    letter-spacing: 0.3px;
    white-space: nowrap;
  }

  .lc-desktop-brand small {
    margin-top: 4px;
    color: #c8d5e4;
    font: 700 8px/1.2 var(--lc-ui);
    letter-spacing: 1.05px;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .lc-desktop-nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
  }

  .lc-desktop-nav-links button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 9px 12px;
    border: 0;
    border-radius: 9px;
    font: 800 11px/1 var(--lc-ui);
    letter-spacing: 0.45px;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background 160ms ease, color 160ms ease, transform 160ms ease;
  }

  .lc-desktop-nav-links button:hover {
    color: var(--lc-navy) !important;
    background: var(--lc-cream) !important;
    transform: translateY(-1px);
  }

  .lc-desktop-flags {
    display: flex;
    align-items: flex-start;
    gap: 3px;
    min-width: 70px;
  }

  .lc-desktop-flags span {
    display: block;
    width: 8px;
    height: 10px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }

  .lc-desktop-access {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border-radius: 9px;
    color: var(--lc-navy);
    background: var(--lc-yellow);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.13);
    font: 800 11px/1 var(--lc-ui);
    letter-spacing: 0.45px;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
  }

  .lc-desktop-access:hover {
    color: var(--lc-navy);
    background: #ffd363;
    text-decoration: none;
  }

  .lc-home {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    gap: 0 22px;
    max-width: none;
    margin: 0 auto;
    padding: 12px clamp(22px, 3vw, 42px) 50px;
  }

  .lc-home > .lc-section {
    grid-column: 1 / -1;
  }

  .lc-highlight-section,
  .lc-explore-section,
  .lc-week-section {
    padding: 26px 0 5px !important;
  }

  .lc-highlight-section > div:first-child {
    margin-bottom: 12px !important;
  }

  .lc-highlight-card {
    display: grid;
    grid-template-columns: minmax(310px, 0.82fr) minmax(0, 1.18fr);
    height: 320px;
    min-height: 320px;
    border-radius: 18px !important;
  }

  .lc-highlight-card > div:first-child {
    height: 100% !important;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
  }

  .lc-highlight-card > div:first-child img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .lc-highlight-card > div:last-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(26px, 4vw, 54px) !important;
    background: #1e93d6 !important;
  }

  .lc-highlight-card h3 {
    max-width: 780px;
    font-size: clamp(30px, 3.1vw, 48px) !important;
  }

  .lc-highlight-card p {
    max-width: 760px;
  }

  .lc-category-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .lc-category-card {
    grid-column: auto !important;
    min-height: 118px;
    padding: 18px 17px !important;
    align-items: flex-start !important;
    transition: transform 150ms ease, filter 150ms ease;
  }

  .lc-category-card:hover {
    transform: translateY(-3px);
    filter: saturate(1.08);
  }

  .lc-category-card svg {
    width: 26px;
    height: 26px;
  }

  .lc-category-card > span > span:first-child {
    font-size: 17px !important;
  }

  .lc-category-highlight {
    display: block;
    margin-top: 8px;
    overflow: hidden;
    color: rgba(253, 248, 236, 0.88);
    font: 700 10px/1.25 var(--lc-ui);
    letter-spacing: 0.15px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .lc-desktop-week {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(350px, 0.95fr);
    gap: 18px;
    align-items: stretch;
  }

  .lc-mobile-week-feature {
    display: none !important;
  }

  .lc-desktop-week-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .lc-desktop-week-list article {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 88px;
    padding: 12px 14px;
    border: 1.5px solid var(--lc-line);
    border-radius: 12px;
    background: var(--lc-paper);
    cursor: pointer;
    transition: border-color 150ms ease, transform 150ms ease;
  }

  .lc-desktop-week-list article:hover {
    border-color: var(--lc-navy);
    transform: translateY(-2px);
  }

  .lc-event-date {
    display: flex;
    width: 52px;
    height: 52px;
    flex: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    color: var(--lc-cream);
  }

  .lc-event-date strong {
    font: 18px/1 var(--lc-display);
  }

  .lc-event-date small {
    margin-top: 3px;
    font: 800 8px/1 var(--lc-ui);
    letter-spacing: 1px;
  }

  .lc-event-copy {
    min-width: 0;
    flex: 1;
  }

  .lc-event-copy strong,
  .lc-event-copy small {
    display: block;
  }

  .lc-event-copy strong {
    color: var(--lc-navy);
    font: 750 13.5px/1.25 var(--lc-ui);
  }

  .lc-event-copy small {
    margin-top: 4px;
    color: var(--lc-muted);
    font: italic 12px/1.35 Georgia, serif;
  }

  .lc-event-arrow {
    color: var(--lc-blue);
    font: 800 15px/1 var(--lc-ui);
  }

  .lc-spotify-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: 20px;
    border-radius: var(--lc-radius);
    background: #1c4d33;
    box-shadow: 0 5px 18px rgba(28, 77, 51, 0.22);
  }

  .lc-spotify-heading span,
  .lc-spotify-heading strong,
  .lc-spotify-heading small {
    display: block;
  }

  .lc-spotify-heading span {
    color: #9ed7b0;
    font: 800 9px/1 var(--lc-ui);
    letter-spacing: 1.6px;
  }

  .lc-spotify-heading strong {
    margin-top: 6px;
    color: var(--lc-cream);
    font: 24px/1.1 var(--lc-display);
  }

  .lc-spotify-heading small {
    margin: 3px 0 14px;
    color: #d8ead9;
    font: italic 12.5px/1.4 Georgia, serif;
  }

  .lc-spotify-card iframe {
    display: block;
    border-radius: 12px;
    background: var(--lc-deep-navy);
  }

  .lc-spotify-card > button {
    align-self: flex-start;
    margin-top: 12px;
    padding: 0;
    border: 0;
    color: var(--lc-yellow);
    background: transparent;
    font: 800 11px/1.3 var(--lc-ui);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
  }

  .lc-art-section {
    padding: 28px 0 6px !important;
  }

  .lc-art-section > div:first-child,
  .lc-art-section > p {
    padding-right: 0 !important;
    padding-left: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .lc-art-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px !important;
    overflow: visible !important;
    padding: 2px 0 10px !important;
  }

  .lc-art-card {
    width: auto !important;
    min-width: 0;
    transition: transform 150ms ease, box-shadow 150ms ease;
  }

  .lc-art-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(29, 53, 87, 0.11);
  }

  .lc-art-card > div:first-child {
    height: 168px !important;
  }

  .lc-newsletter-card {
    grid-column: 1;
    min-height: 100%;
    margin: 26px 0 4px !important;
    padding: 30px 32px !important;
  }

  .lc-newsletter-card > div:last-of-type {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lc-newsletter-card > div:last-of-type input:first-child,
  .lc-newsletter-card > div:last-of-type button,
  .lc-newsletter-card > div:last-of-type span {
    grid-column: 1 / -1;
  }

  .lc-join-card {
    grid-column: 2;
    display: flex;
    min-height: calc(100% - 22px);
    flex-direction: column;
    justify-content: center;
    margin: 26px 0 4px !important;
    padding: 30px 32px !important;
    border: 0 !important;
    border-radius: var(--lc-radius);
    background: #f5e6b7;
    box-shadow: inset 0 -4px 0 var(--lc-yellow);
  }

  .lc-join-card p {
    color: var(--lc-navy) !important;
    font-size: 17px !important;
  }

  .lc-join-options button {
    padding: 11px 13px;
    border-left: 5px solid var(--lc-blue);
  }

  .lc-join-options button:nth-child(1) { border-left-color: var(--lc-red); }
  .lc-join-options button:nth-child(2) { border-left-color: var(--lc-brown); }
  .lc-join-options button:nth-child(3) { border-left-color: var(--lc-green); }
  .lc-join-options button:hover { border-color: var(--lc-navy); transform: translateX(2px); }
  .lc-join-options span { font-size: 20px; }
  .lc-join-options b { font-size: 12.5px; }
  .lc-join-options small { font-size: 11px; }

  .lc-page {
    width: min(100% - 64px, 1600px);
    margin: 0 auto;
    padding: 34px 0 56px !important;
  }

  /* A radio e leitura e lista, nao grade de cartoes: nos 1600px das outras
     telas o "Tocar artista" atravessava a janela inteira e as faixas ficavam
     com o titulo de um lado e a duracao do outro, longe demais para ler. */
  .lc-page.lc-radio-tela {
    width: min(100% - 64px, 900px);
  }
  /* Album e EP em tres por linha vem do mobile; nesta largura cabem seis sem
     esticar capa nenhuma. */
  .lc-radio-tela [style*="repeat(3, 1fr)"] {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }

  .lc-page > h1 {
    font-size: 38px !important;
  }

  .lc-page > h1 + p {
    max-width: 720px;
    font-size: 15px !important;
  }

  .lc-card-grid {
    display: grid !important;
    align-items: stretch;
    gap: 14px !important;
  }

  .lc-card-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .lc-card-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .lc-profile-card,
  .lc-category-result-card,
  .lc-service-card {
    min-width: 0;
    height: 100%;
    transition: transform 150ms ease, box-shadow 150ms ease;
  }

  .lc-profile-card:hover,
  .lc-category-result-card:hover,
  .lc-service-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(29, 53, 87, 0.12);
  }

  .lc-gastro-categories-page > section,
  .lc-artists-page > section,
  .lc-services-page > section {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    overflow: hidden;
  }

  .lc-gastro-categories-page > section > h2,
  .lc-artists-page > section > h2,
  .lc-services-page > section > h2 {
    grid-column: 1 / -1;
  }

  .lc-gastro-categories-page > section > article,
  .lc-artists-page > section > article,
  .lc-services-page > section > article {
    grid-column: 1 / -1;
  }

  /* Destaque de gastronomia: a imagem fica sempre à esquerda, em quadrado
     estável, para que a troca de foto não empurre o restante da página. */
  .lc-gastro-categories-page > section > article {
    display: grid;
    grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
    min-height: 320px;
  }

  .lc-gastro-categories-page > section > article > div:first-child {
    height: 320px !important;
  }

  .lc-gastro-categories-page > section > article > div:nth-child(2) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 32px !important;
  }

  /* Todos os destaques de módulo seguem a mesma leitura do destaque da home:
     imagem fixa à esquerda e conteúdo ao lado, sem foto empilhada acima. */
  .lc-artists-page > section > article,
  .lc-services-page > section > article {
    display: grid;
    grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
    height: 320px;
    min-height: 320px;
    padding: 0 !important;
    overflow: hidden;
  }

  .lc-artists-page > section > article > div:first-child,
  .lc-services-page > section > article > div:first-child {
    height: 320px !important;
    min-height: 320px;
    background: transparent !important;
  }

  .lc-artists-page > section > article > div:first-child img,
  .lc-services-page > section > article > div:first-child img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .lc-artists-page > section > article > div:last-child,
  .lc-services-page > section > article > div:last-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 32px !important;
    background: #1e93d6 !important;
  }

  .lc-category-result-card > div:first-child {
    height: 210px !important;
  }

  .lc-category-result-card > div:first-child,
  .lc-artist-result-card > div:first-child {
    height: 170px !important;
  }

  .lc-agenda-groups {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px !important;
    align-items: start;
  }

  .lc-event-grid {
    gap: 10px !important;
  }

  .lc-event-row {
    height: 100%;
    min-height: 88px;
    transition: border-color 150ms ease, transform 150ms ease;
  }

  .lc-event-row:hover {
    border-color: var(--lc-navy) !important;
    transform: translateY(-2px);
  }

  .lc-archive-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px !important;
  }

  .lc-service-groups {
    gap: 30px !important;
  }

  .lc-detail-page {
    display: grid;
    grid-template-columns: minmax(340px, 0.82fr) minmax(0, 1.18fr);
    width: min(100%, 1540px);
    min-height: calc(100vh - 82px);
    margin: 0 auto;
  }

  .lc-detail-hero {
    position: sticky !important;
    top: 82px;
    min-height: calc(100vh - 82px);
    overflow: hidden;
    background: var(--lc-deep-navy);
  }

  .lc-detail-hero > div {
    height: calc(100vh - 82px) !important;
    min-height: 560px;
  }

  .lc-detail-hero img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: var(--lc-deep-navy);
  }

  .lc-detail-content {
    padding: 42px clamp(34px, 5vw, 68px) 64px !important;
  }

  .lc-detail-content > h1 {
    max-width: 760px;
    font-size: clamp(30px, 3.4vw, 46px) !important;
  }

  .lc-detail-content > p {
    max-width: 760px;
    font-size: 15.5px !important;
    line-height: 1.72 !important;
  }

  .lc-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px !important;
    overflow: visible !important;
  }

  .lc-gallery-grid img {
    width: 100% !important;
    height: 190px !important;
  }

  .lc-detail-spotify iframe {
    width: min(100%, 540px) !important;
  }

  .lc-detail-player audio {
    height: 36px !important;
  }

  .lc-app-shell > button[style*="position: fixed"],
  .lc-app-shell > div[style*="position: fixed"][style*="max-width: 430px"] {
    max-width: 560px !important;
  }
}

@media (min-width: 900px) and (max-width: 1120px) {
  .lc-desktop-nav {
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    padding-inline: 18px;
  }

  .lc-desktop-flags {
    display: none;
  }

  .lc-desktop-nav-links button {
    padding-inline: 8px;
    font-size: 9.5px;
  }

  .lc-desktop-brand small {
    display: none;
  }

  .lc-home {
    padding-inline: 24px;
  }

  .lc-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .lc-desktop-week {
    grid-template-columns: 1fr;
  }

  .lc-card-grid--4 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .lc-agenda-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lc-detail-page {
    grid-template-columns: minmax(300px, 0.7fr) minmax(0, 1.3fr);
  }
}
 .lc-offers-page { background: #fdf8ec; color: #26303c; min-height: 100vh; }
.lc-offers-shell { width: min(100% - 32px, 1180px); margin: auto; padding: 22px 0 60px; }
.lc-offers-top, .offers-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.lc-offers-brand { color: #1d3557; font: 24px Bevan, Georgia, serif; text-decoration: none; }
.lc-offers-back { color: #1d3557; font-weight: 700; }
.lc-offers-hero { margin: 42px 0 22px; max-width: 780px; }
.lc-offers-hero h1, .offers-head h2 { color: #1d3557; font: 38px/1.1 Bevan, Georgia, serif; margin: 8px 0; }
.lc-offers-hero p { color: #756e61; font-style: italic; font-size: 17px; }
.lc-offers-nav { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid #e9ddba; margin-bottom: 22px; }
.lc-offers-nav button { border: 0; background: transparent; padding: 12px 14px; color: #1d3557; font-weight: 800; cursor: pointer; }
.lc-offers-nav button.active { color: #c98a1e; border-bottom: 3px solid #f5b91e; }
.lc-offers-view { border: 1px solid #e9ddba; border-radius: 16px; background: #fffdf5; padding: 24px; }
.lc-offers-view.hidden, .offers-form.hidden { display: none; }
.offers-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.offers-form label { color: #1d3557; font: 800 11px -apple-system, sans-serif; letter-spacing: .7px; text-transform: uppercase; }
.offers-form input, .offers-form select, .offers-form textarea { display: block; width: 100%; margin-top: 6px; border: 1px solid #d8cdb0; border-radius: 8px; padding: 11px; font: 15px Georgia, serif; }
.offers-form textarea, .offers-form .wide { grid-column: 1 / -1; }
.offer-btn { border: 0; border-radius: 8px; background: #1d3557; color: #fffdf5; padding: 11px 15px; font-weight: 800; cursor: pointer; }
.offers-list { display: grid; gap: 10px; margin-top: 18px; }
.offer-card { display: flex; align-items: center; gap: 14px; justify-content: space-between; border: 1px solid #e9ddba; border-radius: 11px; padding: 14px; background: #fff; }
.offer-card img { width: 76px; height: 64px; border-radius: 8px; object-fit: cover; }
.offer-card h3 { margin: 0; color: #1d3557; }
.offer-card p { margin: 4px 0; color: #756e61; }
.offer-card small, .offers-note, .offers-empty { color: #756e61; }
.offer-link { color: #c0392b; border: 0; background: transparent; cursor: pointer; font-weight: 700; }
.offers-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.offers-metrics article { border-radius: 12px; padding: 18px; background: #1e93d6; color: #fff; }
.offers-metrics b { display: block; font: 30px Bevan, Georgia, serif; }
.offers-metrics span { font: 700 11px -apple-system, sans-serif; text-transform: uppercase; }
@media (max-width: 700px) { .lc-offers-shell { width: min(100% - 22px, 1180px); } .offers-form { display: block; } .offers-form label { display: block; margin-top: 12px; } .offers-metrics { grid-template-columns: 1fr 1fr; } .lc-offers-hero h1 { font-size: 30px; } }
