/* Festa por Lá — festas e eventos na Europa. Modelo: cartaz de festival.
   Big Shoulders Display (títulos, datas, UI) + Bricolage Grotesque (texto). Fucsia, laranja e roxo sobre creme. */
@font-face{font-family:"Big Shoulders Display";font-weight:800;font-style:normal;font-display:swap;src:url(/assets/fonts/big-shoulders-display-latin-800-normal.088f423f09.woff2) format("woff2")}
@font-face{font-family:"Big Shoulders Display";font-weight:900;font-style:normal;font-display:swap;src:url(/assets/fonts/big-shoulders-display-latin-900-normal.65f2c36803.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/bricolage-grotesque-latin-400-normal.826772cb12.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-style:normal;font-display:swap;src:url(/assets/fonts/bricolage-grotesque-latin-700-normal.4c373ce3c1.woff2) format("woff2")}

:root{
  --ink:#1e0b36; --ink2:#5a4a6e; --paper:#fff7ec; --card:#ffffff; --line:#eadcc8;
  --pink:#e3127d; --pink-d:#b30a61; --pink-l:#ffe0ee;
  --orange:#ff6a00; --orange-d:#c94f00; --orange-l:#ffe6d1;
  --violet:#5b1fc4; --violet-d:#3d1189; --violet-l:#ece3ff;
  --r:6px;
  --display:"Big Shoulders Display","Arial Narrow",Impact,ui-sans-serif,sans-serif;
  --text:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.62 var(--text);overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:var(--violet)}
a:hover{color:var(--pink)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.wrap{display:block;max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.col{max-width:760px;margin:0 auto;padding-left:16px;padding-right:16px}
.wide{max-width:1120px;margin:0 auto}
.skip{position:absolute;left:-999px;top:0;background:var(--orange);color:#fff;padding:.5rem 1rem;z-index:10}
.skip:focus{left:8px}
.small{font-size:.9rem;color:var(--ink2)}
.center{text-align:center}

/* botões e etiquetas */
.btn{display:inline-block;font:900 1.15rem/1 var(--display);letter-spacing:.04em;text-transform:uppercase;background:var(--violet);color:#fff;text-decoration:none;padding:.8rem 1.25rem .75rem;border:3px solid var(--ink);border-radius:var(--r);box-shadow:4px 4px 0 var(--ink)}
.btn:hover{background:var(--pink);color:#fff}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn--sm{padding:.5rem .8rem .45rem;font-size:1rem;box-shadow:3px 3px 0 var(--ink)}
.btn--line{background:var(--card);color:var(--ink)}
.btn--sun{background:var(--orange)}
.tag{display:inline-block;font:900 .9rem/1 var(--display);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:#fff;background:var(--violet);padding:.38rem .6rem .32rem;border-radius:3px}
.tag:hover{color:#fff;background:var(--ink)}
.tag--guias-da-festa,.tag--carnavais,.tag--novidades{background:var(--pink)}
.tag--calendario,.tag--natal-e-reveillon,.tag--quanto-custa{background:var(--orange);color:var(--ink)}
.tag--primeira-vez,.tag--festivais-de-musica,.tag--documentos-e-dicas{background:var(--violet)}
.tag--country{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.meta{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.92rem;color:var(--ink2)}
.meta a{color:var(--ink2)}

/* cabeçalho */
.top{background:var(--paper);border-bottom:4px solid var(--ink)}
.top__strip{margin:0;background:var(--ink);color:#fff;font:800 .95rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase;padding:.5rem 0}
.top__strip-2{display:none;color:#ffb27a}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:.7rem;padding-bottom:.7rem}
.logo{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);min-width:0}
.logo:hover{color:var(--ink)}
.logo__mark{width:40px;height:40px;flex:none}
.logo__mark .m1{fill:var(--pink)}.logo__mark .m2{fill:var(--orange)}.logo__mark .m3{fill:var(--violet)}
.logo__word{font:900 1.9rem/1 var(--display);text-transform:uppercase;letter-spacing:.01em;white-space:nowrap}
.logo__word b{font-weight:900}
.logo__word i{font-style:normal;color:var(--pink)}
.top__actions{display:flex;align-items:center;gap:.9rem}
.top__about{display:none;font:800 1.05rem/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);text-decoration:none}
.top__actions .btn--sm{display:none}
.topics{border-top:2px solid var(--ink);background:var(--card)}
.topics__in{display:flex;gap:1.3rem;overflow-x:auto;scrollbar-width:none;padding-top:.6rem;padding-bottom:.55rem}
.topics__in::-webkit-scrollbar{display:none}
.topics a{flex:none;font:800 1.05rem/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);text-decoration:none}
.topics a:hover{color:var(--pink)}

/* cartaz da home */
.poster{position:relative;background:var(--paper);overflow:hidden;border-bottom:4px solid var(--ink)}
.poster__in{display:grid;gap:1.8rem;padding-top:2rem;padding-bottom:2.4rem}
.poster__kicker{display:inline-block;margin:0 0 .8rem;font:900 1rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;background:var(--violet);color:#fff;padding:.42rem .65rem .36rem;transform:rotate(-1.5deg)}
.poster__title{margin:0;font:900 clamp(4rem,19vw,9.5rem)/.84 var(--display);text-transform:uppercase;letter-spacing:-.01em}
.pw{display:inline}
.pw--0{color:var(--pink)}.pw--1{color:var(--orange)}.pw--2{color:var(--violet)}
.poster__dek{margin:1.1rem 0 0;max-width:34rem;font-size:1.15rem;line-height:1.5}
.poster__dates{background:var(--card);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--pink);padding:1.1rem 1rem 1rem}
.poster__dates-title{margin:0 0 .6rem;font:900 2rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.poster__note{margin:.8rem 0 0;font-size:.88rem;color:var(--ink2)}
.poster__band{display:grid;grid-template-columns:1fr 1fr 1fr;height:14px}
.poster__band span:nth-child(1){background:var(--pink)}.poster__band span:nth-child(2){background:var(--orange)}.poster__band span:nth-child(3){background:var(--violet)}

/* line-up de datas */
.lineup{list-style:none;margin:0;padding:0}
.lineup__row{display:grid;grid-template-columns:5.6rem 1fr;gap:.8rem;align-items:center;padding:.55rem 0;border-top:2px dashed var(--line)}
.lineup__row:first-child{border-top:0}
.lineup__date{display:flex;align-items:baseline;gap:.25rem;font-family:var(--display);text-transform:uppercase;line-height:.9}
.lineup__d{font-weight:900;font-size:2.7rem;letter-spacing:-.02em}
.lineup__m{display:flex;flex-direction:column;font-weight:900;font-size:1.15rem;letter-spacing:.05em}
.lineup__m small{font-weight:800;font-size:.8rem;color:var(--ink2);letter-spacing:.08em}
.lineup__row--0 .lineup__d{color:var(--pink)}.lineup__row--1 .lineup__d{color:var(--orange)}.lineup__row--2 .lineup__d{color:var(--violet)}
.lineup__text{font-size:1rem;line-height:1.35}

/* blocos */
.block{padding-top:2.4rem;padding-bottom:.6rem}
.block__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;border-bottom:4px solid var(--ink);padding-bottom:.35rem}
.block__title{margin:0;font:900 clamp(2rem,7vw,3rem)/.95 var(--display);text-transform:uppercase}
.see{font:900 1.05rem/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--pink);text-decoration:none;white-space:nowrap}

/* destaque */
.feature{display:grid;background:var(--card);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--violet)}
.feature__img{display:block;border-bottom:3px solid var(--ink);aspect-ratio:16/9;background:var(--orange-l);overflow:hidden}
.feature__img img{width:100%;height:100%;object-fit:cover}
.feature__body{padding:1.1rem 1rem 1.3rem}
.feature__title{margin:.6rem 0 .5rem;font:900 clamp(2.1rem,8vw,3.6rem)/.95 var(--display)}
.feature__title a{color:var(--ink);text-decoration:none}
.feature__title a:hover{color:var(--pink)}
.feature__dek{margin:0 0 .4rem;font-size:1.08rem}
.feature .btn{margin-top:1.1rem}
.feature--empty{background:var(--pink-l)}
.feature--empty .feature__title{margin-top:0;color:var(--pink)}

/* cartões */
.grid{display:grid;gap:1.4rem}
.card{background:var(--card);border:3px solid var(--ink);display:flex;flex-direction:column}
.card__img{display:block;aspect-ratio:16/9;overflow:hidden;border-bottom:3px solid var(--ink);background:var(--violet-l)}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.card:hover .card__img img{transform:scale(1.04)}
.card__ph{display:block;width:100%;height:100%;background:repeating-linear-gradient(-45deg,var(--pink-l) 0 14px,var(--orange-l) 14px 28px)}
.card__body{padding:.9rem .9rem 1rem}
.card__title{margin:.55rem 0 0;font:800 1.75rem/1 var(--display)}
.card__title a{color:var(--ink);text-decoration:none}
.card__title a:hover{color:var(--pink)}
.card__text{margin:.5rem 0 0;font-size:1rem}
.card--carnavais,.card--guias-da-festa,.card--novidades{box-shadow:5px 5px 0 var(--pink)}
.card--calendario,.card--natal-e-reveillon,.card--quanto-custa{box-shadow:5px 5px 0 var(--orange)}
.card--primeira-vez,.card--festivais-de-musica,.card--documentos-e-dicas{box-shadow:5px 5px 0 var(--violet)}

/* seções e países */
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.tile{display:flex;flex-direction:column;justify-content:space-between;min-height:7rem;padding:.8rem;text-decoration:none;color:#fff;border:3px solid var(--ink)}
.tile:hover{color:#fff;filter:brightness(1.08)}
.tile--0{background:var(--pink)}.tile--1{background:var(--orange);color:var(--ink)}.tile--2{background:var(--violet)}
.tile--1:hover{color:var(--ink)}
.tile__name{font:900 1.7rem/.95 var(--display);text-transform:uppercase}
.tile__n{font-size:.9rem;font-weight:700}
.about{padding-bottom:3rem}
.about__in{display:grid;gap:1.6rem;border-top:4px solid var(--ink);padding-top:1.4rem}
.chips{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chips a{display:inline-block;font:800 1.1rem/1 var(--display);text-transform:uppercase;letter-spacing:.04em;padding:.45rem .7rem .4rem;border:2px solid var(--ink);background:var(--card);color:var(--ink);text-decoration:none}
.chips a:hover{background:var(--ink);color:#fff}
.chips span{color:var(--pink)}
.about__text{margin:0 0 1.1rem;font-size:1.2rem;line-height:1.5;max-width:36rem}

/* listas */
.list-head{background:var(--violet);color:#fff;border-bottom:4px solid var(--ink);padding:1.6rem 0 1.4rem}
.list-head .crumb a{color:#fff}
.list-head .crumb span{color:#ffb27a}
.list-title{margin:0;font:900 clamp(3rem,13vw,6.5rem)/.88 var(--display);text-transform:uppercase}
.list-count{margin:.6rem 0 0;font:800 1.1rem/1 var(--display);text-transform:uppercase;letter-spacing:.08em;color:#ffb27a}
.empty{font-size:1.2rem}

/* artigo */
.crumb{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .9rem;font:800 1rem/1.2 var(--display);text-transform:uppercase;letter-spacing:.06em}
.crumb a{color:var(--ink2);text-decoration:none}
.crumb a:hover{color:var(--pink)}
.crumb span{color:var(--pink)}
.art{padding-bottom:1rem}
.art__head{padding-top:1.8rem;padding-bottom:1.3rem}
.art__tags{margin:0;display:flex;flex-wrap:wrap;gap:.4rem}
.art__title{margin:.7rem 0 1rem;font:900 clamp(2.7rem,11vw,5.2rem)/.9 var(--display);letter-spacing:-.005em}
.art__dek{margin:0;font-size:1.25rem;line-height:1.45;color:var(--ink2)}
.meta--art{margin-top:1rem;padding-top:.8rem;border-top:3px solid var(--ink);color:var(--ink)}
.meta--art a{color:var(--violet);font-weight:700}
.art__hero{margin-bottom:1.6rem}
.art__hero img{width:100%;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.art__hero figcaption{font-size:.82rem;color:var(--ink2);padding:.4rem 16px 0;text-align:right}

.box__label{margin:0 0 .3rem;font:900 1.05rem/1 var(--display);text-transform:uppercase;letter-spacing:.1em;color:var(--pink)}
.box__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .8rem;font:900 2rem/1 var(--display);text-transform:uppercase}
.box__title svg{width:28px;height:28px;flex:none;fill:none;stroke:currentColor;stroke-width:2}
.answer{border-left:8px solid var(--pink);background:var(--pink-l);padding:1rem 1rem 1rem 1.1rem;margin:0 0 1.6rem}
.answer p:last-child{margin:0}

/* Datas: bloco de cartaz */
.dates{position:relative;background:var(--violet);color:#fff;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--orange);padding:1.1rem 1rem 1rem;margin:0 0 2rem}
.dates__title{margin:0 0 .7rem;font:900 2.6rem/.9 var(--display);text-transform:uppercase}
.dates__title span{color:#ffb27a}
.dates__list{margin:0}
.dates__list div{display:grid;gap:.1rem;padding:.6rem 0;border-top:2px dashed rgba(255,255,255,.35)}
.dates__list dt{font-weight:700;font-size:1rem}
.dates__list dd{margin:0;font:900 1.75rem/1.05 var(--display);text-transform:uppercase;color:#fff}
.dates__list dd a,.dates__src a{color:#ffd0e6}
.dates__src{margin:.6rem 0 0;font-size:.88rem;color:#e6dcff}

.prose h2{margin:2.3rem 0 .7rem;font:900 clamp(2rem,7vw,2.6rem)/.98 var(--display);text-transform:uppercase}
.prose h3{margin:1.7rem 0 .5rem;font:800 1.6rem/1.05 var(--display)}
.prose p,.prose ul,.prose ol{margin:0 0 1.15rem}
.prose li{margin-bottom:.35rem}
.prose ul li::marker{color:var(--pink)}
.prose ol li::marker{color:var(--violet);font-weight:700}
.prose strong{font-weight:700}
.prose blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1rem;border-left:6px solid var(--orange);font-size:1.2rem}
.prose table{width:100%;border-collapse:collapse;font-size:1rem;display:block;overflow-x:auto;margin:0 0 1.4rem;border:3px solid var(--ink)}
.prose th,.prose td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line);vertical-align:top;min-width:7rem}
.prose thead th{background:var(--ink);color:#fff;font:800 1.05rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em}
.prose tbody tr:nth-child(even){background:#fff}
.fig{margin:1.6rem 0}
.fig img{width:100%;border:3px solid var(--ink)}
.fig figcaption{font-size:.82rem;color:var(--ink2);margin-top:.35rem}

/* Quanto custa */
.cost{margin:2.2rem 0;padding-top:1rem;border-top:4px solid var(--ink)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:3px solid var(--ink);background:var(--card)}
.cost table{width:100%;min-width:440px;border-collapse:collapse;font-size:1rem}
.cost th,.cost td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line);vertical-align:top}
.cost thead th{background:var(--orange);color:var(--ink);font:900 1.1rem/1 var(--display);text-transform:uppercase;letter-spacing:.05em;border-bottom:3px solid var(--ink)}
.cost tbody th{font-weight:700}
.cost td{font-variant-numeric:tabular-nums;white-space:nowrap}
.cost tbody tr:last-child th,.cost tbody tr:last-child td{border-bottom:0}
.cost .small{margin:.5rem 0 0}

/* Documentos */
.docs{margin:2.2rem 0;padding:1.1rem 1rem 1rem;background:var(--violet-l);border:3px dashed var(--violet)}
.docs .box__title{color:var(--violet-d)}
.docs dl,.practical dl{margin:0}
.docs dl div,.practical dl div{display:grid;gap:.1rem;padding:.55rem 0;border-top:1px solid rgba(91,31,196,.25)}
.docs dt,.practical dt{font:900 1.15rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em}
.docs dd,.practical dd{margin:0}
.docs .small{margin:.7rem 0 0}

.practical{margin:2.2rem 0;padding:1.1rem 1rem 1rem;background:var(--orange-l);border:3px solid var(--ink)}
.practical dl div{border-top-color:rgba(30,11,54,.15)}
.practical .small{margin:.7rem 0 0}

.faq{margin:2.4rem 0}
.faq details{border:3px solid var(--ink);background:var(--card);margin-bottom:.6rem}
.faq summary{cursor:pointer;list-style:none;padding:.8rem 2.6rem .8rem .9rem;position:relative;font-weight:700}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.8rem;top:.45rem;font:900 1.8rem/1 var(--display);color:var(--pink)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0;padding:0 .9rem .9rem}
.sources{margin:2.2rem 0 1rem}
.sources ul{margin:0;padding-left:1.2rem}
.sources li{margin-bottom:.3rem}

/* páginas, 404, formulário */
.page .prose h2{font-size:2rem}
.big404{margin:2rem 0 0;font:900 clamp(7rem,40vw,12rem)/.85 var(--display)}
.big404 span:nth-child(1){color:var(--pink)}.big404 span:nth-child(2){color:var(--orange)}.big404 span:nth-child(3){color:var(--violet)}
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem;margin:1.6rem 0 3rem}
.form{display:grid;gap:1rem;margin:1.6rem 0 2.4rem;padding:1.1rem 1rem;background:var(--card);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--pink)}
.form label{display:grid;gap:.3rem;font:900 1.1rem/1 var(--display);text-transform:uppercase;letter-spacing:.05em}
.form input,.form textarea{font:400 1.05rem/1.4 var(--text);padding:.7rem .75rem;border:2px solid var(--ink);border-radius:var(--r);background:var(--paper);color:var(--ink);width:100%}
.form input:focus,.form textarea:focus{outline:3px solid var(--orange);outline-offset:1px}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .note{margin:0;font-size:.92rem;color:var(--ink2)}
.form button{justify-self:start;font:900 1.2rem/1 var(--display);letter-spacing:.05em;text-transform:uppercase;background:var(--pink);color:#fff;padding:.85rem 1.4rem .8rem;border:3px solid var(--ink);border-radius:var(--r);box-shadow:4px 4px 0 var(--ink);cursor:pointer}
.form button:hover{background:var(--violet)}

/* rodapé */
.foot{background:var(--ink);color:#e9e1f5;margin-top:2.5rem;border-top:14px solid var(--pink)}
.foot__in{display:grid;gap:1.6rem;padding-top:2.2rem;padding-bottom:1.6rem}
.foot .logo{color:#fff}
.foot .logo__word i{color:#ffb27a}
.foot__brand p{margin:.8rem 0 0;max-width:24rem;font-size:1rem}
.foot nav{display:flex;flex-direction:column;gap:.35rem}
.foot nav a{color:#fff;text-decoration:none;font-size:1rem}
.foot nav a:hover{color:#ffb27a}
.foot__h{margin:0 0 .3rem;font:900 1.2rem/1 var(--display);text-transform:uppercase;letter-spacing:.08em;color:#ff8ec4}
.foot__small{margin:0 auto;padding-top:.9rem;padding-bottom:2.6rem;font-size:.85rem;color:#b9a9d1}

/* telas maiores */
@media (min-width:600px){
  .grid{grid-template-columns:1fr 1fr}
  .tiles{grid-template-columns:repeat(3,1fr)}
  .top__actions .btn--sm{display:inline-block}
  .top__strip-2{display:inline}
  .dates__list div,.docs dl div,.practical dl div{grid-template-columns:11rem 1fr;gap:1rem;align-items:baseline}
}
@media (min-width:900px){
  .top__about{display:inline}
  .logo__word{font-size:2.4rem}
  .logo__mark{width:46px;height:46px}
  .poster__in{grid-template-columns:1.35fr 1fr;align-items:center;gap:3rem;padding-top:3rem;padding-bottom:3.4rem}
  .feature{grid-template-columns:1.4fr 1fr}
  .feature__img{border-bottom:0;border-right:3px solid var(--ink);aspect-ratio:auto;min-height:100%}
  .feature__body{padding:1.6rem 1.5rem;align-self:center}
  .grid{grid-template-columns:repeat(3,1fr)}
  .about__in{grid-template-columns:1.3fr 1fr;align-items:start}
  .foot__in{grid-template-columns:1.6fr 1fr 1fr 1fr}
  .art__hero figcaption{padding-right:0}
}
@media (prefers-reduced-motion:reduce){.card__img img{transition:none}}
