/* Spain Eats Places directory */
.se-places-root,
.se-places-dir,
.se-places-single,
.se-places-landing,
.se-places-cta{
  --se-terracotta:#B5502E;
  --se-olive:#34381D;
  --se-citrus:#F3A712;
  --se-paper:#F5ECD8;
  --se-ink:#241A12;
  --se-muted:#5a4b3c;
  --se-line:#E8DAB8;
  font-family:"Karla",system-ui,sans-serif;
  color:var(--se-ink);
}
.se-places-root{max-width:1180px;margin:0 auto;padding:0 clamp(1rem,3vw,1.75rem) 2.5rem}
.se-places-root h1,.se-places-root h2,.se-places-landing h1,.se-places-cta h2,.se-places-single h1,.se-places-single h2{
  font-family:"Fraunces",Georgia,serif;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 .5rem
}
.se-places-section{margin:0 0 2.75rem}
.se-places-section h2{font-size:clamp(1.35rem,2vw,1.75rem);padding-top:.85rem;border-top:1px solid var(--se-line)}
.se-places-section .intro,.se-places-landing .lede{color:var(--se-muted);max-width:40rem;line-height:1.55;margin:0 0 1.25rem}
.se-kicker{font-family:"Space Mono",monospace;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--se-terracotta);margin:0 0 .65rem}
.se-kicker--light{color:#FFCF66}
.se-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  padding:.8rem 1.15rem;min-height:2.7rem;background:var(--se-citrus);color:var(--se-ink)!important;
  text-decoration:none!important;font-family:"Space Mono",monospace;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;border:0;border-radius:2px;cursor:pointer
}
.se-btn.alt{background:transparent;border:1.5px solid var(--se-olive);color:var(--se-olive)!important}
.se-btn.alt:hover{border-color:var(--se-terracotta);color:var(--se-terracotta)!important}
.cta-row{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}

/* Hero */
.se-places-hero{
  position:relative;min-height:clamp(320px,48vw,460px);
  width:100%;max-width:100%;margin:0 0 2rem;
  overflow:hidden;color:#F5ECD8;box-sizing:border-box
}
.se-places-hero__media{position:absolute;inset:0}
.se-places-hero__media img{width:100%;height:100%;object-fit:cover}
.se-places-hero__veil{
  position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(36,26,18,.85) 0%,rgba(36,26,18,.45) 55%,rgba(181,80,46,.28) 100%),
    linear-gradient(to top,rgba(36,26,18,.65),transparent 50%)
}
.se-places-hero__copy{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:clamp(2rem,6vw,3.25rem) clamp(1.1rem,4vw,2rem)}
.se-places-hero h1{color:#F5ECD8!important;font-size:clamp(1.9rem,4.5vw,3rem);max-width:16ch}
.se-places-hero .lede{color:rgba(245,236,216,.92);max-width:36rem;font-size:1.08rem;line-height:1.55}

.se-places-search{
  display:grid;grid-template-columns:1.2fr 1fr auto;gap:.75rem;align-items:end;
  margin-top:1.35rem;max-width:52rem
}
.se-places-search__field{display:flex;flex-direction:column;gap:.35rem}
.se-places-search__field span{
  font-family:"Space Mono",monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:#FFCF66
}
.se-places-search input{
  width:100%;padding:.85rem 1rem;border:1.5px solid rgba(245,236,216,.35);border-radius:2px;
  background:rgba(36,26,18,.45);color:#F5ECD8;font:inherit;min-height:2.85rem
}
.se-places-search input::placeholder{color:rgba(245,236,216,.55)}
@media (max-width:800px){
  .se-places-search{grid-template-columns:1fr}
}

/* Category / city grids */
.se-places-catgrid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem
}
.se-places-catcard{
  display:block;background:#FBF6E9;padding:1.15rem 1.1rem;border-top:3px solid var(--se-terracotta);
  border-radius:4px;text-decoration:none!important;color:var(--se-ink)!important;
  box-shadow:0 12px 28px -22px rgba(36,26,18,.4);transition:transform .25s ease
}
.se-places-catcard:hover{transform:translateY(-3px)}
.se-places-catcard strong{display:block;font-family:"Fraunces",Georgia,serif;font-size:1.15rem;margin-bottom:.35rem}
.se-places-catcard span{display:block;font-size:.9rem;color:var(--se-muted);line-height:1.45}
.se-places-citygrid{
  display:flex;flex-wrap:wrap;gap:.5rem .65rem
}
.se-places-citygrid a{
  display:inline-block;padding:.55rem .85rem;background:#FBF6E9;border:1px solid var(--se-line);
  text-decoration:none!important;color:var(--se-ink)!important;font-size:.92rem;border-radius:2px
}
.se-places-citygrid a:hover{border-color:var(--se-terracotta)}
.se-places-dishrow{display:flex;flex-wrap:wrap;gap:.55rem}

