/* Cordel D' Prata · v2 — Feiras do livro */

  [hidden]{display:none !important}

  /* ── abertura ── */
  .fr-hero{
    position:relative;isolation:isolate;overflow:hidden;background:var(--paper);
    padding-block:calc(var(--header-h,130px) + clamp(30px,3.6vw,54px)) 0;
  }
  /* fundo: papel quente, pontos e um clarão vermelho por trás da banca */
  .fr-hero-fundo{
    position:absolute;inset:0;z-index:-1;
    background:
      radial-gradient(120% 90% at 82% 18%,rgba(176,25,31,.16),transparent 58%),
      radial-gradient(80% 70% at 8% 100%,rgba(176,25,31,.07),transparent 60%),
      linear-gradient(180deg,var(--paper-2),var(--paper) 72%);
  }
  .fr-hero-fundo::after{
    content:"";position:absolute;inset:0;opacity:.5;
    background-image:radial-gradient(circle at 1px 1px,rgba(22,18,15,.16) 1px,transparent 0);
    background-size:24px 24px;
    -webkit-mask-image:linear-gradient(180deg,#000,transparent 78%);
    mask-image:linear-gradient(180deg,#000,transparent 78%);
  }
  .fr-hero-inner{
    display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:clamp(24px,4vw,64px);align-items:end;
    padding-bottom:clamp(26px,3vw,42px);
  }
  .fr-hero h1{margin:14px 0 0;font-size:clamp(2.2rem,4.6vw,3.6rem)}
  .fr-hero .lead{margin-top:16px;max-width:40ch}
  .fr-hero .eyebrow,.fr-hero h1,.fr-hero .lead{animation:frSobe .8s var(--ease) both}
  .fr-hero .eyebrow{animation-delay:.04s}
  .fr-hero h1{animation-delay:.12s}
  .fr-hero .lead{animation-delay:.2s}
  @keyframes frSobe{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

  /* ── a banca ── */
  .fr-banca-hero{
    position:relative;display:flex;align-items:flex-end;justify-content:center;
    gap:clamp(8px,1.2vw,18px);height:clamp(180px,16vw,244px);padding-bottom:38px;
  }
  /* cada capa é um link para a ficha; o <a> não entra na conta do flex */
  .fr-banca-hero a{display:contents}
  .fr-banca-hero img{
    width:auto;height:100%;flex:0 0 auto;
    filter:drop-shadow(0 18px 22px rgba(22,18,15,.32)) drop-shadow(0 2px 3px rgba(22,18,15,.18));
    transform:translate(var(--px,0),var(--py,0)) rotate(calc((var(--i) - 1.5) * 1.1deg));
    transition:transform .9s var(--ease),filter .5s var(--ease);
    animation:frCapa .8s var(--ease) both;
    animation-delay:calc(.3s + var(--i) * .09s);
  }
  .fr-banca-hero img:nth-child(even){height:93%}
  .fr-banca-hero img:hover{
    filter:drop-shadow(0 28px 32px rgba(22,18,15,.38)) drop-shadow(0 2px 3px rgba(22,18,15,.2));
    transform:translate(var(--px,0),calc(var(--py,0) - 10px)) rotate(0);
  }
  @keyframes frCapa{from{opacity:0;transform:translateY(26px) rotate(0)}to{opacity:1}}
  .fr-banca-tabua{
    position:absolute;left:1%;right:1%;bottom:28px;height:10px;border-radius:3px;
    background:linear-gradient(180deg,#D9C7B2,#B99B7A);
    box-shadow:0 12px 22px -12px rgba(22,18,15,.55),inset 0 1px 0 rgba(255,255,255,.5);
    animation:frSobe .7s var(--ease) .25s both;
  }
  .fr-banca-tabua::after{
    content:"";position:absolute;left:1%;right:1%;top:10px;height:16px;
    background:radial-gradient(60% 100% at 50% 0,rgba(22,18,15,.28),transparent 70%);
  }
  .fr-banca-nota{
    position:absolute;right:2%;bottom:0;
    font-family:var(--font-hand);font-size:1.12rem;color:var(--red);transform:rotate(-2deg);
    animation:frSobe .7s var(--ease) 1s both;
  }

  /* ── cidades a desfilar ── */
  .fr-cidades{
    overflow:hidden;border-top:1px solid var(--line);
    padding-block:12px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  }
  .fr-cidades-fita{
    display:flex;align-items:center;gap:clamp(16px,2vw,30px);width:max-content;
    animation:frDesfila 38s linear infinite;
  }
  .fr-cidades:hover .fr-cidades-fita{animation-play-state:paused}
  .fr-cidades span{
    font-family:var(--font-display);font-size:clamp(1rem,1.4vw,1.24rem);font-weight:600;
    letter-spacing:-.01em;color:var(--ink-soft);white-space:nowrap;
  }
  .fr-cidades i{color:var(--red);font-style:normal;font-size:.7rem;opacity:.7}
  @keyframes frDesfila{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

  /* cartão de estado: uma pastilha só resulta numa linha — a partir daí
     vira cartão, para não ficar um balão alto de cantos redondos          */
  .fr-estado{
    display:grid;grid-template-columns:auto minmax(0,1fr);
    gap:6px clamp(12px,1.4vw,16px);align-items:center;
    margin-top:clamp(22px,2.6vw,34px);padding:14px clamp(16px,1.8vw,20px);
    border-radius:var(--radius);background:var(--card);
    border:1px solid var(--line);box-shadow:var(--shadow-xs);
    max-width:min(100%,520px);
    animation:frEntra .7s var(--ease) .2s both;
  }
  .fr-estado p{margin:0;font-size:.92rem;line-height:1.45;color:var(--ink-soft)}
  .fr-estado b{color:var(--ink);font-weight:600}
  .fr-estado .link-arrow{
    grid-column:2;justify-self:start;
    border:0;background:none;padding:0;cursor:pointer;font:inherit;
    color:var(--red);font-weight:600;font-size:.88rem;white-space:nowrap;
  }
  @keyframes frEntra{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  /* entre feiras: um apontamento à mão, sem cartão */
  .fr-estado.fr-estado--pausa{
    display:flex;align-items:flex-start;gap:10px;padding:0;
    background:none;border:0;box-shadow:none;border-radius:0;max-width:40ch;
  }
  .fr-estado--pausa i{flex:0 0 auto;margin-top:.5em;color:var(--red);font-style:normal;font-size:.8rem}
  .fr-estado.fr-estado--pausa p{font-family:var(--font-hand);font-size:1.4rem;line-height:1.2;color:var(--red)}

  .fr-live{
    display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;align-self:start;
    padding:.3em .78em;border-radius:999px;background:var(--red);color:#fff;
    font-family:var(--font-nav);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  }
  .fr-live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:frPulsa 1.8s ease-in-out infinite}
  @keyframes frPulsa{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
  .fr-etiqueta{
    flex:0 0 auto;align-self:start;padding:.3em .78em;border-radius:999px;
    font-family:var(--font-nav);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  }
  .fr-etiqueta--proxima{background:var(--red-soft);color:var(--red)}
  .fr-etiqueta--passada{background:rgba(22,18,15,.08);color:var(--muted)}

  /* ── cabeçalho do calendário, com a procura ── */
  .fr-cabeca{
    display:flex;align-items:center;justify-content:space-between;
    gap:clamp(16px,2.4vw,36px);flex-wrap:wrap;margin-bottom:clamp(18px,2.2vw,28px);
  }
  .fr-procura{
    display:flex;align-items:center;gap:12px;width:min(100%,420px);flex:1 1 280px;max-width:420px;
    padding:.7em 1.1em;border-radius:999px;background:#fff;border:1px solid var(--line-strong);
    transition:border-color .3s ease,box-shadow .3s ease;
  }
  .fr-procura:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(176,25,31,.12)}
  .fr-procura svg{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
  .fr-procura input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:.94rem;color:var(--ink);outline:none}

  .fr-resultados{
    width:min(100%,640px);margin:0 0 clamp(18px,2.2vw,26px) auto;padding:14px;
    border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);
    animation:frEntra .4s var(--ease) both;
  }
  .fr-resultado:hover{background:var(--paper-2)}
  .fr-nresultados{margin:0 0 8px;font-size:.82rem;color:var(--muted)}
  .fr-nresultados b{color:var(--ink);font-weight:600}
  .fr-nada{margin:0;font-size:.9rem;color:var(--muted)}
  .fr-nada a{color:var(--red);border-bottom:1px solid rgba(176,25,31,.26)}
  .fr-resultado{
    display:flex;align-items:center;gap:14px;width:100%;text-align:left;
    padding:10px 12px;border-radius:var(--radius-xs);
    transition:background .25s ease;
  }
  .fr-resultado:hover{background:#fff}
  .fr-resultado.is-passado{opacity:.55}
  /* a cidade pesa mais: a feira inteira aparece primeiro, como uma linha própria */
  .fr-resultado--feira{background:var(--paper-2);margin-bottom:6px}
  .fr-resultado--feira .fr-resultado-texto b{color:var(--red)}
  .fr-resultado-data{display:grid;justify-items:center;flex:0 0 auto;width:38px}
  .fr-resultado-data b{font-family:var(--font-display);font-size:1.2rem;font-weight:600;line-height:1;color:var(--red)}
  .fr-resultado-data small{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
  .fr-resultado-texto{display:grid;gap:2px;flex:1;min-width:0}
  .fr-resultado-texto b{font-size:.92rem;font-weight:600;line-height:1.25}
  .fr-resultado-texto small{font-size:.8rem;color:var(--muted)}

  /* ── separadores das feiras ── */
  .fr-programa-band{padding-block:clamp(34px,4vw,60px) clamp(44px,5vw,76px);background:var(--paper-2);border-block:1px solid var(--line)}
  .fr-tabs{
    display:flex;gap:8px;padding-bottom:4px;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  }
  .fr-tabs::-webkit-scrollbar{display:none}
  .fr-tab{
    flex:0 0 auto;display:grid;justify-items:start;gap:2px;position:relative;
    padding:12px 18px;border-radius:var(--radius-xs);
    border:1px solid var(--line-strong);background:#fff;color:var(--ink-soft);
    transition:border-color .25s ease,background .25s ease,color .25s ease,transform .4s var(--ease);
  }
  .fr-tab:hover{border-color:rgba(176,25,31,.4);transform:translateY(-2px)}
  .fr-tab b{font-size:.98rem;font-weight:600;letter-spacing:-.01em}
  .fr-tab small{font-size:.76rem;color:var(--muted)}
  .fr-tab.is-on{background:var(--red);border-color:var(--red);color:#fff}
  .fr-tab.is-on small{color:rgba(255,255,255,.78)}
  .fr-tab.is-passada{opacity:.62}
  .fr-tab.is-passada.is-on{opacity:1}
  .fr-ponto{
    position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;
    background:var(--red);animation:frPulsa 1.8s ease-in-out infinite;
  }
  .fr-tab.is-on .fr-ponto{background:#fff}
  .fr-visto{position:absolute;top:8px;right:10px;font-style:normal;font-size:.7rem;color:var(--muted)}
  .fr-tab.is-on .fr-visto{color:rgba(255,255,255,.7)}

  /* ── painel da feira ── */
  .fr-painel{margin-top:clamp(20px,2.4vw,30px)}
  .fr-painel.is-in{animation:frEntra .45s var(--ease) both}
  .fr-painel-head{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,52px);
    align-items:start;padding-bottom:clamp(20px,2.4vw,30px);border-bottom:1px solid var(--line);
  }
  .fr-painel-head h2{margin:0;font-size:clamp(1.5rem,2.6vw,2.15rem);letter-spacing:-.022em}
  .fr-painel-head > div > p{margin:8px 0 0;font-size:.92rem;color:var(--muted)}
  .fr-detalhes{display:grid;gap:10px;margin:0}
  .fr-detalhes div{display:grid;grid-template-columns:108px minmax(0,1fr);gap:12px;align-items:baseline}
  .fr-detalhes dt{
    font-family:var(--font-nav);font-size:.68rem;font-weight:700;letter-spacing:.08em;
    text-transform:uppercase;color:var(--muted);
  }
  .fr-detalhes dd{margin:0;font-size:.88rem;line-height:1.45;color:var(--ink-soft)}
  .fr-detalhes a{color:var(--red)}

  /* ── dias ── */
  .fr-dias{
    display:flex;gap:8px;margin-top:clamp(22px,2.6vw,32px);
    padding-block:4px 6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  }
  .fr-dias::-webkit-scrollbar{display:none}
  .fr-dia{
    flex:0 0 auto;display:flex;align-items:baseline;gap:7px;
    padding:9px 14px;border-radius:999px;
    border:1px solid var(--line-strong);background:#fff;color:var(--ink-soft);
    transition:border-color .25s ease,background .25s ease,color .25s ease;
  }
  .fr-dia:hover{border-color:rgba(176,25,31,.4)}
  .fr-dia b{font-size:1rem;font-weight:600;line-height:1}
  .fr-dia small{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  .fr-dia em{
    font-style:normal;font-size:.68rem;font-weight:700;
    padding:.1em .45em;border-radius:999px;background:var(--red-soft);color:var(--red);
  }
  .fr-dia.is-on{background:var(--red);border-color:var(--red);color:#fff}
  .fr-dia.is-on small{color:rgba(255,255,255,.78)}
  .fr-dia.is-on em{background:rgba(255,255,255,.9);color:var(--red)}
  .fr-dia.is-passado{opacity:.5}
  .fr-dia.is-passado.is-on{opacity:1}

  .fr-dia-titulo{
    margin:clamp(24px,2.8vw,34px) 0 10px;
    font-family:var(--font-nav);font-size:.74rem;font-weight:700;letter-spacing:.09em;
    text-transform:uppercase;color:var(--muted);
  }
  .fr-sessao{
    display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:clamp(14px,2vw,26px);
    align-items:center;padding:clamp(14px,1.8vw,20px) 0;border-top:1px solid var(--line);
  }
  .fr-sessao:last-child{border-bottom:1px solid var(--line)}
  .fr-sessao time{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--red);letter-spacing:-.01em}
  .fr-sessao h4{margin:6px 0 0;font-size:1.06rem;line-height:1.25;letter-spacing:-.015em}
  .fr-sessao p{margin:4px 0 0;font-size:.86rem;color:var(--muted)}
  .fr-tipo{
    font-family:var(--font-nav);font-size:.64rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
    padding:.24em .6em;border-radius:999px;background:var(--red-soft);color:var(--red);white-space:nowrap;
  }
  .fr-tipo--apr{background:rgba(31,95,83,.1);color:#1F5F53}
  .fr-tipo--con{background:rgba(107,62,158,.1);color:#6B3E9E}
  .fr-tipo--inf{background:rgba(138,90,18,.11);color:#8A5A12}
  .fr-ics{
    display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;
    padding:.55em 1em;border-radius:999px;border:1px solid var(--line-strong);background:#fff;
    font-family:var(--font-nav);font-size:.76rem;font-weight:600;color:var(--ink-soft);
    transition:border-color .25s ease,color .25s ease,background .25s ease;
  }
  .fr-ics svg{width:15px;height:15px}
  .fr-ics:hover{border-color:var(--red);color:var(--red)}
  .fr-ics.is-ok{background:var(--red);border-color:var(--red);color:#fff}
  .fr-sem-programa{margin-top:26px;color:var(--muted);font-size:.94rem}
  .fr-sem-programa a{color:var(--red);border-bottom:1px solid rgba(176,25,31,.26)}

  /* ── edições passadas ── */
  .fr-passadas{padding-block:clamp(48px,5.6vw,86px);background:var(--paper)}
  .fr-passadas-head{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(24px,4vw,60px);flex-wrap:wrap}
  .fr-passadas-head h2{margin:12px 0 0;font-size:clamp(1.6rem,2.8vw,2.3rem)}
  .fr-passadas-head > div > p{margin:14px 0 0;color:var(--ink-soft);max-width:46ch}
  .fr-numeros{display:flex;gap:clamp(20px,3vw,44px);flex-wrap:wrap}
  .fr-numeros span{display:grid}
  .fr-numeros b{
    font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1;
    font-size:clamp(1.9rem,3vw,2.6rem);color:var(--red);
  }
  .fr-numeros small{margin-top:4px;font-size:.82rem;color:var(--muted)}
  /* ── fotografias reais: a legenda fica por baixo, a vermelho e à mão ── */
  .fr-foto{position:relative;margin:0;display:grid;gap:0;background:none}
  .fr-foto>img{display:block;width:100%;aspect-ratio:var(--ratio,4/3);object-fit:cover;border-radius:var(--radius);background:var(--paper-2)}
  .fr-foto figcaption{
    margin-top:10px;font-family:var(--font-nav);font-size:.72rem;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;line-height:1.4;color:var(--red);
  }
  .fr-foto figcaption small{
    display:block;margin-top:3px;font-family:var(--font-hand);font-size:1.08rem;font-weight:500;
    letter-spacing:0;text-transform:none;opacity:.9;transform:rotate(-1deg);transform-origin:left;
  }
  /* o vídeo: a miniatura entra logo; o YouTube só quando alguém carrega */
  .fr-video{margin-top:clamp(28px,3.2vw,44px)}
  .fr-play{
    position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;cursor:pointer;
    overflow:hidden;border-radius:var(--radius);background:var(--ink);isolation:isolate;
  }
  .fr-play img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
  .fr-play:hover img{transform:scale(1.03)}
  .fr-play::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(22,18,15,.42),transparent 55%)}
  .fr-play-botao{
    position:absolute;left:50%;top:50%;z-index:1;width:78px;height:78px;margin:-39px 0 0 -39px;
    display:grid;place-items:center;border-radius:50%;background:var(--red);color:#fff;
    box-shadow:0 16px 34px -12px rgba(176,25,31,.75);transition:transform .4s var(--ease);
  }
  .fr-play:hover .fr-play-botao{transform:scale(1.08)}
  .fr-play-botao svg{width:30px;height:30px;margin-left:4px}
  .fr-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:var(--radius);background:#000}
  .fr-galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px);margin-top:clamp(14px,1.8vw,22px)}

  /* ── na banca ── */
  .fr-banca{background:var(--paper-2);border-top:1px solid var(--line)}
  .fr-banca-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
  .fr-banca-grid h2{margin:12px 0 0;font-size:clamp(1.6rem,2.8vw,2.3rem)}
  .fr-banca-grid p{margin:16px 0 0;color:var(--ink-soft);max-width:52ch}
  .fr-banca-acoes{display:flex;align-items:center;gap:clamp(14px,2vw,24px);flex-wrap:wrap;margin-top:26px}

  @media (max-width:1000px){
    .fr-painel-head,.fr-banca-grid{grid-template-columns:1fr}
    .fr-galeria{grid-template-columns:1fr;max-width:460px}
  }
  @media (max-width:760px){
    .fr-estado{grid-template-columns:1fr;gap:10px;max-width:none}
    .fr-estado .fr-live,.fr-estado .fr-etiqueta{justify-self:start}
    .fr-estado .link-arrow{grid-column:1}
    .fr-sessao{grid-template-columns:64px minmax(0,1fr);row-gap:12px}
    .fr-ics{grid-column:2}
    .fr-detalhes div{grid-template-columns:96px minmax(0,1fr);gap:10px}
  }

  @media (max-width:1000px){
    .fr-hero-inner{grid-template-columns:1fr;gap:34px;align-items:start}
    .fr-banca-hero{height:clamp(170px,32vw,220px);justify-content:flex-start;overflow:hidden;padding-bottom:18px}
    .fr-banca-tabua{bottom:8px}
    /* a nota à mão ficaria cortada pelo overflow da banca; sai em ecrã pequeno */
    .fr-banca-nota{display:none}
  }
  @media (max-width:640px){
    .fr-banca-hero{height:clamp(150px,38vw,190px);gap:6px}
    .fr-banca-hero img:nth-child(n+5){display:none}
    .fr-cidades span{font-size:1rem}
  }
  @media (prefers-reduced-motion:reduce){
    .fr-hero .eyebrow,.fr-hero h1,.fr-hero .lead,.fr-banca-hero img,
    .fr-banca-tabua,.fr-banca-nota,.fr-estado,.fr-painel.is-in{animation:none}
    .fr-cidades-fita{animation:none}
    .fr-live i,.fr-ponto{animation:none}
  }
