/* Compact guide cards with complete, readable content */
.cg-main{width:min(1040px,calc(100% - 40px))!important;padding:42px 0 66px!important}
.place-grid{gap:18px!important}
.place-card,.place-content,.place-heading,.place-heading>div{min-width:0!important}
.place-content{overflow:visible!important}
.place-content .desc,.place-details span{white-space:normal!important;overflow-wrap:anywhere!important}
.place-actions{width:100%!important}
.place-actions a,.place-actions button{white-space:normal!important;line-height:1.25!important;text-wrap:balance!important}
/* Berlin's richer cards use a compact image-over-copy composition. */
.berlin-guide-page .place-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;align-items:start!important}
.berlin-guide-page .place-card-featured{display:grid!important;grid-template-columns:1fr!important;width:100%!important;min-width:0!important;min-height:0!important;align-self:start!important}
.berlin-guide-page .place-card-featured .place-thumb{min-height:255px!important;aspect-ratio:16/10!important}
.berlin-guide-page .place-card-featured .place-content{min-height:315px!important;padding:24px 24px 22px!important;justify-content:flex-start!important}
.berlin-guide-page .place-heading{gap:12px!important}
.berlin-guide-page .place-card-featured h3{font-size:clamp(30px,2.7vw,39px)!important;line-height:1.02!important}
.berlin-guide-page .place-status{padding:7px 9px!important;font-size:7px!important}
.berlin-guide-page .place-card-featured .desc{max-width:none!important;margin:16px 0 15px!important;font-size:14px!important;line-height:1.45!important}
.berlin-guide-page .place-details{gap:8px 16px!important;margin-bottom:18px!important;padding-top:13px!important;font-size:8px!important}
.berlin-guide-page .place-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin-top:auto!important}
.berlin-guide-page .place-actions a,.berlin-guide-page .place-actions button{min-width:0!important;min-height:42px!important;padding:7px 5px!important;font-size:7px!important}
/* Standard guide cards */
.city-guide-page:not(.berlin-guide-page) .place-card{grid-template-columns:145px minmax(0,1fr)!important;min-height:172px!important}
.city-guide-page:not(.berlin-guide-page) .place-thumb{min-height:172px!important}
.city-guide-page:not(.berlin-guide-page) .place-content{padding:17px 16px!important}
.city-guide-page:not(.berlin-guide-page) .place-content h3{font-size:21px!important}
.city-guide-page:not(.berlin-guide-page) .place-content .desc{font-size:12px!important;line-height:1.42!important;margin-bottom:14px!important}
.city-guide-page:not(.berlin-guide-page) .place-card .desc{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}
@media(max-width:980px){.berlin-guide-page .place-grid{grid-template-columns:1fr!important}.berlin-guide-page .place-card-featured{grid-template-columns:minmax(250px,.82fr) minmax(0,1.18fr)!important}.berlin-guide-page .place-card-featured .place-thumb{min-height:330px!important;aspect-ratio:auto!important}.berlin-guide-page .place-card-featured .place-content{min-height:330px!important}}
@media(max-width:620px){.cg-main{width:calc(100% - 28px)!important;padding:30px 0 48px!important}.berlin-guide-page .place-card-featured{grid-template-columns:1fr!important}.berlin-guide-page .place-card-featured .place-thumb{min-height:230px!important;aspect-ratio:4/3!important}.berlin-guide-page .place-card-featured .place-content{min-height:0!important;padding:22px 18px 18px!important}.berlin-guide-page .place-heading{display:block!important}.berlin-guide-page .place-status{margin-top:12px!important}.berlin-guide-page .place-actions{grid-template-columns:1fr 1fr!important}.berlin-guide-page .place-actions .favourite{grid-column:1/-1!important}.city-guide-page:not(.berlin-guide-page) .place-card{grid-template-columns:96px minmax(0,1fr)!important;min-height:145px!important}.city-guide-page:not(.berlin-guide-page) .place-thumb{min-height:145px!important}.city-guide-page:not(.berlin-guide-page) .place-content{padding:14px 12px!important}.city-guide-page:not(.berlin-guide-page) .place-content h3{font-size:18px!important}}