/* Directory */
.se-places-dir{margin:1rem 0 2rem}
.se-places-filters{
  background:#FBF6E9;padding:1rem 1.1rem;border-radius:4px;margin-bottom:1rem;border-top:3px solid var(--se-olive)
}
.se-places-filters__row{
  display:flex;flex-wrap:wrap;gap:.65rem .85rem;align-items:flex-end
}
.se-places-filters label{
  display:flex;flex-direction:column;gap:.3rem;
  font-family:"Space Mono",monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--se-terracotta)
}
.se-places-filters select,
.se-places-filters input[data-filter="postal_code"]{
  min-width:7.5rem;padding:.55rem .65rem;border:1.5px solid var(--se-line);border-radius:2px;
  background:#fff;font-family:"Karla",sans-serif;font-size:.95rem;color:var(--se-ink);text-transform:none;letter-spacing:0
}
.se-places-filters__postal input{min-width:9.5rem;max-width:11rem}
.se-places-filter-hint{font-size:.85rem;color:var(--se-muted);margin:.75rem 0 0;line-height:1.45}
.se-places-split{display:block;min-height:0}
.se-places-mappane[hidden]{display:none!important}
.se-places-mappane.is-open{display:block!important;min-height:280px;margin-top:1rem}
.se-places-map-toggle{display:inline-flex}
.se-places-listpane,.se-places-mappane{min-width:0}
.se-places-map{
  height:280px;min-height:280px;border-radius:4px;overflow:hidden;background:#E8DAB8;border:1px solid var(--se-line)
}
.se-places-map--single{min-height:260px;margin:1rem 0}
.se-places-status{font-size:.95rem;color:var(--se-muted);margin:0 0 .75rem}
.se-places-results{
  display:block;width:100%;min-width:0
}
.se-places-cardgrid{
  display:grid;gap:1rem;width:100%;
  grid-template-columns:1fr
}
@media (min-width:1000px){
  .se-places-cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.se-place-card{
  background:#FBF6E9;border-top:3px solid var(--se-terracotta);padding:0;border-radius:4px;
  box-shadow:0 12px 28px -22px rgba(36,26,18,.4);overflow:hidden;transition:box-shadow .2s,transform .2s;
  min-width:0
}
.se-place-card.is-active,.se-place-card:hover{box-shadow:0 16px 32px -18px rgba(36,26,18,.5);transform:translateY(-2px)}
.se-place-card__layout{
  display:grid;grid-template-columns:1fr;min-height:100%
}
@media (min-width:560px){
  .se-place-card__layout{grid-template-columns:minmax(180px,38%) 1fr}
}
.se-place-card__map{
  position:relative;min-height:180px;background:#d9cbb0;isolation:isolate
}
.se-place-card__map iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;filter:saturate(.92) contrast(1.02)
}
.se-place-card__map-hit{
  position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:flex-start;
  padding:.65rem .75rem;text-decoration:none!important;color:#fff!important;
  background:linear-gradient(to top,rgba(36,26,18,.55),transparent 55%)
}
.se-place-card__map-hit span{
  font-family:"Space Mono",monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;
  background:var(--se-terracotta);padding:.35rem .55rem;border-radius:2px
}
.se-place-card__body{padding:1.05rem 1.15rem 1.15rem}
.se-place-card h3{font-family:"Fraunces",Georgia,serif;font-size:1.2rem;margin:0 0 .3rem}
.se-place-card h3 a{color:inherit;text-decoration:none}
.se-place-card h3 a:hover{color:var(--se-terracotta)}
.se-place-card .meta,
.se-place-card__chips{
  font-family:"Space Mono",monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--se-terracotta);margin:0 0 .45rem;line-height:1.45
}
.se-place-card__rating{
  display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;
  margin:0 0 .55rem;font-size:.9rem;color:var(--se-ink)
}
.se-place-card__rating .stars{color:var(--se-citrus);letter-spacing:.02em;font-size:1rem}
.se-place-card__rating .score{font-weight:700}
.se-place-card__rating .count,.se-place-card__rating .src{color:var(--se-muted);font-size:.82rem}
.se-place-card__rating.is-maps a{
  color:var(--se-olive)!important;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(52,56,29,.35)
}
.se-place-card__rating.is-maps a:hover{color:var(--se-terracotta)!important;border-color:var(--se-terracotta)}
.se-place-card__meta-row{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .55rem}
.se-place-card__meta-row .pill{
  display:inline-block;padding:.2rem .45rem;border:1px solid var(--se-line);border-radius:2px;
  font-family:"Space Mono",monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--se-olive);text-decoration:none!important;background:rgba(52,56,29,.04)
}
.se-place-card__meta-row a.pill:hover{border-color:var(--se-terracotta);color:var(--se-terracotta)}
.se-place-card__blurb{margin:0 0 .4rem;color:var(--se-ink);font-size:.95rem;line-height:1.45}
.se-place-card__addr{margin:0 0 .65rem;color:var(--se-muted);font-size:.88rem;line-height:1.4}
.se-place-card p{margin:0 0 .5rem;color:var(--se-muted);font-size:.95rem;line-height:1.45}
.se-places-empty{
  padding:1.25rem;background:#FBF6E9;border-radius:4px;border-left:3px solid var(--se-citrus)
}
.se-places-pager{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}
.se-places-pager button[disabled]{opacity:.4;cursor:not-allowed}
.se-places-note{
  font-size:.92rem;color:var(--se-muted);border-left:3px solid var(--se-citrus);
  padding:.75rem 1rem;background:rgba(181,80,46,.06);margin:1rem 0 1.5rem;line-height:1.5
}
.se-places-suggestions{
  margin:0 0 1.5rem;padding:1.15rem 1.2rem 1.25rem;
  background:rgba(52,56,29,.05);border-left:3px solid var(--se-citrus);border-radius:4px
}
.se-places-suggestions__title{
  font-family:"Fraunces",Georgia,serif;font-size:1.25rem;margin:0 0 .35rem;color:var(--se-ink)
}
.se-places-suggestions__lede{margin:0 0 1rem;font-size:.92rem;color:var(--se-muted);line-height:1.45}
.se-places-suggestions__grid{
  display:grid;gap:1rem;width:100%;
  grid-template-columns:1fr
}
@media (min-width:1000px){
  .se-places-suggestions__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.se-places-zone-title{
  font-family:"Fraunces",Georgia,serif;font-size:1.2rem;margin:1.25rem 0 .85rem;color:var(--se-ink)
}
.se-place-card__pick{
  font-family:"Space Mono",monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--se-olive);margin:0 0 .35rem
}
.se-place-card__pick--live{color:var(--se-terracotta)}
.se-place-card.is-se-pick{border-top-color:var(--se-citrus)}
.se-place-card.is-live{border-top-color:var(--se-olive)}
.se-places-featured{
  display:grid;gap:1rem;width:100%;
  grid-template-columns:1fr
}
@media (min-width:1000px){
  .se-places-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.se-places-landing{max-width:1100px;margin:0 auto;padding:1rem clamp(1rem,3vw,1.75rem) 0}
.se-places-prose{max-width:40rem}
.se-places-prose p{line-height:1.65}

/* CTA on articles */
.se-places-cta{
  margin:2rem 0;padding:1.35rem 1.4rem;background:#FBF6E9;border-top:3px solid var(--se-terracotta);border-radius:4px
}
.se-places-cta h2{font-size:1.35rem}

/* Single */
.se-places-single{max-width:1100px;margin:0 auto;padding:1rem clamp(1rem,3vw,1.75rem) 2.5rem}
.se-places-single__hero{margin-bottom:1.5rem}
.se-places-single__media img{width:100%;max-height:360px;object-fit:cover;border-radius:4px;display:block}
.se-places-single__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media (max-width:800px){.se-places-single__grid{grid-template-columns:1fr}}
.se-places-single .rating{font-weight:600}
.se-places-single .verified{color:var(--se-muted);font-size:.9rem}

.leaflet-container{font:inherit}