/* Editorial area filters */
.area-filters,.type-filters{gap:0!important;padding-inline:clamp(20px,5vw,62px)!important;overflow-x:auto!important;scrollbar-width:none!important}
.area-filters::-webkit-scrollbar,.type-filters::-webkit-scrollbar{display:none}
.area-filters .filter-label,.type-filters .filter-label{flex:0 0 auto;align-self:center;margin-right:28px;color:var(--muted);font:500 8px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.area-filters button,.type-filters button{flex:0 0 auto!important;padding-inline:18px!important;white-space:nowrap!important}
.area-filters button.active,.type-filters button.active{color:var(--ink)!important}
.type-filters{background:var(--cream)!important}
@media(max-width:760px){.area-filters,.type-filters{justify-content:flex-start!important;padding-inline:16px!important}.area-filters .filter-label,.type-filters .filter-label{margin-right:12px;font-size:7px}.area-filters button,.type-filters button{padding-inline:13px!important}}

/* Keep Berlin's layout override from defeating filter visibility. */
.berlin-guide-page .place-card-featured.hidden{display:none!important}


/* Larger editorial photography on standard recommendation cards */
.city-guide-page:not(.berlin-guide-page) .place-card{grid-template-columns:minmax(210px,42%) minmax(0,1fr)!important;min-height:255px!important}
.city-guide-page:not(.berlin-guide-page) .place-thumb{min-height:255px!important}
.city-guide-page:not(.berlin-guide-page) .place-content{padding:24px 22px!important}
@media(max-width:760px){.city-guide-page:not(.berlin-guide-page) .place-card{grid-template-columns:minmax(155px,40%) minmax(0,1fr)!important;min-height:220px!important}.city-guide-page:not(.berlin-guide-page) .place-thumb{min-height:220px!important}}
@media(max-width:520px){.city-guide-page:not(.berlin-guide-page) .place-card{grid-template-columns:1fr!important}.city-guide-page:not(.berlin-guide-page) .place-thumb{min-height:245px!important;aspect-ratio:4/3}.city-guide-page:not(.berlin-guide-page) .place-content{padding:20px 17px!important}}

/* Shared city discovery: Editor's Pick + filters */
.guide-discovery{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:clamp(30px,5vw,70px);margin:0 0 34px;padding:0 0 34px;border-bottom:1px solid var(--line)}
.discovery-eyebrow{margin:0 0 22px;font:400 clamp(34px,4vw,58px)/1 var(--serif);letter-spacing:0;text-transform:none}
.editors-card{display:grid;grid-template-columns:minmax(210px,.92fr) minmax(0,1.08fr);min-height:340px;background:#eee8dc;border-radius:24px;overflow:hidden}
.editors-image,.collection-image{background-image:var(--thumb);background-size:cover;background-position:center}
.city-guide-page:not(.berlin-guide-page) .place-thumb{background-position:var(--thumb-position,center)}
@media(max-width:520px){.city-guide-page:not(.berlin-guide-page) .place-thumb{background-position:var(--thumb-position-mobile,var(--thumb-position,center))}}
.place-card-gallery{position:relative;overflow:hidden}
.card-gallery-arrow{position:absolute;z-index:2;top:50%;width:32px;height:32px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(32,27,22,.42);color:#fff;cursor:pointer;backdrop-filter:blur(4px)}
.card-gallery-prev{left:10px}.card-gallery-next{right:10px}
.card-gallery-dots{position:absolute;z-index:2;left:0;right:0;bottom:11px;display:flex;justify-content:center;gap:7px}
.card-gallery-dots button{width:6px;height:6px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.card-gallery-dots button[aria-pressed="true"]{background:#fff}

/* Paris recommendations — photography-led editorial cards */
.paris-guide-page .place-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:clamp(28px,3vw,46px)!important;
  row-gap:clamp(48px,6vw,78px)!important;
  align-items:stretch;
}
.paris-guide-page .place-card{
  display:flex!important;
  flex-direction:column;
  min-height:0!important;
  border:0;
  background:transparent;
}
.paris-guide-page .place-card.hidden{display:none!important}
.paris-guide-page .place-thumb{
  width:100%;
  min-height:0!important;
  aspect-ratio:4/5;
  position:relative;
  overflow:hidden;
  background-color:#e9e1d7;
  background-image:none!important;
}
.paris-guide-page .place-content{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:350px;
  padding:20px 0 0!important;
}
.paris-guide-page .place-content h3{font-size:clamp(27px,2.35vw,36px);margin-bottom:8px}
.paris-guide-page .place-category{margin-bottom:17px}
.paris-guide-page .place-content .desc{font-size:15px;line-height:1.55;margin-bottom:22px;-webkit-line-clamp:4;line-clamp:4}
.paris-guide-page .place-actions{gap:7px;margin-top:auto}
.paris-guide-page .place-actions a,.paris-guide-page .place-actions button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
  min-height:52px;
  padding:10px 8px;
  font-size:8px;
  line-height:1.15!important;
  text-align:center;
  white-space:nowrap!important;
}
.paris-guide-page .place-card-gallery{isolation:isolate}
.paris-guide-page .place-card-gallery::before,
.paris-guide-page .place-card-gallery::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:var(--thumb);
  background-repeat:no-repeat;
  background-position:center;
}
.paris-guide-page .place-card-gallery::before{
  inset:-18px;
  background-size:cover;
  filter:blur(16px);
  opacity:.2;
}
.paris-guide-page .place-card-gallery::after{
  background-size:contain;
  box-shadow:inset 0 0 0 1px rgba(34,29,24,.05);
}
.paris-guide-page .card-gallery-arrow,.paris-guide-page .card-gallery-dots{z-index:3}
@media(max-width:720px){
  .paris-guide-page .place-grid{grid-template-columns:1fr!important;row-gap:52px!important}
  .paris-guide-page .place-card{grid-template-columns:1fr!important}
  .paris-guide-page .place-thumb{aspect-ratio:4/5!important;min-height:0!important}
  .paris-guide-page .place-content{min-height:0;padding:19px 0 0!important}
  .paris-guide-page .place-actions{grid-template-columns:1fr 1fr!important}
  .paris-guide-page .place-actions .favourite{grid-column:1/-1}
}

.place-number{display:none!important}
.editors-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,4vw,50px)}
.editors-copy h2{margin:0 0 10px;font:400 clamp(38px,4.6vw,64px)/.98 var(--serif);letter-spacing:-.02em}
.editors-meta{margin:0 0 25px!important;color:var(--muted);font:500 10px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.editors-copy>p:not(.editors-meta){margin:0 0 30px;font:400 15px/1.7 var(--serif)}
.editors-copy a{width:max-content;color:var(--ink);font:500 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid;padding-bottom:7px}
.editors-copy a span{margin-left:16px;font-size:18px}
.guide-tags{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 48px}
.guide-tags .cg-filters{flex:1 1 360px;min-width:0;border-radius:999px;background:#f6f0e8}
.guide-tags .filter-label{margin-right:18px}
.guide-tags .area-filters,.guide-tags .type-filters{padding-inline:18px!important}
.guide-tags .area-filters button,.guide-tags .type-filters button{padding-inline:14px!important}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.collection-card{display:flex;min-width:0;flex-direction:column;align-items:stretch;padding:0;color:inherit;text-align:left;background:none;border:0;cursor:pointer}
.collection-image{display:block;aspect-ratio:3/4;margin-bottom:14px;border-radius:18px}
.collection-card strong{font:400 clamp(19px,2vw,27px)/1.05 var(--serif)}
.collection-card small{margin-top:7px;color:var(--muted);font:500 8px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.collection-card:hover .collection-image{filter:brightness(.93)}
@media(max-width:900px){.guide-discovery{grid-template-columns:1fr}.editors-card{min-height:320px}.collection-grid{gap:18px}.guide-tags{margin-bottom:40px}}
@media(max-width:620px){.guide-discovery{margin-bottom:32px;padding-bottom:32px}.editors-card{grid-template-columns:1fr;border-radius:18px}.editors-image{min-height:260px}.editors-copy{padding:26px 22px 30px}.collection-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.collection-card{flex:0 0 72%;scroll-snap-align:start}.collection-image{border-radius:14px}.discovery-eyebrow{font-size:9px}.guide-tags{gap:10px;margin-bottom:32px}.guide-tags .cg-filters{flex-basis:100%}.guide-tags .filter-label{margin-right:12px}}


/* Editor's Pick stacked above Collections */
.guide-discovery{grid-template-columns:1fr!important;gap:48px!important}
.editors-card{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr)!important;min-height:500px!important}
.editors-gallery{position:relative;min-width:0;overflow:hidden}
.editors-slides{position:absolute;inset:0}
.editors-image{position:absolute;inset:0;opacity:0;transform:scale(1.015);background-image:var(--thumb);background-size:cover;background-position:center;transition:opacity .45s ease,transform .65s ease}
.editors-image.active{opacity:1;transform:scale(1)}
.gallery-arrow{position:absolute;z-index:2;top:50%;width:42px;height:42px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(32,27,22,.38);color:#fff;cursor:pointer;backdrop-filter:blur(4px)}
.gallery-prev{left:18px}.gallery-next{right:18px}
.gallery-dots{position:absolute;z-index:2;left:0;right:0;bottom:18px;display:flex;justify-content:center;gap:10px}
.gallery-dots button{width:7px;height:7px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.28)}
.gallery-dots button[aria-pressed="true"]{background:#fff}
.guide-collections{width:100%}
.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(16px,2.5vw,32px)!important}
.collection-image{aspect-ratio:4/3!important}
@media(max-width:760px){.editors-card{grid-template-columns:1fr!important;min-height:0!important}.editors-gallery{min-height:360px}.collection-grid{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory}.collection-card{flex:0 0 78%}.collection-image{aspect-ratio:4/3!important}}
@media(max-width:480px){.editors-gallery{min-height:285px}.gallery-arrow{width:36px;height:36px}.gallery-prev{left:12px}.gallery-next{right:12px}}

.editors-pick{width:min(800px,100%);margin-inline:auto}
.editors-card{min-height:310px!important;grid-template-columns:1.05fr .95fr!important;border-radius:20px}
.editors-copy{padding:clamp(22px,3vw,34px)!important}
.editors-copy h2{font-size:clamp(32px,3.4vw,46px)!important;line-height:.98!important}
.editors-copy>p:not(.editors-meta){margin-bottom:22px;font-size:14px;line-height:1.55}
.editors-meta{margin-bottom:18px!important}
.editors-badge{width:max-content;margin:0 0 14px;padding:7px 10px;border:1px solid rgba(31,28,24,.55);border-radius:999px;color:var(--ink);font:500 8px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
@media(max-width:760px){.editors-pick{width:min(520px,100%)}.editors-card{min-height:0!important;grid-template-columns:1fr!important}.editors-gallery{min-height:280px}.editors-copy{padding:24px 21px 27px!important}}
@media(max-width:480px){.editors-gallery{min-height:235px}}
.city-guide-page:not(.berlin-guide-page) .place-thumb{background-position:var(--thumb-position,center)}
@media(max-width:520px){.city-guide-page:not(.berlin-guide-page) .place-thumb{background-position:var(--thumb-position-mobile,var(--thumb-position,center))}}

/* Refined filter panel: compact editorial rows with individual tags. */
.guide-tags{display:grid;gap:0;width:min(980px,100%);margin:0 auto 48px;padding:8px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.guide-tags .cg-filters{display:flex;flex-wrap:wrap;align-items:center;gap:0!important;height:auto;min-width:0;padding:18px 8px!important;overflow:visible!important;border:0;border-radius:0;background:transparent!important}
.guide-tags .cg-filters+.cg-filters{border-top:1px solid rgba(222,212,199,.7)}
.guide-tags .filter-label{flex:0 0 150px;margin:0 18px 0 0;padding-left:8px;color:var(--muted);font:500 9px/1.2 var(--sans);letter-spacing:.15em;text-transform:uppercase}
.guide-tags .area-filters .filter-label{flex-basis:220px}
.guide-tags .cg-filters button{min-height:36px;margin:0 7px 6px 0;padding:10px 15px!important;border:1px solid var(--rule);border-radius:999px;background:rgba(255,255,255,.55);color:var(--muted);font:500 9px/1 var(--sans);letter-spacing:.11em;text-transform:uppercase;transition:background .2s ease,border-color .2s ease,color .2s ease}
.guide-tags .cg-filters button:hover{border-color:var(--ink);color:var(--ink)}
.guide-tags .cg-filters button.active{border-color:var(--ink);background:var(--ink);color:var(--paper)!important}
@media(max-width:700px){.discovery-eyebrow{font-size:clamp(32px,10vw,46px)}.guide-tags{margin-bottom:34px;padding:4px 0}.guide-tags .cg-filters{padding:16px 0!important;overflow:hidden!important}.guide-tags .filter-label,.guide-tags .area-filters .filter-label{flex-basis:100%;margin:0 0 12px;padding-left:2px;font-size:8px}.guide-tags .cg-filters button{min-height:34px;margin:0 5px 6px 0;padding:9px 12px!important;font-size:8px}}

.paris-guide-page .place-hours,.city-guide-page .place-hours{margin:0 0 18px;color:var(--muted);font:400 10px/1.45 var(--sans);letter-spacing:.01em}
.city-guide-page .place-hours span{display:block;margin-bottom:4px;color:var(--ink);font:500 8px/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase}
@media(max-width:700px){.city-guide-page .place-hours{margin-bottom:14px;font-size:9px}.city-guide-page .place-hours span{font-size:7px}}

/* Paris MVP: two clear ways to browse, without a separate Editor's Pick layer. */
.paris-guide-page .guide-discovery{display:none!important}
.guide-view-switcher{position:sticky;top:0;z-index:12;display:flex;justify-content:center;gap:0;padding:18px 20px;background:rgba(238,228,215,.96);border-bottom:1px solid #d2c3b2;backdrop-filter:blur(12px)}
.guide-view-switcher button{min-width:132px;padding:13px 24px;border:1px solid #bca58f;background:rgba(250,247,241,.72);color:#665b50;font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.guide-view-switcher button:first-child{border-radius:999px 0 0 999px}.guide-view-switcher button:last-child{margin-left:-1px;border-radius:0 999px 999px 0}
.guide-view-switcher button.active{position:relative;border-color:#a76344;background:#a76344;color:#fff;box-shadow:0 3px 10px rgba(92,55,38,.16)}
.guide-map-view{height:min(760px,calc(100svh - 78px));min-height:560px;background:#eee5d9}
.guide-map-view[hidden]{display:none}
.guide-map-frame{display:block;width:100%;height:100%;border:0}
.paris-guide-page.map-view-active>.cg-filters,.paris-guide-page.map-view-active>.cg-main{display:none}
@media(max-width:700px){.guide-view-switcher{padding:13px 16px}.guide-view-switcher button{min-width:112px;padding:12px 18px}.guide-map-view{height:calc(100svh - 62px);min-height:520px}}
/* Keep the Flōq target audience present at the guide entry point. */
.paris-guide-page .cg-hero{--hero:url('/assets/floq-guide-editorial-v1.jpg')!important;--hero-position:center 58%!important}
