/* ============================================================
   GAY GUIDE & TRAVEL — front-end styles
   Mobile first · dark theme · rainbow accents
   ============================================================ */
:root{
  --bg:#03041b;--bg2:#06082a;--card:#0a0c33;--card2:#12153f;--line:#1d2050;
  --text:#f4f4fa;--muted:#8f97c0;--muted2:#5d6489;
  --pink:#ff3d77;--orange:#ff8a3d;--yellow:#ffc53d;--green:#22d37f;--blue:#3d9bff;--purple:#9b5cff;
  --accent:#ff3d77;--accent-2:#e3285f;--accent-ink:#fff;--accent-soft:rgba(255,61,119,.14);
  --rainbow:linear-gradient(90deg,#ff3d77,#ff8a3d,#ffc53d,#22d37f,#3d9bff,#9b5cff);
  --rainbow-soft:linear-gradient(135deg,#ff3d77 0%,#ff8a3d 25%,#ffc53d 45%,#22d37f 65%,#3d9bff 85%,#9b5cff 100%);
  --radius:14px;--radius-sm:10px;--shadow:0 10px 30px rgba(0,0,10,.45);
  --header-h:64px;--bottom-h:60px;
  --font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.55;font-size:15px;position:relative;
  padding-bottom:calc(var(--bottom-h) + env(safe-area-inset-bottom));}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(55% 45% at 8% 30%,rgba(120,60,255,.20),transparent 60%),
  radial-gradient(50% 45% at 92% 70%,rgba(40,120,255,.18),transparent 60%),
  radial-gradient(60% 40% at 50% 100%,rgba(90,50,220,.16),transparent 60%),var(--bg)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,h4{margin:0 0 .4em;line-height:1.2;font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4vw,2.6rem)}
h2{font-size:clamp(1.25rem,2.6vw,1.6rem)}
h3{font-size:1.05rem}
p{margin:0 0 1em}
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)}.small{font-size:.85rem}.lead{font-size:1.05rem;color:var(--muted)}
.hide-mobile{display:none}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:6px;z-index:999}
.rainbow-text{background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}
.ico{width:22px;height:22px;flex:none;vertical-align:middle}
.ico.sm{width:15px;height:15px}
.ico.heart{fill:url(#none)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:10px;border:1px solid transparent;
  font-weight:600;font-size:.95rem;transition:.2s;white-space:nowrap;background:var(--card2);color:var(--text)}
.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn-sm{padding:7px 14px;font-size:.85rem}.btn-lg{padding:14px 28px;font-size:1.05rem}
.btn-block{width:100%}
.btn-rainbow,.btn-primary-solid{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 14px var(--accent-soft)}.btn-rainbow:hover{background:var(--accent-2);filter:none}
.btn-ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
.btn-outline{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-white{background:#fff;color:#1a0f55}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}
.icon-btn{background:rgba(255,255,255,.07);border:0;border-radius:10px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.icon-btn:hover{background:rgba(255,255,255,.14)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(2,3,22,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:10px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.02em;font-size:1rem}
.brand-logo{height:36px;width:auto}
.brand-heart{width:36px;height:36px;border-radius:12px;background:var(--rainbow-soft);display:inline-flex;align-items:center;justify-content:center;color:#fff;flex:none}
.brand-heart.big{width:56px;height:56px;border-radius:18px;margin:0 auto 12px}
.brand-heart .ico{width:20px;height:20px;fill:#fff;stroke:#fff}
.brand-text{white-space:nowrap}
.header-search{display:none;flex:1 1 260px;min-width:200px;max-width:420px;align-items:center;gap:10px;background:#0d0a2c;border:1px solid #24274f;border-radius:10px;padding:9px 14px;color:var(--muted);transition:.2s}
.header-search:focus-within{border-color:#3d4180;background:#100d36;box-shadow:0 0 0 3px rgba(255,61,119,.12)}
.header-search .ico{width:18px;height:18px}
.header-search input[type=search]::placeholder{color:#7d7d99}
.header-search input[type=search]{border:0;background:transparent;color:var(--text);flex:1;outline:0;font:inherit;min-width:0;padding:0;box-shadow:none}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.avatar-btn{width:38px;height:38px;border-radius:50%;border:2px solid transparent;background:var(--rainbow) border-box;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.avatar-btn img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-btn.guest{background:var(--rainbow) border-box;color:#fff}
.avatar-btn.guest .ico{width:20px;height:20px;background:#0a0c33;border-radius:50%;width:100%;height:100%;padding:8px}
.ico.flip{transform:scaleX(-1)}
.avatar-initial{background:#0a0c33;width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}

/* nav – off-canvas on mobile */
.main-nav{position:fixed;top:0;bottom:0;left:0;width:min(320px,85vw);background:#07092c;background-color:#07092c;z-index:70;transform:translate3d(-105%,0,0);transition:transform .25s;display:flex;flex-direction:column;padding:12px;overflow-y:auto;border-right:1px solid var(--line);isolation:isolate;will-change:transform;box-shadow:0 0 40px rgba(0,0,0,.6)}
.main-nav.open{transform:translate3d(0,0,0)}
.nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:49;opacity:0;pointer-events:none;transition:.25s}
.nav-backdrop.open{opacity:1;pointer-events:auto}
.nav-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 14px}
.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;font-weight:600;color:var(--text);width:100%;text-align:left}
.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.07)}
.nav-link.active{color:#fff;box-shadow:inset 3px 0 0 var(--pink)}
.nav-ico{width:20px;height:20px;color:var(--pink)}
.as-link{background:none;border:0}
.nav-mobile-extra{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}
.nav-langs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px}
.lang-pill{padding:6px 10px;border-radius:8px;background:var(--card);font-size:.85rem}
.lang-pill.active{background:var(--accent);color:var(--accent-ink)}

.dropdown{position:relative}
.dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:var(--shadow);display:none;z-index:80}
.dropdown-menu.right{left:auto;right:0}
.dropdown.open .dropdown-menu{display:block}
.dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;width:100%;background:none;border:0;text-align:left;font-size:.92rem}
.dropdown-item:hover,.dropdown-item.active{background:rgba(255,255,255,.07)}
.dropdown-item .ico{width:18px;height:18px;color:var(--muted)}

/* bottom nav (mobile app style) */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(4,5,31,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;z-index:40}
.bottom-link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.68rem;color:var(--muted);font-weight:600}
.bottom-link .ico{width:22px;height:22px}
.bottom-link.active{color:var(--pink)}

/* ---------- flashes ---------- */
.flashes{margin-top:14px}
.flash{padding:12px 16px;border-radius:12px;margin-bottom:8px;font-weight:500;border:1px solid}
.flash-success{background:rgba(34,211,127,.12);border-color:rgba(34,211,127,.4)}
.flash-error{background:rgba(255,61,119,.12);border-color:rgba(255,61,119,.4)}
.notice{background:var(--card);border:1px solid var(--line);padding:12px 16px;border-radius:12px;color:var(--muted)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(60% 60% at 10% 0%,rgba(255,61,119,.35),transparent 60%),
  radial-gradient(50% 60% at 90% 10%,rgba(61,155,255,.3),transparent 60%),
  radial-gradient(40% 40% at 60% 100%,rgba(155,92,255,.25),transparent 60%),var(--bg2)}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--hero,none);background-size:cover;background-position:center;opacity:.35}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:var(--rainbow)}
.hero-inner{position:relative;padding:40px 16px 34px;display:grid;gap:26px}
.hero h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.05;margin-bottom:10px}
.hero-search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;padding:6px 6px 6px 16px;color:#555;max-width:520px;margin:18px 0}
.hero-search input[type=search]{flex:1;border:0;outline:0;font:inherit;font-size:1rem;color:#111;min-width:0;background:transparent;padding:8px 0;box-shadow:none}
.hero-cta{display:none}

/* ---------- sections & grids ---------- */
.page{padding:26px 16px 40px}
.page-head{margin-bottom:22px}
.page-section{margin-top:36px}
section{margin-bottom:34px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.section-head h2{margin:0}
.more{color:var(--pink);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:4px}
.section-head .more.btn{color:inherit;font-weight:600;white-space:nowrap}
.grid-2,.grid-3,.grid-4{display:grid;gap:12px;grid-template-columns:1fr}
.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
@media (max-width:599px){.card-body{padding:10px}.card-body h3{font-size:.92rem}.card-body p{font-size:.8rem}.badge{font-size:.62rem;padding:3px 8px}}
.scroller{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.scroller>*{flex:0 0 46%;scroll-snap-align:start}
.home-grid{display:grid;gap:28px;padding-top:28px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.chip{padding:6px 14px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-size:.85rem;font-weight:500;color:var(--muted)}
.chip.active,.chip:hover{color:#fff;border-color:var(--pink);background:rgba(255,61,119,.15)}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.badge .ico{width:13px;height:13px}
.badge-dark{background:rgba(0,0,0,.6);color:#fff;backdrop-filter:blur(6px)}
.badge-rainbow{background:var(--accent);color:var(--accent-ink)}

/* ---------- cards ---------- */
.card{background:var(--card);border-radius:var(--radius);overflow:hidden;position:relative;border:1px solid var(--line);transition:.2s;display:block}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#33334a}
.card-body{padding:14px}
.card-body h3{margin-bottom:4px}
.card-body p{margin:0 0 4px;font-size:.88rem}
.card-body .muted{display:flex;align-items:center;gap:5px}
.card-img{display:block;aspect-ratio:4/3;background:var(--img) center/cover;position:relative;padding:10px;display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}
.card-fav{position:absolute;top:10px;right:10px;z-index:2}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}
.fav{width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.5);border:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;backdrop-filter:blur(6px);transition:.2s}
.fav .ico{width:18px;height:18px}
.fav.on{background:var(--pink)}.fav.on .ico{fill:#fff}
.fav-lg{width:44px;height:44px;background:rgba(255,255,255,.14)}
.card-dest{aspect-ratio:1/1.15;background:var(--img) center/cover;display:flex;align-items:flex-end}
.card-dest::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent 60%)}
.card-dest-body{position:relative;z-index:1;padding:14px;display:flex;flex-direction:column}
.card-dest-body strong{font-size:1.05rem}.card-dest-body span{font-size:.8rem;color:#ddd}
.card-event{display:flex;gap:12px;padding:12px}
.card-event .card-body{padding:0;flex:1;min-width:0}
.event-date{flex:none;width:64px;height:64px;border-radius:14px;background:rgba(6,8,42,.82);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.event-date b{font-size:1.5rem;font-weight:800}.event-date span{font-size:.7rem;font-weight:700;letter-spacing:.06em}
.price{font-weight:700}
.article-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.article-row:last-of-type{border:0}
.article-row .thumb{flex:none;width:64px;height:48px;border-radius:10px;background:var(--img) center/cover}
.article-row span{display:flex;flex-direction:column;gap:2px}.article-row strong{font-size:.9rem;line-height:1.3}.article-row small{color:var(--muted)}
.card-member{aspect-ratio:3/4;background:var(--img) center/cover;display:flex;align-items:flex-end}
.card-member::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent 55%)}
.card-member-body{position:relative;z-index:1;padding:12px;display:flex;flex-direction:column;font-size:.85rem}
.card-member-body strong{font-size:1rem;display:flex;align-items:center;gap:5px}
.online{color:var(--green);font-style:normal;font-size:.75rem}
.verified{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--blue);color:#fff;align-items:center;justify-content:center}
.verified .ico{width:11px;height:11px;stroke-width:3}

/* ---------- features ---------- */
.features{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.feature{padding:18px 16px;border-radius:var(--radius);color:#fff;display:flex;flex-direction:column;gap:6px;min-height:130px;transition:.2s;position:relative;overflow:hidden}
.feature::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 50%)}
.feature:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.feature .ico{width:30px;height:30px}
.feature strong{font-size:.95rem;text-transform:uppercase;letter-spacing:.03em}.feature span{font-size:.8rem;opacity:.9;line-height:1.35}
.f1{background:linear-gradient(135deg,#ff3d77,#ff5e3a)}.f2{background:linear-gradient(135deg,#7c3aed,#4f46e5)}
.f3{background:linear-gradient(135deg,#f59e0b,#ef4444)}.f4{background:linear-gradient(135deg,#0ea5e9,#2563eb)}
.f5{background:linear-gradient(135deg,#ec4899,#8b5cf6)}.f6{background:linear-gradient(135deg,#06b6d4,#3b82f6)}
.f7{background:linear-gradient(135deg,#f97316,#eab308)}.f8{background:linear-gradient(135deg,#a855f7,#ec4899)}

/* ---------- side boxes / passport ---------- */
.side-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}
.side-box h3{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.side-box .more{display:inline-flex;margin-top:8px}
.passport-card{border-radius:14px;padding:18px;color:#fff;background:linear-gradient(135deg,#ff3d77 0%,#ff8a3d 20%,#ffc53d 40%,#22d37f 60%,#3d9bff 80%,#9b5cff 100%);position:relative;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1.6;display:flex;flex-direction:column;justify-content:space-between;max-width:420px}
.passport-card::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.1),rgba(0,0,0,.45))}
.passport-card>*{position:relative}
.passport-card.mini{margin-bottom:12px}
.pc-head{display:flex;flex-direction:column}.pc-head strong{font-size:1.05rem;letter-spacing:.06em}.pc-head span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.9}
.pc-body{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.pc-body small{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.pc-body b{display:block;font-size:1rem;margin-bottom:6px;font-family:ui-monospace,monospace}
.pc-qr{width:84px;height:84px;background:#fff;border-radius:12px;padding:8px;display:flex;align-items:center;justify-content:center;color:#111}
.pc-qr .ico{width:100%;height:100%}.pc-qr img{width:100%;height:100%}
.passport-card.mini .pc-qr{width:60px;height:60px}
.pc-name{font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}
.passport-hero{display:grid;gap:24px;margin-bottom:12px}
.passport-how ol{padding-left:20px;color:var(--muted);line-height:1.8}
.passport-offer{display:flex;align-items:center;gap:14px;background:var(--rainbow-soft);color:#fff;padding:16px;border-radius:var(--radius);margin-bottom:18px;flex-wrap:wrap}
.passport-offer .ico{width:30px;height:30px}.passport-offer div{flex:1;display:flex;flex-direction:column}.passport-offer strong{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}

/* ---------- covers & details ---------- */
.cover{position:relative;background:var(--img) center/cover;min-height:280px;display:flex;align-items:flex-end}
.cover::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--bg) 0%,rgba(11,11,18,.6) 50%,rgba(11,11,18,.25))}
.cover-inner{position:relative;padding:60px 16px 22px}
.cover h1{margin-bottom:6px}.cover .lead{margin-bottom:12px}
.cover-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.crumb{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.85rem;margin-bottom:10px}
.crumb:hover{color:#fff}
.detail-grid{display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}
.prose{font-size:1rem;line-height:1.7;color:#d8d8e6}
.prose h2,.prose h3{color:#fff;margin-top:1.4em}
.prose img{border-radius:var(--radius)}
.prose a{color:var(--pink);text-decoration:underline}
.info-box p{display:flex;gap:12px;margin:0 0 14px;font-size:.92rem}
.info-box p:last-child{margin:0}
.info-box .ico{color:var(--pink);width:20px;height:20px;margin-top:2px}
.info-box b{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.info-box a{color:var(--blue)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.gallery a{aspect-ratio:1;border-radius:12px;background:var(--img) center/cover}
.tickets{margin-top:30px}
.ticket-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:10px}
.ticket-row small{display:block;color:var(--muted)}
.article-cover{min-height:340px}
.article-page .prose{max-width:760px;font-size:1.08rem}

/* ---------- forms ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.filter-bar .input-ico{flex:1 1 200px}
.input-ico{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 14px;color:var(--muted)}
.input-ico input[type=search],.input-ico input{border:0;background:transparent;color:var(--text);padding:10px 0;flex:1;outline:0;font:inherit;min-width:0;box-shadow:none}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],input[type=number],input[type=url],input[type=datetime-local],input[type=time],select,textarea{
  width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px;color:var(--text);font:inherit;outline:0;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,61,119,.2)}
.filter-bar select{width:auto;border-radius:10px;padding:10px 36px 10px 14px;appearance:none;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239a9ab3' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center}
select{appearance:none;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239a9ab3' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:36px}
select option{background:#1e1e2e}
label{display:block;font-size:.85rem;font-weight:600;color:var(--muted)}
label input,label select,label textarea{margin-top:6px;font-weight:400}
.check,.radio{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text)}
.check input,.radio input{width:auto;margin:0;accent-color:var(--pink)}
.form-grid{display:grid;gap:14px}
.form-grid .span2{grid-column:1/-1}
.radio-group{border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.radio-group legend{padding:0 6px;font-size:.8rem;color:var(--muted)}
.auth-page{display:flex;justify-content:center}
.auth-box{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:30px 24px;text-align:center}
.auth-box form{display:grid;gap:14px;margin:20px 0;text-align:left}
.auth-box h1.rainbow-text{font-size:5rem}
.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:30px 0 0;color:var(--muted)}
.profile-head{display:flex;gap:18px;align-items:center;margin-bottom:24px;flex-wrap:wrap}
.profile-photo{width:110px;height:110px;border-radius:50%;background:var(--img) center/cover;border:3px solid transparent;box-shadow:0 0 0 3px var(--pink)}

/* ---------- footer ---------- */
.site-footer{background:transparent;border-top:1px solid var(--line);margin-top:40px;padding:36px 0 26px;font-size:.9rem}
.footer-grid{display:grid;gap:26px}
.site-footer h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.site-footer li a:hover{color:var(--pink)}
.footer-about p{color:var(--muted);margin-top:14px}
.social{display:flex;gap:8px;flex-wrap:wrap}
.social-link{padding:6px 12px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-size:.8rem}
.newsletter{display:flex;gap:8px;flex-direction:column}
.newsletter input{border-radius:10px}
.footer-bottom{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:30px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}
.rainbow-line{flex:1;height:2px;background:var(--rainbow);border-radius:2px;min-width:40px;opacity:.6}

/* ============================================================
   Responsive
   ============================================================ */
@media (min-width:600px){
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .scroller>*{flex-basis:31%}
  .form-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .newsletter{flex-direction:row}
  .features{grid-template-columns:repeat(4,1fr)}
  .hide-mobile{display:inline-flex}
}
@media (min-width:900px){
  body{padding-bottom:0}
  .bottom-nav{display:none}
  .nav-toggle,.nav-head,.nav-mobile-extra,.nav-backdrop{display:none}
  .main-nav{position:static;transform:none;width:auto;background:transparent;border:0;flex-direction:row;padding:0;gap:2px;overflow:visible;margin-left:6px}
  .nav-link{padding:8px 8px;font-size:.82rem;width:auto;white-space:nowrap}
  .main-nav{flex:0 0 auto}
  .header-actions{flex:0 0 auto}
  .nav-link.active{box-shadow:none;background:rgba(255,255,255,.08)}
  .nav-ico{display:none}
  .header-search{display:flex}
  .brand-text{font-size:1.05rem}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-4{grid-template-columns:repeat(3,1fr)}
  .scroller{flex-wrap:nowrap}.scroller>*{flex-basis:calc(20% - 10px)}
  .hero-inner{grid-template-columns:1.2fr 1fr;align-items:center;padding:70px 16px 60px}
  .hero-cta{display:inline-flex}
  .quick-links{gap:14px}
  .quick .ico{width:64px;height:64px;padding:18px}
  .quick{font-size:.8rem}
  .home-grid{grid-template-columns:1fr 320px;align-items:start}
  .detail-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start}
  .cover{min-height:380px}
  .cover-inner{padding-bottom:36px}
  .footer-grid{grid-template-columns:1.6fr 1fr 1fr 1.4fr}
  .passport-hero{grid-template-columns:1fr 1fr;align-items:center}
  .passport-card{padding:26px}
  .pc-body b{font-size:1.2rem}
}
@media (min-width:1200px){
  .grid-4{grid-template-columns:repeat(4,1fr)}
  .container{padding:0 24px}
  .col-app{margin-right:calc(-1 * (max((100vw - 1280px) / 2, 0px) + 24px))}
  .col-app .app-box{padding-right:230px}
  .col-app .phone{right:34px;width:170px;height:340px;top:22px}
  .col-app .app-text h2{font-size:1.5rem}
  .page{padding:34px 24px 50px}
  .cover-inner,.hero-inner{padding-left:24px;padding-right:24px}
  .header-search{max-width:440px}
}
/* backdrop-filter would turn the header into the containing block of the fixed off-canvas nav */
@media (max-width:899px){.site-header,.bottom-nav,.fav,.badge-dark{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.site-header{background:#020316}.bottom-nav{background:#04051f}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ============================================================
   Homepage v2 (mockup layout)
   ============================================================ */
.brand-lines{display:flex;flex-direction:column;line-height:1.05;font-size:.82rem;letter-spacing:.02em;font-weight:800}
.brand-lines span:first-child{background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}
.muted-h{color:var(--muted);font-weight:500}
.ico.up{transform:rotate(-90deg)}

/* hero */
.hero2{position:relative;overflow:visible;padding-bottom:24px;background:
  radial-gradient(70% 70% at 15% 10%,rgba(255,61,119,.28),transparent 60%),
  radial-gradient(60% 70% at 85% 20%,rgba(61,155,255,.32),transparent 60%),
  radial-gradient(50% 50% at 60% 100%,rgba(155,92,255,.3),transparent 60%),#05062a}
.hero2::before{content:"";position:absolute;inset:0;background:var(--hero,none) center/cover no-repeat}
.hero2::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,4,27,.92) 0%,rgba(3,4,27,.55) 45%,rgba(3,4,27,.1) 70%,rgba(3,4,27,.55) 100%),linear-gradient(to top,var(--bg) 0%,transparent 30%)}
.hero2-inner{position:relative;z-index:1;display:grid;gap:26px;padding:44px 16px 64px}
.hero2 h1{font-size:clamp(1.5rem,6.4vw,3.3rem);line-height:1.08;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:14px;text-wrap:balance}
.hero2-sub{font-size:1.15rem;font-weight:600;margin:0 0 4px}
.hero2-tag{color:#d9d9e6;margin:0 0 22px}
.hero2-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero2 .btn-ghost{background:rgba(3,8,40,.6);border-color:rgba(255,255,255,.35)}
.hero-card{width:100%;max-width:340px;aspect-ratio:auto;padding:20px;display:flex;flex-direction:column;gap:16px;justify-self:start}
.hero-card .pc-body b{font-size:1.05rem;margin-bottom:8px}
.hero-card .btn{margin-top:auto}
.hero-card .pc-qr{width:76px;height:76px}

/* quick bar */
.quickbar{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:12px 8px;margin:-40px 0 0;border-radius:14px;
  background:linear-gradient(180deg,rgba(40,50,120,.45),rgba(10,14,50,.55));border:1px solid rgba(140,150,255,.18);
  box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.18);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.q{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px;border-radius:14px;font-size:.72rem;font-weight:600;color:#e8e8f2;text-align:center;transition:.2s;line-height:1.2}
.q:hover{background:rgba(255,255,255,.06)}
.q .ico{width:30px;height:30px;stroke-width:1.6;background:none;padding:0;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 0 8px currentColor)}
.q1{color:#ff3d77}.q2{color:#4d8dff}.q3{color:#22d37f}.q4{color:#ff5e5e}.q5{color:#a86bff}.q6{color:#ff9f43}.q7{color:#25c9b8}
.q span{color:#f0f0f7}

/* rows */
.home2{padding-top:34px;display:flex;flex-direction:column;gap:36px}
.home2 section{margin:0}
.grid-6{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
.dest-row .card-dest{aspect-ratio:1/1}
.dest-row .card-dest-body strong{font-size:1rem}

/* venue card — photo fills the card, text over a dark gradient (like the mockup) */
.vcard{position:relative;display:block;aspect-ratio:1/1.18;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--img) center/cover;transition:.2s;color:#fff}
.vcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#33334a}
.vcard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(3,4,20,.96) 0%,rgba(3,4,20,.85) 34%,rgba(3,4,20,.25) 58%,transparent 80%)}
.vcard-img{display:none}
.vcard-body{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;gap:4px;padding:12px 12px 12px;font-size:.8rem}
.vcard-body strong{font-size:1rem;color:#fff}
.vcard-body>small{color:#c9cbe0}
.vcard-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#e2e3f0}
.rating{display:inline-flex;align-items:center;gap:4px;color:#fff;font-weight:600}
.rating .ico{fill:#ffc53d;stroke:#ffc53d;width:13px;height:13px}
.rating small{color:#c9cbe0;font-weight:500}
.is-open,.is-closed{font-size:.66rem;font-weight:700;padding:3px 9px;border-radius:6px;background:rgba(34,211,127,.18);color:#3ff29a}
.is-closed{background:rgba(255,82,82,.18);color:#ff7b7b}
.dist{color:#e2e3f0}

/* three columns */
.home2-cols{display:grid;gap:28px;grid-template-columns:1fr}
.article-list{display:flex;flex-direction:column}
.article-list .article-row{padding:10px 0}
.article-list .article-row .thumb{width:72px;height:56px;border-radius:12px}
.article-list .article-row em{font-style:normal;color:var(--blue);font-size:.78rem;font-weight:600}
.article-list .article-row small{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.75rem}
.event-row{grid-template-columns:repeat(3,1fr);gap:10px}
.ecard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s}
.ecard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ecard-img{position:relative;display:block;aspect-ratio:1/1.05;background:var(--img) center/cover}
.ecard-img .event-date{position:absolute;left:10px;bottom:10px;width:46px;height:46px;border-radius:10px}
.ecard-img .event-date b{font-size:1.1rem}.ecard-img .event-date span{font-size:.55rem}
.ecard-img .card-fav{width:30px;height:30px}
.ecard-body{display:flex;flex-direction:column;gap:3px;padding:10px;font-size:.72rem}
.ecard-body strong{font-size:.78rem;line-height:1.25;color:#fff}
.ecard-body small{color:var(--muted)}
.ecard-body .btn{margin-top:8px;align-self:flex-start;padding:4px 12px;font-size:.72rem}

/* app box */
.app-box{position:relative;overflow:hidden;background:linear-gradient(135deg,#120b45 0%,#2a1273 45%,#3d1a8c 100%);border-radius:14px;padding:26px 24px;display:grid;grid-template-columns:1fr 150px;gap:12px;min-height:260px;border:1px solid rgba(140,120,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.app-text h2{font-size:1.5rem;line-height:1.15;margin-bottom:8px}
.app-text p{color:#e6e0f7;font-size:.88rem}
.store-badges{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.store{display:inline-flex;align-items:center;gap:8px;background:#000;border:1px solid #444;border-radius:8px;padding:6px 12px 6px 8px;color:#fff;line-height:1;min-width:132px}
.store .ico{width:22px;height:22px}
.store span{display:flex;flex-direction:column;font-weight:600;font-size:.9rem}
.store small{font-size:.55rem;font-weight:500;letter-spacing:.04em;opacity:.85}
.phone{position:absolute;right:22px;top:26px;width:150px;height:300px;border-radius:24px;background:#0b0b14;border:5px solid #23232f;box-shadow:0 24px 50px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08);overflow:hidden}
.phone::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:56px;height:14px;background:#23232f;border-radius:0 0 10px 10px;z-index:2}
.phone-screen{position:absolute;inset:0;background:var(--img,radial-gradient(70% 45% at 50% 42%,#4a9be0,#2a4d9a 55%,#1a1f4a)) center/cover}
.phone-screen .pin{position:absolute;width:12px;height:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pink);box-shadow:0 0 0 2px rgba(255,255,255,.4)}
.p1{left:30%;top:28%}.p2{left:55%;top:40%;background:#ffc53d}.p3{left:40%;top:58%;background:#22d37f}.p4{left:65%;top:66%}.p5{left:25%;top:72%;background:#3d9bff}

/* community banner */
.community-banner{display:grid;grid-template-columns:1fr;border-radius:14px;overflow:hidden;background:linear-gradient(120deg,#ff2d6f,#ff6a3d 60%,#ff8a3d)}
.cb-text{padding:30px 26px;color:#fff}
.cb-text h2{font-size:1.9rem;margin-bottom:6px}
.cb-text p{margin-bottom:18px;color:#fff6f0}
.btn-outline-white{background:transparent;border-color:rgba(255,255,255,.8);color:#fff}
.cb-photos{display:grid;grid-template-columns:repeat(4,1fr);min-height:160px}
.cb-photos span{background:var(--img) center/cover}

/* stats bar */
.stats-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
.stat-item{display:flex;align-items:center;gap:12px}
.stat-item b{display:block;font-size:1.4rem;font-weight:800;line-height:1.1}
.stat-item div span{color:var(--muted);font-size:.82rem;display:block}
.stat-ico{width:46px;height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid currentColor;flex:none}
.stat-ico .ico{width:22px;height:22px}
.i1{color:#22d37f}.i2{color:#3d9bff}.i3{color:#9b5cff}.i4{color:#ff3d77}
.stat-pay{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;justify-content:center}
.stat-pay small{color:var(--muted);font-size:.72rem}
.pay-icons{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pay{display:inline-flex;align-items:center;gap:2px;height:22px;font-weight:800;font-size:.95rem;color:#fff}
.pay svg{height:22px;width:auto}
.pay-mc svg{height:22px}
.pay-apple svg{height:18px;margin-right:1px}
.pay-google b{color:#4285f4;font-weight:900}
.pay-paypal i{font-style:italic;color:#8fb4ff}

/* footer v2 */
.site-footer{margin-top:44px}
.site-footer .brand-lines{font-size:.9rem}
.social-link{width:34px;height:34px;padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}
.social-link svg{width:100%;height:100%}
.newsletter{flex-direction:row}
.newsletter input{border-radius:10px}
.newsletter .btn{padding:0;width:44px;height:44px;border-radius:10px;flex:none}
.fb-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.lang-select{width:auto;padding:8px 32px 8px 12px;border-radius:8px;font-size:.85rem}
.to-top{color:#fff}

@media (min-width:600px){
  .grid-6{grid-template-columns:repeat(3,1fr)}
  .quickbar{grid-template-columns:repeat(7,1fr)}
  .stats-bar{grid-template-columns:repeat(4,1fr)}
  .community-banner{grid-template-columns:1fr 1.6fr}
}
@media (min-width:900px){
  .hero2-inner{grid-template-columns:1.4fr 340px;align-items:center;padding:60px 16px 70px;min-height:420px}
  .hero-card{justify-self:end}
  .quickbar{padding:14px 16px}
  .q{font-size:.78rem}
  .home2-cols{grid-template-columns:1fr 1.35fr 1.35fr;align-items:start}
  .col-app{min-width:0;position:relative;margin-right:calc(-1 * (max((100vw - 1280px) / 2, 0px) + 16px));overflow:hidden}
  html,body{overflow-x:clip}
  .col-app .app-box{position:static;border-radius:14px 0 0 14px;border-right:0;min-height:290px;padding-right:150px;grid-template-columns:1fr}
  .col-app .phone{right:20px;width:118px;height:250px;top:26px}
  .col-app .app-text h2{font-size:1.3rem}
  .stats-bar{grid-template-columns:repeat(4,1fr) 1.3fr;align-items:center}
  .stat-pay{grid-column:auto;border-left:1px solid var(--line);padding-left:20px}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr 1.3fr}
}
@media (min-width:1200px){
  .grid-6{grid-template-columns:repeat(6,1fr)}
  .hero2-inner{padding:70px 24px 76px}
}

/* ---------- one-line titles with ellipsis (cards stay the same height) ---------- */
.ellipsis,
.vcard-body strong,.vcard-body>small,
.ecard-body strong,.ecard-body small,
.article-list .article-row strong,.article-list .article-row em,
.card-dest-body strong,.card-dest-body span,
.card-venue .card-body h3,.card-article .card-body h3,.card-event .card-body h3,
.card-member-body strong{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0}
.article-list .article-row>span:last-child{min-width:0;flex:1}
.article-list .article-row{align-items:center}
.vcard-body,.ecard-body,.card-dest-body{min-width:0}
.card-venue .card-body h3 a,.card-article .card-body h3 a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* venue/article card body: fixed description height so rows align */
.card-venue .card-body p:last-child,.card-article .card-body p:not(.muted){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* language flags */
.flag-img{width:20px;height:20px;border-radius:50%;object-fit:cover;vertical-align:middle;display:inline-block;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
.flag-emoji{font-size:1.05em;line-height:1;vertical-align:middle}
.lang-select-wrap{position:relative}
.lang-select{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--text);font-size:.85rem;font-weight:500}
.lang-select .chev{transform:rotate(90deg);color:var(--muted)}
.dropdown.up .dropdown-menu{top:auto;bottom:calc(100% + 8px)}

/* ---------- look switcher (dropdown extras) ---------- */
.dropdown-sep{height:1px;background:var(--line);margin:6px 4px}
.dropdown-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);padding:6px 12px 2px}
.dropdown-item .tick,.nav-link .tick{margin-left:auto;color:var(--green)}
.nav-mobile-extra .dropdown-sep{margin:8px 12px}
.nav-mobile-extra .dropdown-label{padding-left:16px}

/* ---------- Aurora look: pulsing colour orbs behind the page (gay.com style) ---------- */
.theme-aurora{--orb-min:.35;--orb-max:.8;--orb-blur:120px;--orb-speed:1;--accent:#9b5cff;--accent-2:#7f3fe6;--accent-soft:rgba(155,92,255,.18)}
.theme-aurora.aurora-subtle{--orb-min:.2;--orb-max:.5}
.theme-aurora.aurora-strong{--orb-min:.5;--orb-max:1;--orb-blur:100px}
body.theme-aurora::before{opacity:.4}
.aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.aurora i{position:absolute;display:block;border-radius:9999px;filter:blur(var(--orb-blur));will-change:opacity,transform;opacity:var(--orb-min);
  animation:orb-pulse calc(4s * var(--orb-speed)) ease-in-out infinite, orb-drift calc(22s * var(--orb-speed)) ease-in-out infinite alternate}
.aurora .a1{width:450px;height:450px;background:hsl(0,100%,50%);top:-3rem;left:-3rem;animation-delay:0s,0s}
.aurora .a2{width:500px;height:500px;background:hsl(120,100%,40%);top:25%;left:-3rem;animation-delay:1s,-7s}
.aurora .a3{width:450px;height:450px;background:hsl(220,100%,55%);top:0;left:33%;animation-delay:2s,-13s}
.aurora .a4{width:400px;height:400px;background:hsl(30,100%,50%);top:-3rem;right:-3rem;animation-delay:3s,-4s}
.aurora .a5{width:500px;height:500px;background:hsl(280,100%,50%);bottom:-8rem;right:-3rem;animation-delay:4s,-17s}
.aurora .a6{width:250px;height:250px;background:hsl(60,70%,40%);top:60%;left:25%;animation-delay:5s,-9s;--orb-min:.15;--orb-max:.35}
/* fine grain over everything, like film */
.aurora::after{content:"";position:absolute;inset:0;opacity:.035;background-repeat:repeat;background-size:512px 512px;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes orb-pulse{0%,100%{opacity:var(--orb-min)}50%{opacity:var(--orb-max)}}
@keyframes orb-drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vw,-5vh,0) scale(1.12)}100%{transform:translate3d(-5vw,6vh,0) scale(.95)}}
.theme-aurora .site-header{background:rgba(2,3,22,.7)}
@media (prefers-reduced-motion:reduce){.aurora i{animation:none;opacity:calc((var(--orb-min) + var(--orb-max)) / 2)}}
@media (max-width:599px){.aurora i{--orb-blur:90px;transform:scale(.7)}}

/* ---------- Light look (white, soft grey cards, purple accent – like the original mockup) ---------- */
body.theme-light{
  --accent:#6d3df5;--accent-2:#5a2fd6;--accent-soft:rgba(109,61,245,.16);
  --bg:#f5f6fb;--bg2:#ffffff;--card:#ffffff;--card2:#eef0f8;--line:#e3e6f0;
  --text:#14142b;--muted:#5b6180;--muted2:#8a90ad;
  --shadow:0 10px 30px rgba(20,20,60,.10);
  color-scheme:light}
body.theme-light::before{background:
  radial-gradient(55% 45% at 8% 30%,rgba(155,92,255,.10),transparent 60%),
  radial-gradient(50% 45% at 92% 70%,rgba(61,155,255,.10),transparent 60%),
  radial-gradient(60% 40% at 50% 100%,rgba(255,61,119,.07),transparent 60%),var(--bg)}
.theme-light .site-header{background:rgba(255,255,255,.86);border-bottom-color:var(--line)}
.theme-light .icon-btn{background:rgba(20,20,60,.06)}
.theme-light .icon-btn:hover{background:rgba(20,20,60,.12)}
.theme-light .btn-ghost{background:rgba(20,20,60,.06);border-color:rgba(20,20,60,.10)}
.theme-light .nav-link:hover,.theme-light .nav-link.active,.theme-light .dropdown-item:hover,.theme-light .dropdown-item.active{background:rgba(20,20,60,.06)}
@media (max-width:899px){.theme-light .main-nav{background:#fff;background-color:#fff}}
.theme-light .nav-backdrop{background:rgba(20,20,60,.35)}
.theme-light .bottom-nav{background:rgba(255,255,255,.96);border-top:1px solid var(--line)}
.theme-light .avatar-btn.guest .ico,.theme-light .avatar-initial{background:#fff;color:#14142b}
.theme-light .card:hover,.theme-light .vcard:hover{border-color:#cfd3e6}
.theme-light .is-open:not(.badge){background:rgba(22,163,74,.14);color:#15803d}
.theme-light .is-closed:not(.badge){background:rgba(220,38,38,.12);color:#b91c1c}
.theme-light .hero2::after{background:linear-gradient(90deg,rgba(20,20,60,.75) 0%,rgba(20,20,60,.45) 45%,rgba(20,20,60,.15) 70%,rgba(20,20,60,.45) 100%),linear-gradient(to top,var(--bg) 0%,transparent 30%)}
.theme-light .hero2 h1,.theme-light .hero2-sub,.theme-light .hero2-tag{color:#fff}
.theme-light .hero2 .btn-ghost{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5);color:#fff}
.theme-light .header-search{background:#fff;border-color:var(--line)}
.theme-light .header-search:focus-within{background:#fff;border-color:#c7cbe3}
.theme-light .header-search input[type=search]::placeholder{color:var(--muted2)}
.theme-light .quickbar{background:rgba(255,255,255,.85);border-color:var(--line);box-shadow:0 20px 50px rgba(20,20,60,.12),inset 0 1px 0 #fff}
.theme-light .q span{color:#2a2d4a}
.theme-light .q .ico{filter:drop-shadow(0 0 6px rgba(0,0,0,.08))}
.theme-light .q:hover{background:rgba(20,20,60,.05)}
.theme-light select option{background:#fff;color:#14142b}
.theme-light .flag-img{box-shadow:0 0 0 1px rgba(20,20,60,.15)}
.theme-light .flash{color:#14142b}
.theme-light .lang-pill{background:var(--card2)}
.theme-light .dropdown-menu{box-shadow:0 12px 32px rgba(20,20,60,.14)}
@media (min-width:900px){.theme-light .nav-link.active{background:rgba(20,20,60,.06)}}
/* light look – follow-ups */
@media (min-width:900px){.theme-light .main-nav{background:transparent;box-shadow:none;border:0}}
.theme-light .app-text h2,.theme-light .app-text p{color:#fff}
.theme-light .cb-text h2{color:#fff}
.theme-light .ecard-body strong{color:var(--text)}
.theme-light .prose{color:#2a2d4a}.theme-light .prose h2,.theme-light .prose h3{color:var(--text)}
.theme-light .crumb:hover{color:var(--text)}
.theme-light .nav-link.active{color:var(--text)}
.theme-light .chip.active,.theme-light .chip:hover{color:var(--pink)}
.theme-light .cover::before{background:linear-gradient(to top,var(--bg) 0%,rgba(20,20,60,.45) 50%,rgba(20,20,60,.2))}
.theme-light .cover h1,.theme-light .cover .lead{color:#fff}
.theme-light .to-top{color:var(--text)}

/* language switcher on small screens: only the globe button in the header (mobile menu + footer variants hidden) */
@media (max-width:899px){.nav-langs,.lang-select-wrap{display:none}}
/* header dropdowns always open to the left so they never run off the screen edge (language menu on mobile) */
.header-actions .dropdown-menu{left:auto;right:0;max-width:calc(100vw - 32px)}

/* ---------- modal (report dialog) ---------- */
.modal{border:0;padding:0;background:transparent;max-width:min(520px,calc(100vw - 32px));width:100%;margin:auto}
.modal::backdrop{background:rgba(0,0,10,.7);backdrop-filter:blur(4px)}
.modal-box{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:12px;color:var(--text);box-shadow:var(--shadow)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h3{margin:0;display:flex;align-items:center;gap:8px}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.hp,.modal .hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.modal label{color:var(--muted)}
.modal input[type=file]{display:block;margin-top:6px;width:100%;padding:8px;background:var(--card2);border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:.85rem}
.report-btn{gap:6px}
.report-row{margin:18px 0 0}
.profile-head .report-btn{margin-left:6px}
.report-btn.link{background:none;border:0;padding:4px 0;color:var(--muted);font-size:.85rem;display:inline-flex;align-items:center}
.report-btn.link:hover{color:var(--pink);transform:none}
.cover-actions .report-btn{background:rgba(0,0,0,.45);border-color:rgba(255,255,255,.2);color:#fff;backdrop-filter:blur(6px)}

/* ---------- "missing venue / destination" box + coming soon ---------- */
.suggest-box{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:28px;padding:18px 20px;border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(255,61,119,.12),rgba(155,92,255,.12));border:1px dashed rgba(255,255,255,.18)}
.suggest-box>div{display:flex;flex-direction:column;gap:2px}.suggest-box strong{font-size:1.05rem}.suggest-box span{color:var(--muted);font-size:.9rem}
.theme-light .suggest-box{border-color:rgba(20,20,60,.18)}
.modal .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modal [hidden]{display:none!important}
@media (max-width:480px){.modal .row2{grid-template-columns:1fr}}
.badge-soon{background:var(--yellow);color:#1a1200}
.coming-soon{max-width:560px;margin:0 auto;text-align:center;padding:30px 0}
.coming-soon .newsletter{justify-content:center;margin-top:16px}
.coming-soon .newsletter input{max-width:320px}
.coming-soon .count{color:var(--muted);font-size:.9rem;margin-top:10px}
.card-dest .card-badge{position:absolute;top:10px;left:10px;z-index:2}
.coming-soon .newsletter .btn{width:auto;padding:0 18px;white-space:nowrap}

/* header menu hidden on desktop (Settings → Header → Show menu in header); mobile burger stays */
@media (min-width:900px){body.no-topnav .main-nav{display:none}body.no-topnav .header-search{max-width:560px}}

/* trip planner (home) + date fields */
.date-field{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);font-weight:600;background:var(--card);border:1px solid var(--line);border-radius:10px;padding-left:12px}
.date-field input[type=date]{width:auto;border:0;background:transparent;padding:10px 10px 10px 0;color-scheme:dark;box-shadow:none}
.date-field:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,61,119,.2)}
.theme-light .date-field input[type=date]{color-scheme:light}
.trip-search{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px;padding:14px 16px;border-radius:14px;
  background:linear-gradient(180deg,rgba(40,50,120,.45),rgba(10,14,50,.55));border:1px solid rgba(140,150,255,.18);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.trip-search .ts-text{display:flex;flex-direction:column;flex:1 1 220px;min-width:0}.trip-search .ts-text strong{font-size:1rem}.trip-search .ts-text span{color:var(--muted);font-size:.85rem}
.trip-search select{width:auto;min-width:160px;padding:9px 36px 9px 12px}
.trip-search .btn{align-self:center}
.theme-light .trip-search{background:rgba(255,255,255,.85);border-color:var(--line)}
@media (max-width:599px){.trip-search select,.trip-search .date-field,.trip-search .btn{width:100%}.trip-search .date-field input{flex:1}}
/* empty date field: hide the browser's "dd.mm.yyyy" placeholder until a date is picked (desktop) */
.date-field input[type=date]:not(.has-value):not(:focus)::-webkit-datetime-edit{color:transparent}
.date-field input[type=date]{min-width:120px}
/* same height for all controls in filter rows */
.date-field{height:44px;box-sizing:border-box}
.date-field input[type=date]{height:100%;padding-top:0;padding-bottom:0}
.trip-search{align-items:center}
.trip-search select,.trip-search .btn,.filter-bar select,.filter-bar .btn,.filter-bar .input-ico{height:44px;box-sizing:border-box}
.filter-bar .input-ico input{padding-top:0;padding-bottom:0;height:100%}
.filter-bar{align-items:center}
/* Gay Passport card in the hero: real payment-card proportions (85.6 × 54 mm ≈ 1.586) */
.hero-card{aspect-ratio:1.586;max-width:440px;padding:22px 24px;gap:10px;justify-content:space-between}
.hero-card .pc-head strong{font-size:1.15rem}
.hero-card .pc-body b{font-size:1.1rem;margin-bottom:4px}
.hero-card .pc-qr{width:84px;height:84px}
.hero-card .btn{margin-top:0;padding:10px 20px}
@media (min-width:900px){.hero2-inner{grid-template-columns:1.2fr 440px}.hero2 h1{font-size:clamp(1.75rem,3.6vw,3.3rem)}}   /* two columns: the title scales with the width of its column so the three lines stay three lines */
.pc-qr svg{width:100%;height:100%;display:block}
/* hero card: big QR filling the right side, no button */
.passport-card{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;column-gap:16px;padding:22px 24px}
.passport-card .pc-head{grid-column:1}
.passport-card .pc-body{grid-column:1;align-items:flex-start;flex-direction:column;justify-content:center;gap:0}
.passport-card .pc-body .pc-qr{display:none}
.passport-card .pc-name{grid-column:1;align-self:end}
.passport-card .pc-qr.big{grid-column:2;grid-row:1/4;align-self:center;width:auto;height:100%;max-height:100%;aspect-ratio:1;padding:10px;border-radius:14px}
@media (max-width:599px){.passport-card{padding:16px 18px}.passport-card .pc-qr.big{padding:8px}}
.passport-card .pc-qr.big{height:86%}
.passport-card .pc-head strong{font-size:1rem;white-space:nowrap}
.passport-card .pc-body b{white-space:nowrap;font-size:1rem}
.passport-card .pc-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:599px){.passport-card .pc-head strong{font-size:.85rem}.passport-card .pc-body b{font-size:.85rem}.passport-card .pc-qr.big{height:80%}}
/* passport page: same card, a bit wider; profile mini card keeps the same layout */
.passport-hero .passport-card{max-width:520px;aspect-ratio:1.586}
.passport-card.mini{max-width:100%;aspect-ratio:1.586;padding:16px 18px}
.passport-card.mini .pc-head strong{font-size:.9rem}.passport-card.mini .pc-body b{font-size:.85rem}.passport-card.mini .pc-name{font-size:.75rem}

/* ---------- pharoos brand ---------- */
.logo{display:block;height:30px;width:auto;color:var(--text)}
.brand .logo{color:#fff}.theme-light .brand .logo{color:#14142b}
.brand-logo{height:34px}
.brand-mark-big{display:flex;justify-content:center;margin:0 auto 14px}
.logo-mark{display:inline-block;vertical-align:middle}
.pc-brand{display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em}
.pc-brand .logo-mark{filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.pc-brand .logo-mark path{stroke:#fff}
@media (prefers-reduced-motion:reduce){.logo animate,.logo animateMotion{display:none}}

/* claim box */
.claim-box{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 20px;padding:16px 20px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}
.claim-box>div{display:flex;flex-direction:column;gap:2px}.claim-box span{color:var(--muted);font-size:.9rem}
.unmanaged{margin:0 0 8px;display:flex;align-items:center;gap:6px}

/* ---------- profile with menu ---------- */
.profile-layout{display:grid;gap:20px;grid-template-columns:1fr}
.profile-nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.profile-nav::-webkit-scrollbar{display:none}
.pn-item{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:.9rem;white-space:nowrap;color:var(--text);transition:.2s}
.pn-item:hover{border-color:var(--pink)}
.pn-item.active{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.pn-item .ico{width:18px;height:18px;flex:none}
.profile-content{min-width:0}
.profile-content>section{margin-bottom:22px}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pstat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 10px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-align:center}
.pstat b{font-size:1.5rem;font-weight:800}.pstat span{color:var(--muted);font-size:.8rem}
.profile-content .passport-card.mini{max-width:520px}
@media (min-width:900px){
  .profile-layout{grid-template-columns:240px 1fr;align-items:start}
  .profile-nav{flex-direction:column;overflow:visible;position:sticky;top:calc(var(--header-h) + 16px)}
  .pn-item{padding:12px 14px;font-size:.95rem}
}

/* two-factor */
.twofa-setup{display:grid;gap:18px;grid-template-columns:1fr}
.twofa-qr{background:#fff;border-radius:14px;padding:6px;width:200px;max-width:100%;aspect-ratio:1;align-self:start}.twofa-qr svg{display:block;width:100%;height:auto}
.secret{display:block;font-family:ui-monospace,monospace;letter-spacing:.08em;background:var(--card2);padding:10px 12px;border-radius:10px;margin:6px 0 14px;word-break:break-all}
.pill-on{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(34,211,127,.15);color:var(--green);font-weight:700;font-size:.85rem}
.btn-row{display:flex;gap:10px;flex-wrap:wrap}
.backup-codes{background:rgba(255,197,61,.1);border:1px solid rgba(255,197,61,.35);border-radius:12px;padding:14px;margin-bottom:16px}
.backup-codes .codes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}
.backup-codes code{font-family:ui-monospace,monospace;background:var(--card);padding:6px 10px;border-radius:8px;text-align:center}
.code-input{font-size:1.4rem;letter-spacing:.3em;text-align:center}
@media (min-width:600px){.twofa-setup{grid-template-columns:200px 1fr}.backup-codes .codes{grid-template-columns:repeat(4,1fr)}}

/* ---------- maps ---------- */
.map{width:100%;height:320px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--card);z-index:0}
.map-box .map{height:240px}
.map-details{margin:0 0 16px}.map-details summary{list-style:none;display:inline-flex;cursor:pointer;margin-bottom:10px}.map-details summary::-webkit-details-marker{display:none}
.pin-wrap{background:none;border:0}
.pin{display:block;width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--rainbow-soft);box-shadow:0 2px 6px rgba(0,0,0,.5),0 0 0 2px #fff}
.pin.me{width:18px;height:18px;border-radius:50%;transform:none;background:#3d9bff;box-shadow:0 0 0 4px rgba(61,155,255,.35),0 0 0 2px #fff}
.leaflet-popup-content-wrapper{background:var(--card);color:var(--text);border-radius:12px;box-shadow:var(--shadow)}
.leaflet-popup-tip{background:var(--card)}
.leaflet-popup-content a{color:var(--pink)}
.leaflet-bar a{background:var(--card);color:var(--text);border-bottom-color:var(--line)}
.leaflet-bar a:hover{background:var(--card2)}
.leaflet-control-attribution{background:rgba(0,0,0,.5)!important;color:#bbb!important;font-size:10px}.leaflet-control-attribution a{color:#ddd!important}
.theme-light .leaflet-control-attribution{background:rgba(255,255,255,.7)!important;color:#555!important}.theme-light .leaflet-control-attribution a{color:#333!important}
.locate-btn a{font-size:18px;line-height:30px}
.pin{position:relative;width:30px;height:30px}
.pin i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:rotate(45deg);font-style:normal;font-size:15px;line-height:1;color:#fff}
.pin i .ico{width:16px;height:16px;color:#fff;stroke-width:2.2}.pin i .cat-img{width:18px;height:18px;object-fit:contain}
.cat-emoji{font-size:1em;line-height:1}.chip .cat-emoji,.chip .ico{margin-right:2px}.cat-img{width:18px;height:18px;object-fit:contain;vertical-align:middle}

/* ---------- Trip planner ---------- */
.trip-list{display:grid;gap:12px;margin-bottom:20px}
.trip-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:inherit;text-decoration:none;position:relative;overflow:hidden}
.trip-card::before{content:"";position:absolute;inset:0;background:var(--img) center/cover;opacity:.18;pointer-events:none}
.trip-card>*{position:relative}
.trip-card:hover{border-color:var(--pink)}
.trip-card.past{opacity:.6}
.tc-body{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.tc-body strong{font-size:1.05rem}
.tc-progress{display:block;height:6px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;max-width:260px}
.tc-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--purple));border-radius:999px;transition:width .3s}
.trip-progress-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.trip-progress-bar .tc-progress{flex:1;max-width:420px}
.trip-notes{color:var(--muted);margin-bottom:18px;white-space:pre-line}
.trip-delete{margin-top:10px}
.trip-empty{padding:28px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius);margin-bottom:18px}
.trip-empty p{margin-bottom:14px;color:var(--muted)}
.trip-empty .btn-row{justify-content:center}
.trip-day{margin-bottom:22px}
.trip-day-head{display:flex;align-items:center;gap:12px;font-size:1.05rem;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.trip-day-head .td-num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-size:1.3rem;font-weight:800}
.trip-day-head small{display:block;font-size:.78rem;color:var(--muted);font-weight:500;text-transform:capitalize}
.trip-day.today .td-num{background:linear-gradient(135deg,var(--pink),var(--purple));border-color:transparent;color:#fff}
.trip-free{padding:6px 0 0 56px}
.trip-item{display:flex;gap:12px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);margin-bottom:8px}
.trip-item.done{opacity:.65}
.trip-item.done .ti-title{text-decoration:line-through}
.ti-check{padding-top:2px}
.chk{display:inline-flex;cursor:pointer}
.chk input{position:absolute;opacity:0;width:0;height:0}
.chk span{width:26px;height:26px;border-radius:8px;border:2px solid var(--muted);display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.chk input:checked+span{background:var(--green);border-color:var(--green)}
.chk input:checked+span::after{content:"";width:8px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg);margin-top:-3px}
.chk input:focus-visible+span{outline:2px solid var(--pink);outline-offset:2px}
.ti-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ti-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ti-time{font-variant-numeric:tabular-nums;padding:2px 8px;border-radius:8px;background:rgba(255,255,255,.08);font-size:.9rem}
.ti-type{color:var(--muted);display:inline-flex}
.ti-title{font-weight:700;color:inherit;text-decoration:none;font-size:1.02rem}
a.ti-title:hover{color:var(--pink)}
.ti-note{color:var(--muted);font-size:.92rem;margin:0}
.ti-file{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:rgba(255,61,119,.12);color:var(--pink);font-weight:600;font-size:.9rem;text-decoration:none;align-self:flex-start}
.ti-edit{margin-top:4px}
.ti-edit summary{cursor:pointer;color:var(--muted);font-size:.85rem;display:inline-flex;align-items:center;gap:4px;list-style:none}
.ti-edit summary::-webkit-details-marker{display:none}
.ti-edit[open] summary{color:var(--pink)}
.ti-edit form{margin-top:10px;padding:12px;border-radius:12px;background:rgba(0,0,0,.2)}
.pill-on.small{font-size:.75rem;padding:2px 8px}
#trip-dialog .form-grid{margin-bottom:12px}
@media (max-width:600px){.trip-free{padding-left:0}.trip-item{padding:10px 12px}}
input[type=time]{color-scheme:dark}.theme-light input[type=time]{color-scheme:light}
.place-field[hidden]{display:none!important}
.trip-new-form{max-width:640px}

/* AI label + sources */
.ai-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle;cursor:help}
.ai-note{margin:14px 0 0;display:flex;gap:6px;align-items:flex-start}
.article-sources{margin-top:22px;padding:16px 18px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}
.article-sources h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin-bottom:8px}
.article-sources ol{margin:0;padding-left:20px;display:grid;gap:4px;font-size:.92rem}
.article-sources a{color:var(--pink);text-decoration:none}.article-sources a:hover{text-decoration:underline}

/* Rainbow dots */
.rdots{display:inline-flex;gap:3px;align-items:center;vertical-align:middle;margin-left:8px}
.rdots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.12);display:block}
.rdots.sm i{width:7px;height:7px}
.rdots.lg{gap:5px;margin:0}.rdots.lg i{width:14px;height:14px}
.rdots-info{position:relative;display:inline-flex}
.rdots-info summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(6px)}
.rdots-info summary::-webkit-details-marker{display:none}
.rdots-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:5;width:min(300px,80vw);padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);font-size:.85rem;color:var(--muted)}
.rdots-pop b{color:var(--text)}
.card-dots{margin:0 0 6px}
.rdots-info{margin:2px 0 10px}
.rdots-info summary{gap:10px}
.rdots-label{font-size:.8rem;color:rgba(255,255,255,.75);font-weight:600}
.cover .rdots-info + .lead{margin-top:0}

/* ---------- community articles (2026-09-14) ---------- */
.st-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;background:rgba(255,255,255,.08);color:var(--muted);white-space:nowrap}
.st-badge .ico{width:13px;height:13px}
.st-badge.st-pending{background:rgba(255,197,61,.15);color:var(--yellow)}
.st-badge.st-published{background:rgba(34,211,127,.15);color:var(--green)}
.st-badge.st-rejected{background:rgba(255,61,119,.15);color:var(--pink)}
.my-articles{display:grid;gap:10px;margin-bottom:14px}
.my-article{display:flex;align-items:center;gap:14px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--text)}
.my-article:hover{border-color:var(--pink)}
.my-article .thumb{flex:0 0 64px;width:64px;height:64px;border-radius:10px;background:var(--img) center/cover}
.my-article .ma-body{flex:1;min-width:0;display:grid;gap:3px}
.my-article .ma-body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-article .ma-note{color:var(--pink)}
.my-article.st-draft .thumb{opacity:.6}
.empty-box{text-align:center;padding:34px 18px;border:1px dashed var(--line);border-radius:var(--radius);margin-bottom:14px}
.empty-box p{margin-bottom:14px;color:var(--muted)}
.page-head.compact .lead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.article-form-grid{display:grid;gap:16px}
.article-form-main .side-box{padding:18px}
.article-form-side .sticky{position:sticky;top:calc(var(--header-h) + 16px)}
.btn-col{display:grid;gap:8px;margin:12px 0}
.check.terms{align-items:flex-start;font-weight:400;font-size:.9rem;color:var(--muted)}
.check.terms input{margin-top:4px}
.check.terms a{color:var(--pink);text-decoration:underline}
.radio-row{display:flex;gap:18px;flex-wrap:wrap}
.cover-pick{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cover-thumb{width:120px;height:76px;border-radius:10px;background:var(--img) center/cover;flex:0 0 auto}
.cover-pick .check.small{font-size:.85rem;font-weight:400;color:var(--muted);margin-top:6px}
.f-label{display:block;font-weight:500;margin-bottom:6px}
.btn.danger{color:var(--pink)}
.article-form-side>.btn{margin-bottom:16px}
/* rich text editor (same markup as admin) */
.rte{border:1px solid var(--line);border-radius:12px;background:var(--bg2);overflow:hidden}
.rte-bar{display:flex;flex-wrap:wrap;gap:2px;padding:6px;border-bottom:1px solid var(--line);background:var(--card);align-items:center}
.rte-bar button{background:none;border:0;border-radius:6px;padding:5px 9px;font-size:.82rem;color:var(--muted);display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.rte-bar button:hover{background:rgba(255,255,255,.08);color:#fff}
.rte-bar .right{margin-left:auto}
.rte-count{font-size:.75rem;color:var(--muted);padding:0 8px}
.rte-count.ok{color:var(--green)}
.rte-area{min-height:280px;padding:14px 16px;outline:0;line-height:1.7;max-height:70vh;overflow:auto;font-size:1rem}
.rte-area:empty:before{content:attr(data-placeholder);color:var(--muted2)}
.rte-area h2,.rte-area h3{margin:.9em 0 .3em;color:#fff}.rte-area img{max-width:100%;border-radius:10px}.rte-area a{color:var(--pink);text-decoration:underline}
.rte-area blockquote{border-left:3px solid var(--pink);margin:1em 0;padding:4px 14px;color:var(--muted)}
.rte-area[contenteditable="false"]{opacity:.7}
.rte-src.show{display:block!important;min-height:280px;font-family:ui-monospace,monospace;font-size:.8rem;border:0;border-radius:0}
.article-preview-note{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.article-owner-row{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.author-box{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:26px 0 10px;max-width:760px}
.author-box .profile-photo.small{width:64px;height:64px;flex:0 0 64px;box-shadow:0 0 0 2px var(--pink)}
.author-box strong a{color:var(--text)}
.author-box p{margin:6px 0 0;color:var(--muted)}
.article-license,.photo-credit{margin-top:10px}
.prose blockquote{border-left:3px solid var(--pink);margin:1.2em 0;padding:4px 16px;color:var(--muted)}
.theme-light .my-article,.theme-light .author-box{background:#fff}
.theme-light .rte{background:#fff}.theme-light .rte-bar{background:#f2f3fa}.theme-light .rte-bar button:hover{background:rgba(20,20,60,.06);color:var(--text)}.theme-light .rte-area h2,.theme-light .rte-area h3{color:var(--text)}
@media (min-width:900px){
  .article-form-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start}
}

/* ---------- reviews (2026-09-14) ---------- */
.stars{display:inline-flex;gap:1px;vertical-align:middle}
.stars .st{display:inline-block;width:16px;height:16px;position:relative;color:rgba(255,255,255,.18)}
.stars .st .ico{width:16px;height:16px;fill:currentColor;stroke:currentColor}
.stars .st.full{color:var(--yellow)}
.stars .st .ico.over{position:absolute;left:0;top:0;color:var(--yellow);clip-path:inset(0 50% 0 0)}
.stars.lg .st,.stars.lg .st .ico{width:22px;height:22px}
.stars.sm .st,.stars.sm .st .ico{width:13px;height:13px}
.rating-line{display:inline-flex;align-items:center;gap:4px;color:var(--yellow);font-weight:600;font-size:.9rem}
.rating-line .ico{fill:currentColor}
.rating-line small{color:var(--muted);font-weight:500}
.rating-line.few{color:var(--muted);font-weight:500;font-size:.8rem}
.rating-line.sm{font-size:.8rem}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:2px 0 6px}
.card-meta .rdots{margin-left:0}
.cover-rating-link{display:inline-flex;margin:6px 0 2px;text-decoration:none}
.cover-rating{font-size:1rem;background:rgba(0,0,0,.45);padding:5px 10px;border-radius:999px;backdrop-filter:blur(6px)}
.badge-safe{background:rgba(34,211,127,.85);color:#04120a}
.euros{font-weight:700;letter-spacing:.05em}.euros small{color:var(--muted2);font-size:1em}
.reviews{margin-top:34px}
.review-summary{display:grid;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:18px}
.rs-big{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.rs-big b{font-size:2.6rem;line-height:1;font-weight:800}
.rs-bars{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rs-bars li{display:grid;grid-template-columns:minmax(120px,160px) 1fr 40px;align-items:center;gap:10px;font-size:.9rem}
.rsb-label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.rsb-bar{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.rsb-bar i{display:block;height:100%;background:var(--rainbow);border-radius:999px}
.rsb-val{font-weight:700;text-align:right}
.review-why{margin-bottom:14px}
.review-form h3{margin-bottom:12px}
.review-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.rf-overall{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.rf-label{font-weight:600;display:inline-flex;align-items:center;gap:6px}
.rf-criteria{display:grid;gap:8px;margin-bottom:14px}
.rf-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line)}
.rf-row .rf-label{font-weight:500;color:var(--muted);font-size:.92rem}
.star-input{display:inline-flex;flex-direction:row-reverse;gap:2px}
.star-input input{position:absolute;opacity:0;width:0;height:0}
.star-input label{cursor:pointer;color:rgba(255,255,255,.2);display:inline-block;width:30px;height:30px}
.star-input label .ico{width:30px;height:30px;fill:currentColor;stroke:currentColor}
.star-input.sm label,.star-input.sm label .ico{width:22px;height:22px}
.star-input input:checked~label,.star-input label:hover,.star-input label:hover~label{color:var(--yellow)}
.star-input input:focus-visible+label{outline:2px solid var(--pink);border-radius:6px}
.price-input{display:inline-flex;gap:4px}
.price-input input{position:absolute;opacity:0;width:0;height:0}
.price-input span{display:inline-block;padding:4px 10px;border-radius:8px;border:1px solid var(--line);font-weight:700;font-size:.85rem;color:var(--muted);cursor:pointer}
.price-input input:checked+span{background:var(--pink);border-color:var(--pink);color:#fff}
.rf-text{display:block;margin-bottom:12px}
.rf-text textarea{width:100%}
.review-form .btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.review-list{display:grid;gap:14px;margin-top:8px}
.review{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.review.mine{border-color:var(--pink)}
.review .profile-photo.small{width:48px;height:48px;flex:0 0 48px;box-shadow:0 0 0 2px var(--line)}
.rv-body{flex:1;min-width:0}
.rv-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.rv-head strong a{color:var(--text)}
.rv-sub{margin:4px 0 0}
.rv-text{margin:8px 0 0;line-height:1.6;white-space:pre-line}
.rv-reply{margin-top:12px;padding:10px 14px;border-left:3px solid var(--pink);background:rgba(255,255,255,.03);border-radius:0 10px 10px 0}
.rv-reply p{margin:4px 0 0;color:var(--muted)}
.rv-actions{margin-top:8px}
.btn-xs{padding:3px 8px;font-size:.75rem}
.ma-reply{color:var(--pink)}
.theme-light .review,.theme-light .review-summary{background:#fff}
.theme-light .stars .st,.theme-light .star-input label{color:rgba(20,20,60,.15)}
.theme-light .stars .st .ico.over,.theme-light .stars .st.full,.theme-light .star-input input:checked~label,.theme-light .star-input label:hover,.theme-light .star-input label:hover~label{color:#e5a800}
@media (min-width:700px){.review-summary{grid-template-columns:auto 1fr;align-items:center}.rs-big{padding-right:24px;border-right:1px solid var(--line)}.review-summary.no-bars{grid-template-columns:1fr}.review-summary.no-bars .rs-big{border:0;padding:0}}

/* ---------- pass levels & venue benefits (2026-09-14) ---------- */
.pc-level{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.95}
.pc-level b{background:var(--plan);color:#fff;padding:2px 8px;border-radius:999px;text-shadow:none;font-weight:800;letter-spacing:.05em}
.plan-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:var(--plan);color:#fff;font-weight:800;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.passport-benefits{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:0 0 22px;position:relative;overflow:hidden}
.passport-benefits:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--rainbow)}
.pb-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.pb-base{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--accent-soft);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:.95rem}.pb-base strong{font-size:1.15rem}.pb-base .ico{color:var(--accent)}
.pb-head>.ico{width:30px;height:30px;color:var(--pink)}
.pb-head div{flex:1;min-width:180px;display:grid}
.pb-levels{display:grid;gap:10px}
.pb-level{border:1px solid var(--line);border-radius:12px;padding:12px 14px;border-left:4px solid var(--plan)}
.pb-level.mine{background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--plan)}
.pb-level.locked{opacity:.75}
.pbl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.pb-level ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.pb-level li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pb-level li b{white-space:nowrap}.pb-level li .ico{color:var(--green);flex:0 0 auto}
.plan-grid{display:grid;gap:14px;margin:16px 0 10px}
.plan-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:10px}
.plan-card.mine{background:rgba(255,255,255,.04)}
.plan-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.plan-tagline{color:var(--muted);margin:0}
.plan-price{font-size:1.5rem;font-weight:800;margin:0}
.plan-benefits{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:6px;flex:1}
.plan-benefits li{display:flex;gap:8px;align-items:flex-start;font-size:.95rem}.plan-benefits li .ico{color:var(--green);flex:0 0 auto;margin-top:3px}
.btn.disabled{opacity:.55;cursor:default;pointer-events:none}
.theme-light .passport-benefits,.theme-light .plan-card{background:#fff}
@media (min-width:700px){.plan-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.pb-levels{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(2,3,20,.94);display:none;align-items:center;justify-content:center;padding:16px}
.lightbox.open{display:flex;animation:lbfade .2s ease}
@keyframes lbfade{from{opacity:0}to{opacity:1}}
.lightbox figure{margin:0;max-width:min(96vw,1400px);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:10px}
.lightbox img{max-width:96vw;max-height:84vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.6);background:#000}
.lightbox figcaption{color:#d8d8e6;font-size:.9rem;text-align:center}
.lightbox button{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:50%;width:46px;height:46px;font-size:1.9rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px)}
.lightbox button:hover{background:rgba(255,255,255,.22)}
.lightbox .lb-close{top:16px;right:16px}
.lightbox .lb-prev{left:12px;top:50%;transform:translateY(-50%)}
.lightbox .lb-next{right:12px;top:50%;transform:translateY(-50%)}
.lightbox.single .lb-prev,.lightbox.single .lb-next{display:none}
.lightbox .lb-count{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);color:#fff;font-size:.85rem;background:rgba(0,0,0,.4);padding:4px 12px;border-radius:999px}
@media (max-width:599px){.lightbox button{width:40px;height:40px;font-size:1.6rem}.lightbox .lb-prev{left:6px}.lightbox .lb-next{right:6px}.lightbox img{max-height:78vh}}
.gallery a,.prose img{cursor:zoom-in}
.cover{position:relative}.cover-zoom{position:absolute;right:16px;bottom:16px;z-index:2;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff;backdrop-filter:blur(6px)}

/* ---------- weather (2026-09-14) ---------- */
.weather{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;color:#fff;background:rgba(0,0,0,.42);padding:5px 11px 5px 8px;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.weather .ico{width:20px;height:20px;color:var(--yellow)}
.card-chips{position:absolute;left:10px;top:10px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.card-weather{font-size:.82rem;padding:4px 9px 4px 6px}
.card-count .ico{color:var(--pink)}
.card-weather .ico{width:17px;height:17px}
.cover-weather{margin:0 0 10px;font-size:1rem}
.cover-weather .ico{width:22px;height:22px}
@media (max-width:899px){.weather{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,0,0,.6)}}

/* ---------- stats, invite, card management (2026-09-14) ---------- */
.profile-stats.wide{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:16px}
.pstat.private{border-style:dashed}
.pstat.private span:after{content:" 🔒";font-size:.7em}
.stats-visibility .chips{margin:8px 0 12px}
.check-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.check-chip input{margin:0;accent-color:var(--pink)}
.check-chip:has(input:checked){background:rgba(255,61,119,.15);border-color:var(--pink);color:var(--text)}
.public-stats{margin:0 0 22px}
.invite-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.invite-qr{width:120px;height:120px;flex:0 0 120px;background:#fff;border-radius:12px;padding:6px}
.invite-qr svg{width:100%;height:100%;display:block}
.invite-main{flex:1;min-width:220px;display:grid;gap:8px}
.invite-link input{width:100%;font-family:ui-monospace,monospace;font-size:.85rem}
.btn.copied{background:var(--green)}
.card-manage{display:grid;gap:18px;align-items:start}
.card-facts{margin:0;display:grid;gap:8px}
.card-facts div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:6px 0}
.card-facts dt{color:var(--muted)}.card-facts dd{margin:0;text-align:right}
.pill-off{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(255,61,119,.15);color:var(--pink);font-weight:700;font-size:.85rem}
.card-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 8px}
.passport-card.blocked{filter:grayscale(.85);opacity:.8}
.qr-blocked{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:#fff;color:#c00;border-radius:8px;font-weight:800;text-align:center;gap:4px}
.qr-blocked .ico{width:40%;height:40%}.qr-blocked small{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em}
.card-history{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.card-history li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.ch-ico{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 30px}
.ch-visit .ch-ico{color:var(--green)}.ch-card .ch-ico{color:var(--pink)}.ch-points .ch-ico{color:var(--yellow)}
.ch-text{flex:1;display:grid}.ch-text small{font-size:.75rem}
.ch-pts{font-weight:800}.ch-pts.plus{color:var(--green)}.ch-pts.minus{color:var(--pink)}
@media (min-width:700px){.card-manage{grid-template-columns:minmax(0,420px) 1fr}}
.code-input{font-size:1.6rem;letter-spacing:.4em;text-align:center;font-weight:800}
.newsletter-msg{margin-top:8px}.newsletter-msg.ok{color:var(--green)}.newsletter-msg.err{color:var(--pink)}
.verify-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.auth-box form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ---------- Offers (time-boxed) & rewards ---------- */
.offer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.offer-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px;color:var(--text);transition:.2s;position:relative;overflow:hidden}
.offer-card:hover{transform:translateY(-2px);border-color:var(--pink)}
.offer-card.live{border-color:rgba(34,211,127,.6);box-shadow:0 0 0 1px rgba(34,211,127,.25) inset}
.offer-card .oc-img{flex:0 0 78px;height:78px;border-radius:var(--radius-sm);background:var(--card2) center/cover no-repeat;background-image:var(--img)}
.offer-card .oc-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.offer-card .oc-title{font-size:1.05rem;line-height:1.2}
.offer-card .oc-desc{font-size:.85rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.offer-card .oc-venue,.offer-card .oc-when{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:4px}
.offer-card.live .oc-when{color:var(--green)}
.offer-list{display:flex;flex-direction:column;gap:8px}
.offer-row{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--line)}
.offer-row.live{border-color:rgba(34,211,127,.6)}
.offer-row b{font-size:1rem}.offer-row span{color:var(--muted);font-size:.9rem}
.venue-offers,.venue-rewards,.dest-offers,.dest-rewards{margin-top:28px}
.venue-offers h2,.venue-rewards h2{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.section-head h2{margin:0}
.reward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.reward-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.2s}
.reward-card:hover{border-color:var(--purple)}
.reward-card.locked{opacity:.75}
.reward-card .rw-img{display:block;aspect-ratio:16/9;background:var(--card2) center/cover no-repeat;background-image:var(--img)}
.reward-card .rw-body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.reward-card h3{font-size:1.02rem;margin:0;line-height:1.25}
.reward-card .rw-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.reward-card .rw-points{font-size:1.15rem;color:var(--yellow)}.reward-card .rw-points small{font-size:.7rem;color:var(--muted);font-weight:600}
.reward-card form{margin-top:auto}.reward-card .rw-why{margin-top:auto;display:flex;gap:4px;align-items:center}
.reward-card p{margin:0}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.sec-head h3{margin:0}
.voucher-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:12px}
.voucher{display:flex;gap:14px;background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.voucher.pending{border-color:rgba(255,197,61,.5)}
.voucher.done{opacity:.7}
.voucher-qr{flex:0 0 112px;width:112px;height:112px;background:#fff;border-radius:10px;padding:6px}
.voucher-qr svg{width:100%;height:100%;display:block}
.voucher-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.voucher-body h4{margin:0;font-size:1rem}
.voucher-body p{margin:0}
.voucher-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.08em;font-size:1.05rem}
.voucher-body form{margin-top:6px}
.status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--card);color:var(--muted)}
.status-badge.redeemed{background:rgba(34,211,127,.15);color:var(--green)}
.status-badge.expired,.status-badge.cancelled{background:rgba(255,61,119,.12);color:var(--pink)}
.perk-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:24px 0}
.perk-link{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);transition:.2s}
.perk-link:hover{border-color:var(--pink);transform:translateY(-2px)}
.perk-link>span{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.perk-link small{color:var(--muted);font-size:.8rem}
.perk-link>.ico:first-child{color:var(--yellow)}
@media (max-width:520px){.voucher{flex-direction:column;align-items:center;text-align:center}.voucher-qr{width:160px;height:160px;flex-basis:auto}.voucher-body{align-items:center}}

/* ---------- Useful links & terms ---------- */
.q8{color:#ffc53d}
.useful-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.useful-grid.compact{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.useful-card{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;color:var(--text);transition:.2s;border-left:3px solid var(--cat,#8f97c0)}
.useful-card:hover{transform:translateY(-2px);border-color:var(--cat,var(--pink))}
.useful-card .uc-img{flex:0 0 52px;width:52px;height:52px;border-radius:12px;background:var(--card2) center/cover no-repeat;background-image:var(--img);display:flex;align-items:center;justify-content:center;color:var(--cat,#8f97c0)}
.useful-card .uc-img .ico{width:26px;height:26px}
.useful-card .uc-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.useful-card .uc-title{font-size:.98rem;line-height:1.25}
.useful-card .uc-desc{font-size:.85rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.useful-card .uc-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.75rem;color:var(--muted);margin-top:2px}
.useful-card .uc-meta span{display:inline-flex;align-items:center;gap:3px}
.useful-card .uc-cat{color:var(--cat,#8f97c0);font-weight:700}
.useful-card .uc-phone{color:var(--green);font-weight:700}
.useful-group{margin-top:26px}
.useful-group h2{display:flex;align-items:center;gap:8px;font-size:1.15rem;margin-bottom:10px;padding-left:10px;border-left:3px solid var(--cat,#8f97c0)}
.useful-group h2 small{font-weight:500}
.useful-filter{flex-direction:column;align-items:stretch}
.useful-filter .chips{margin:0}
.useful-filter input[type=search]{max-width:320px}
.useful-teaser{margin-top:28px}
.terms-check{align-items:flex-start;line-height:1.35}
.terms-check input{margin-top:3px}
.terms-check a{text-decoration:underline}
.terms-banner,.terms-accept{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0;border-color:rgba(255,197,61,.5)}
.terms-banner em{color:var(--text);font-style:normal}
.terms-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}
.terms-list li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}
.consent-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px;font-size:.9rem}
@media (min-width:900px){.quickbar.has8{grid-template-columns:repeat(8,1fr)}}

/* ---------- Performers ---------- */
.performer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.performer-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:.2s;position:relative}
.performer-card:hover{transform:translateY(-3px);border-color:var(--purple)}
.performer-card::before{content:"";display:block;height:90px;background:var(--card2) center/cover no-repeat;background-image:var(--img);filter:saturate(1.1)}
.pf-avatar{display:block;width:64px;height:64px;border-radius:50%;background:var(--card2) center/cover no-repeat;background-image:var(--img);border:3px solid var(--bg);box-shadow:0 4px 14px rgba(0,0,0,.4)}
.performer-card .pf-avatar{position:absolute;top:56px;left:14px}
.performer-card .pf-body{padding:38px 14px 14px;display:flex;flex-direction:column;gap:4px}
.performer-card b{font-size:1.05rem;display:flex;align-items:center;gap:4px}
.pf-genres{font-size:.78rem;color:var(--purple);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pf-tagline{font-size:.88rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pf-meta{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.verified{vertical-align:middle}
.performer-cover .performer-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.performer-cover .pf-avatar.big{width:120px;height:120px;border-width:4px}
.performer-cover .pf-tagline{font-size:1rem;color:#fff;opacity:.9}
.performer-chips{display:flex;flex-wrap:wrap;gap:10px}
.performer-chip{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--text);transition:.2s}
.performer-chip:hover{border-color:var(--purple)}
.performer-chip .pc-avatar{width:40px;height:40px;border-radius:50%;background:var(--card2) center/cover no-repeat;background-image:var(--img);flex:0 0 40px}
.performer-chip>span:last-child{display:flex;flex-direction:column;line-height:1.2}
.performer-chip b{font-size:.95rem;display:flex;align-items:center;gap:4px}.performer-chip small{color:var(--muted);font-size:.75rem}
.venue-performers,.event-guests{margin-top:28px}.venue-performers h2,.event-guests h2{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.gallery-item{display:block;aspect-ratio:1;border-radius:var(--radius-sm);background:var(--card2) center/cover no-repeat;background-image:var(--img)}
.venue-mini-list{display:flex;flex-direction:column;gap:8px;list-style:none;padding:0;margin:0}
.venue-mini{display:flex;gap:10px;align-items:center;color:var(--text)}
.venue-mini .vm-img{width:48px;height:40px;border-radius:8px;background:var(--card2) center/cover no-repeat;background-image:var(--img);flex:0 0 48px}
.venue-mini span:last-child{display:flex;flex-direction:column;line-height:1.25}.venue-mini small{color:var(--muted);font-size:.75rem}
.dim-list{opacity:.65}
.radio-group + .role-hint{margin:-6px 0 12px}
.uc-flag{display:inline-block;width:20px;height:20px;border-radius:50%;object-fit:cover;vertical-align:-4px;margin-right:2px;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
.uc-flag.emoji{font-size:15px;line-height:20px;text-align:center;box-shadow:none}

/* ---------- Calendar ---------- */
.cal-nav{display:flex;align-items:center;gap:6px}.cal-nav b{min-width:150px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:10px}
.cal-dow{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;padding:4px 0}
.cal-day{min-height:78px;background:var(--card2);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:2px;font-size:.72rem;overflow:hidden}
.cal-day.out{opacity:.4}.cal-day.today{outline:2px solid var(--pink)}
.cal-num{font-weight:700;color:var(--muted);font-size:.75rem}.cal-day.today .cal-num{color:var(--pink)}
.cal-item{display:block;padding:2px 5px;border-radius:5px;background:rgba(255,255,255,.08);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--k,#8f97c0)}
.cal-item small{color:var(--muted)}.cal-more{color:var(--muted)}
.k-trip{--k:#3d9bff}.k-trip_item{--k:#22d37f}.k-event{--k:#ff3d77}.k-card{--k:#ffc53d}
.cal-legend span{color:var(--k)}.cal-legend{margin-top:8px;display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center}
.cal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.cal-list li{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);background:var(--card2);border-left:3px solid var(--k,#8f97c0)}
.cal-date{display:flex;flex-direction:column;align-items:center;line-height:1;min-width:34px}.cal-date b{font-size:1.15rem}.cal-date small{font-size:.6rem;color:var(--muted);font-weight:700}
.cal-help{margin:10px 0}.cal-help ol{padding-left:18px}
.f-inline{display:flex;align-items:center;gap:8px;margin:8px 0}.f-inline select{width:auto}
@media (max-width:640px){.cal-day{min-height:52px}.cal-item{font-size:0;padding:0;height:6px;border-radius:3px;background:var(--k)}.cal-item small{display:none}}
.input-suffix{display:flex;align-items:center;gap:0}.input-suffix input{border-radius:10px 0 0 10px;flex:1}.input-suffix b{padding:0 12px;height:44px;display:flex;align-items:center;background:var(--card2);border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;font-size:.9rem;color:var(--muted);white-space:nowrap}

/* light theme polish (enabled 14. 9.) */
.theme-light .cover::before{background:linear-gradient(to top,var(--bg) 0%,rgba(20,20,60,.62) 45%,rgba(20,20,60,.35))}
.theme-light .cover .crumb,.theme-light .cover .lead a,.theme-light .cover .pf-tagline{color:#fff}
.theme-light .cover .tags .tag:not(.rainbow){background:rgba(0,0,0,.35);color:#fff}
.theme-light .pay-icons svg,.theme-light .pay-icons span{color:#1a1c33}
.theme-light .pay-icons .pay-visa,.theme-light .pay-icons .pay-apple,.theme-light .pay-icons .pay-google{filter:none;color:#1a1c33}
.theme-light .quickbar{background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.8));border:1px solid rgba(20,20,60,.08)}
.theme-light .q span{color:#1a1c33}
.theme-light .cal-day{background:#eef0fa}.theme-light .cal-item{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.theme-light .useful-card .uc-img,.theme-light .voucher-qr,.theme-light .invite-qr{background-color:#f3f4fb}
.theme-light .terms-banner,.theme-light .terms-accept{background:#fff8e6;border-color:#f5c542}
.theme-light .performer-chip,.theme-light .useful-card,.theme-light .reward-card,.theme-light .offer-card,.theme-light .voucher,.theme-light .perk-link,.theme-light .cal-list li{background:#fff}
.theme-light .pay{color:#1a1c33}.theme-light .pay-paypal i{color:#2a5bd7}

/* ---------- Organisations & campaigns ---------- */
.org-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.org-card{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;color:var(--text);transition:.2s}
.org-card:hover{transform:translateY(-2px);border-color:var(--blue)}
.org-card.compact{margin-top:12px}
.org-logo{flex:0 0 56px;width:56px;height:56px;border-radius:14px;background:#fff center/cover no-repeat;background-image:var(--img);box-shadow:0 0 0 1px var(--line)}
.org-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.org-body b{display:flex;align-items:center;gap:4px;font-size:1rem;line-height:1.25}
.org-kind{font-size:.75rem;color:var(--blue);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.org-tagline{font-size:.85rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.org-meta{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pf-avatar.org{border-radius:22px;background-color:#fff}
.campaign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.campaign-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px;color:var(--text);transition:.2s;border-left:4px solid var(--t,#ff3d77)}
.campaign-card:hover{transform:translateY(-2px);border-color:var(--t,#ff3d77)}
.campaign-card.t-volunteer{--t:#22d37f}.campaign-card.t-fundraiser,.campaign-card.t-donation_drive{--t:#ff3d77}.campaign-card.t-petition{--t:#3d9bff}.campaign-card.t-other{--t:#9b5cff}
.campaign-card .cc-img{flex:0 0 72px;height:72px;border-radius:var(--radius-sm);background:var(--card2) center/cover no-repeat;background-image:var(--img)}
.campaign-card .cc-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.campaign-card .cc-type{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--t,#ff3d77)}
.campaign-card b{font-size:1rem;line-height:1.25}
.campaign-card .cc-org,.campaign-card .cc-meta{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.progress{display:block;height:6px;border-radius:3px;background:var(--card2);margin-top:6px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--yellow));border-radius:3px}
.theme-light .org-card,.theme-light .campaign-card{background:#fff}

/* ---------- community batch: notifications, messenger, groups, interests, calendar views ---------- */
.page.narrow{max-width:820px}.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.center{text-align:center;justify-content:center}.inline{display:inline}.hidden{display:none!important}
.link-btn{background:none;border:0;color:var(--pink);cursor:pointer;font:inherit;padding:0}.link-btn.small{font-size:.8rem}
.plain-list{list-style:none;padding:0;margin:8px 0 0}.plain-list li{display:flex;gap:10px;align-items:center;padding:4px 0}
.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--pink);color:#fff;font-size:.7rem;font-weight:800}
.badge-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--pink);color:#fff;font-size:.62rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}
.header-actions .icon-btn{position:relative}
.notif-menu{width:360px;max-width:calc(100vw - 32px);padding:0;overflow:hidden}
.notif-menu-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
#notif-items{max-height:min(60vh,420px);overflow-y:auto}
.notif-row{display:flex;gap:10px;padding:10px 14px;color:var(--text);border-bottom:1px solid var(--line);align-items:flex-start}
.notif-row:hover{background:var(--card2)}.notif-row.unread{background:rgba(255,61,119,.08)}.notif-row.msgs{background:var(--card2)}
.notif-ico{flex:0 0 32px;width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--card2);color:var(--muted)}
.notif-row.unread .notif-ico,.notif.unread .notif-ico{background:var(--pink);color:#fff}
.notif-ico.t-message{background:rgba(61,155,255,.18);color:#3d9bff}.notif-ico.t-admin{background:rgba(255,197,61,.2);color:#ffc53d}
.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:.85rem}.notif-body b{font-weight:600;line-height:1.25}.notif-body span{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.notif-body small{font-size:.72rem}.notif-none{padding:18px 14px;text-align:center}
.notif-all{display:block;text-align:center;padding:10px;font-weight:600;color:var(--pink)}
.notif-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.notif-list .notif a{display:flex;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--line);color:var(--text);align-items:flex-start}
.notif-list .notif.unread a{border-color:rgba(255,61,119,.4);background:rgba(255,61,119,.06)}
/* messenger */
.conv-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.conv-list .conv a{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--line);color:var(--text)}
.conv-list .conv.unread a{border-color:rgba(255,61,119,.4)}.conv-list .conv.unread b{color:var(--pink)}
.conv-avatar{flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:var(--img) center/cover,var(--card2);display:flex;align-items:center;justify-content:center;color:#fff}
.conv-avatar.grp{border-radius:14px}.conv-avatar.sm{width:32px;height:32px;flex-basis:32px}
.conv-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.conv-preview{color:var(--muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.thread-page{display:flex;flex-direction:column;min-height:calc(100vh - 220px)}
.thread-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:10px}
.thread-who{display:flex;gap:10px;align-items:center;flex:1;color:var(--text);min-width:0}.thread-who span{display:flex;flex-direction:column;line-height:1.2;min-width:0}.thread-who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thread{flex:1;display:flex;flex-direction:column;gap:6px;padding:6px 0;overflow-y:auto;max-height:65vh;scroll-behavior:smooth}
.thread.compact{max-height:380px;background:var(--card2);border-radius:var(--radius-sm);padding:10px;margin-bottom:10px}
.msg{display:flex;gap:8px;align-items:flex-end;max-width:82%}.msg.mine{align-self:flex-end;flex-direction:row-reverse}
.msg-avatar{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--img) center/cover,var(--card2)}
.msg-bubble{position:relative;padding:8px 12px 16px;border-radius:16px 16px 16px 4px;background:var(--card);border:1px solid var(--line);font-size:.92rem;line-height:1.4;word-break:break-word;min-width:70px}
.msg.mine .msg-bubble{background:linear-gradient(135deg,var(--pink),#ff7a3d);color:#fff;border:0;border-radius:16px 16px 4px 16px}
.msg-bubble time{position:absolute;right:10px;bottom:3px;font-size:.62rem;opacity:.7}.msg-name{display:block;font-size:.72rem;color:var(--pink);margin-bottom:2px}
.msg-day{text-align:center;font-size:.72rem;color:var(--muted);margin:8px 0 4px}.msg-day span{background:var(--card2);padding:2px 10px;border-radius:10px}
.msg-form{display:flex;gap:8px;align-items:flex-end;position:sticky;bottom:64px;background:rgba(2,3,22,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:16px;padding:8px}
.theme-light .msg-form{background:rgba(255,255,255,.82)}
.msg-form textarea{flex:1;resize:none;max-height:140px;border-radius:20px;padding:10px 16px;line-height:1.35}
.msg-form .btn{border-radius:50%;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;flex:0 0 44px}
.thread-empty{padding:30px 0}
/* groups */
.groups-grid{margin-top:8px}
.group-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:transform .15s}.group-card:hover{transform:translateY(-2px)}
.group-img{position:relative;height:120px;background:var(--img) center/cover,var(--card2)}.group-lock{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;border-radius:8px;padding:4px 6px;display:flex}
.group-body{display:flex;flex-direction:column;gap:4px;padding:12px 14px}.group-body b{font-size:1rem}
.group-ent,.group-meta{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:4px}.group-desc{font-size:.85rem;color:var(--muted)}
.group-head{display:flex;gap:20px;align-items:flex-start;margin:14px 0 22px;flex-wrap:wrap}
.group-cover{width:160px;height:160px;border-radius:var(--radius);background:var(--img) center/cover,var(--card2);flex:0 0 160px}
.group-head-body{flex:1;min-width:260px}.group-head-body h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.group-layout{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:900px){.group-layout{grid-template-columns:2fr 1fr}}
.member-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.member-list li{display:flex;align-items:center;justify-content:space-between;gap:8px}
.member-mini{display:flex;align-items:center;gap:8px;color:var(--text);min-width:0}.member-actions{display:flex;gap:4px}
.chip.xs{padding:1px 6px;font-size:.65rem}.side-box h3 .right{float:right}
.entity-groups .sec-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
/* interests */
.interest-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.interest-chips.span-all{flex-basis:100%}
.chip.pick{cursor:pointer;display:inline-flex;align-items:center;gap:4px;user-select:none}.chip.pick input{position:absolute;opacity:0;width:0;height:0}
.chip.pick.on,.chip.pick:has(input:checked){background:var(--pink);border-color:var(--pink);color:#fff}
.f-block .f-label{display:block;font-weight:600;font-size:.85rem;margin-bottom:2px}
.community-filter{flex-wrap:wrap}.member-ints{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}
/* calendar views */
.cal-head{flex-wrap:wrap;gap:8px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg a{padding:5px 12px;font-size:.8rem;color:var(--muted);font-weight:600}.seg a.on{background:var(--pink);color:#fff}
.cal-dow .short{display:none}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}
.cal-wday{background:var(--card2);border-radius:8px;padding:6px;min-height:140px;font-size:.75rem;display:flex;flex-direction:column;gap:4px}.cal-wday.today{outline:2px solid var(--pink)}
.cal-whead{display:flex;flex-direction:column;align-items:center;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.cal-whead b{font-size:1.1rem;color:var(--text)}.cal-wday.today .cal-whead b{color:var(--pink)}.cal-whead .short{display:none}
.cal-wlist{display:flex;flex-direction:column;gap:3px}.cal-wlist .cal-item{white-space:normal}
.cal-dayview{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.cal-dayrow{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card2);border-left:3px solid var(--k,#8f97c0);color:var(--text)}
.cal-time{min-width:52px;font-weight:700;color:var(--k,var(--muted));font-size:.85rem}
a.cal-num{color:var(--muted)}a.cal-more{color:var(--muted)}
@media (max-width:640px){
  .cal-dow .full,.cal-whead .full{display:none}.cal-dow .short,.cal-whead .short{display:inline}
  .cal-week{grid-template-columns:1fr;gap:6px}.cal-wday{min-height:0;flex-direction:row;align-items:flex-start}.cal-whead{flex:0 0 40px;flex-direction:column}.cal-wlist{flex:1}
  .cal-wlist .cal-item{font-size:.78rem;padding:4px 6px;height:auto;background:rgba(255,255,255,.08)}
  .notif-menu{position:fixed;top:60px;left:16px;right:16px;width:auto}
  .msg{max-width:92%}.msg-form{bottom:58px}
}
.theme-light .msg-bubble,.theme-light .conv-list .conv a,.theme-light .notif-list .notif a,.theme-light .group-card{background:#fff}
.theme-light .notif-row.unread{background:#fff0f5}.theme-light .cal-wday,.theme-light .cal-dayrow{background:#eef0fa}.theme-light .badge-dot{border-color:#fff}
.thread.compact + .msg-form{position:static;background:transparent;padding:0;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
/* cookie consent */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(8,9,30,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -10px 40px rgba(0,0,0,.35)}
.cookie-inner{max-width:1280px;margin:0 auto;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cookie-text{flex:1;min-width:260px}.cookie-text b{display:flex;align-items:center;gap:6px;margin-bottom:4px}.cookie-text p{margin:0;font-size:.85rem;color:var(--muted)}.cookie-text a{color:var(--pink);text-decoration:underline}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cookie-cats{display:flex;flex-direction:column;gap:8px}
.cookie-cat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card2);cursor:pointer}
.cc-body{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.cc-body small{font-size:.78rem}
.switch{position:relative;flex:0 0 44px;width:44px;height:24px}.switch input{position:absolute;opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;border-radius:12px;background:var(--line);transition:.2s}.switch i:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
.switch input:checked + i{background:var(--pink)}.switch input:checked + i:before{transform:translateX(20px)}.switch input:disabled + i{opacity:.6}
.cookie-dialog-actions{justify-content:flex-end}.footer-cookies{color:var(--muted);display:inline-flex;align-items:center;gap:4px;margin-right:10px}
@media (max-width:640px){.cookie-banner{bottom:calc(var(--bottom-h) + env(safe-area-inset-bottom))}.cookie-actions{width:100%}.cookie-actions .btn{flex:1;justify-content:center}}
.theme-light .cookie-banner{background:rgba(255,255,255,.97)}.theme-light .cookie-cat{background:#eef0fa}
/* share dialog */
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.share-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:var(--radius-sm);background:var(--card2);border:1px solid var(--line);color:var(--text);font:inherit;font-size:.78rem;cursor:pointer;text-align:center}
.share-opt:hover{border-color:var(--pink)}.share-opt .ico{width:24px;height:24px}
.share-opt.wa{color:#25d366}.share-opt.tg{color:#2aabee}.share-opt.fb{color:#1877f2}.share-opt.x{color:var(--text)}.share-opt span{color:var(--text)}
.share-qr{margin-top:4px}.share-qr-box{display:flex;justify-content:center;padding:10px;background:#fff;border-radius:12px;margin-top:8px}.share-qr-box img{width:180px;height:180px}
.share-what{margin:-6px 0 0;font-weight:600;color:var(--text)}
.theme-light .share-opt{background:#fff}
.home2-cols>*{min-width:0}.article-row>span{min-width:0}.article-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- fixes round 1 ---------- */
.useful-grid.compact .useful-card{align-items:center;padding:10px 12px;min-height:74px}
.useful-grid.compact .uc-desc,.useful-grid.compact .uc-host,.useful-grid.compact .uc-phone{display:none}
.useful-grid.compact .uc-title{font-size:.95rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.useful-grid.compact .uc-img{flex-basis:44px;width:44px;height:44px;border-radius:10px}.useful-grid.compact .uc-img .ico{width:22px;height:22px}
@media (max-width:640px){.useful-grid.compact{grid-template-columns:1fr 1fr;gap:8px}.useful-grid.compact .useful-card{flex-direction:column;align-items:flex-start;gap:8px;height:132px;overflow:hidden}.useful-grid.compact .uc-title{-webkit-line-clamp:2;font-size:.88rem}.useful-grid.compact .uc-meta{font-size:.7rem}}
.cover-zoom{display:none}
.card-event .event-date{background:var(--card2);border-color:var(--line)}
/* date inputs: always a calendar icon, whole field opens the picker */
.date-field{position:relative;padding-right:34px}
.date-field::after{content:"";position:absolute;right:10px;top:50%;width:18px;height:18px;transform:translateY(-50%);pointer-events:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center/contain no-repeat;color:var(--muted)}
.date-field input[type=date]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
input[type=date]:not(.date-field input),input[type=datetime-local]{position:relative;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f97c0' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:18px}
input[type=date]:not(.date-field input)::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.date-pair{display:flex;gap:8px}.date-pair .date-field{flex:1;min-width:0}.date-pair .date-field input{width:100%;min-width:0}
/* file inputs styled like buttons */
input[type=file]{font-size:.85rem;color:var(--muted)}
input[type=file]::file-selector-button{font:inherit;font-weight:600;font-size:.85rem;padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);margin-right:10px;cursor:pointer}
input[type=file]::file-selector-button:hover{border-color:var(--accent)}
input.readonly{opacity:.7;cursor:not-allowed}
/* guide view toggle, subtabs, ticket list */
.view-toggle{margin:0 0 14px}.view-toggle a.disabled{opacity:.4;pointer-events:none}.seg a{display:inline-flex;align-items:center;gap:6px}
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.subtabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--muted);font-size:.85rem;font-weight:600}
.subtabs a.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.subtabs .badge-count{margin-left:2px}
.ticket-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.ticket-list .ticket-row{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card2)}
.ticket-list .ticket-body{flex:1;min-width:0;display:flex;flex-direction:column}.ticket-list .past{opacity:.6}.mono{font-family:ui-monospace,monospace}
.tickets .tt-info{display:flex;flex-direction:column;gap:2px;min-width:0}.tickets .tt-desc{color:var(--text);opacity:.85}
.tt-desc-input{margin-top:4px;font-size:.8rem}
/* mobile header search icon */
.show-mobile{display:none}
@media (max-width:899px){.show-mobile{display:inline-flex}}
/* ---------- light theme legibility: anything laid over a photo stays white ---------- */
.card-dest,.card-dest-body,.card-member,.card-member-body,.vcard,.vcard-body,.ecard-img,.cover-inner,.cover .crumb,.cover .lead,.cover h1,.cover .badges,.cover .rdots-label,.group-cover,.ecard .event-date,.ecard-img .event-date b,.ecard-img .event-date span{color:#fff}
.card-dest-body span,.card-member-body span,.card-member-body em.online{color:#e6e6f0}
.card-dest-body strong,.card-member-body strong,.vcard-body strong,.cover h1{text-shadow:0 1px 3px rgba(0,0,0,.55)}
.theme-light .cover::before{background:linear-gradient(to top,var(--bg) 0%,rgba(20,20,60,.55) 38%,rgba(20,20,60,.45) 100%)}
.theme-light .cover .lead,.theme-light .cover .lead a,.theme-light .cover .muted,.theme-light .cover .crumb{color:#fff}
.theme-light .cover .rdots-info summary,.theme-light .cover .rdots-label{color:#fff}
.theme-light .cover .btn-ghost{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.9);color:#14142b}
.theme-light .cover .fav,.theme-light .cover .icon-btn{background:rgba(255,255,255,.92);color:#14142b}.theme-light .cover .fav.on{color:var(--pink)}
.theme-light .cover .report-btn{background:rgba(20,20,60,.55);color:#fff}
/* event date badge inside list cards: readable in both themes */
.card-event .event-date{color:var(--text)}.card-event .event-date span{color:var(--muted)}
.theme-light .ecard-img .event-date{background:rgba(255,255,255,.92);color:#14142b;border-color:transparent}.theme-light .ecard-img .event-date b,.theme-light .ecard-img .event-date span{color:#14142b}
.theme-light .weather{background:rgba(255,255,255,.9);color:#14142b}.theme-light .weather .ico{color:#e0a400}
.theme-light .card-fav{background:rgba(255,255,255,.9);color:#14142b}
.card-member-body .online{color:var(--green)}
/* breathing room between the hero text/avatar and the action buttons – everywhere */
.cover-actions{margin-top:16px;gap:10px 10px}
.performer-cover .performer-head{margin-bottom:6px}.performer-cover .cover-actions{margin-top:20px}
.cover .lead{margin-bottom:6px}
.profile-head .btn-row,.group-head-body .btn-row,.campaign-head .btn-row{margin-top:14px}
.cover .rdots-info{margin-bottom:8px}
/* city picker */
.cp-wrap{position:relative}.cp-wrap input{width:100%}
.cp-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;list-style:none;margin:0;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:260px;overflow-y:auto}
.cp-list li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.9rem}
.cp-list li.on,.cp-list li:hover{background:var(--card2)}.cp-list .cp-name{font-weight:600}.cp-list small{color:var(--muted);margin-left:auto;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}
.cp-flag{font-size:1rem}
.cp-invalid{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.cp-msg{display:flex;gap:6px;align-items:flex-start;color:var(--muted);font-size:.8rem;margin-top:6px;padding:8px 10px;border-radius:8px;background:var(--card2);border-left:3px solid var(--accent)}.cp-msg::before{content:"ⓘ";color:var(--accent);font-weight:700}
.cp-flag.img{border-radius:2px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.flag-img{vertical-align:-2px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.cp-msg[hidden]{display:none}
/* ---------- tickets & orders ---------- */
.ticket-form .qty select{min-width:70px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);font:inherit}
.ticket-total{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end;padding:12px 4px 0}.ticket-total .tt-sum{font-weight:700}.ticket-total .muted{margin-right:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.order-row a{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;color:inherit}
.order-ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);flex:none}.order-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.order-total{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.order-summary{margin-bottom:22px}.order-summary p{margin:10px 0}.order-items{width:100%;border-collapse:collapse;margin-top:8px}.order-items td{padding:6px 0;border-top:1px solid var(--line)}.order-items td.num{text-align:right;white-space:nowrap}.order-items tr.total td{font-weight:700;border-top:2px solid var(--line)}
.h-sm{font-size:1.15rem;margin:18px 0 4px}
.ticket-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:10px 0 20px}.ticket-card{display:flex;gap:12px;align-items:center;background:#fff;color:#111;border-radius:14px;padding:10px 12px;border:1px solid var(--line)}.ticket-card .tc-qr{width:84px;height:84px;flex:none}.ticket-card .tc-qr svg{width:100%;height:100%}.ticket-card .tc-body{display:flex;flex-direction:column;gap:2px;min-width:0}.ticket-card .mono{font-size:.85rem;letter-spacing:.02em}.ticket-card.used,.ticket-card.cancelled{opacity:.6}.ticket-card .muted{color:#666}
.ticket-big{max-width:520px;margin:10px auto;background:#fff;color:#111;border-radius:22px;padding:24px;box-shadow:0 10px 40px rgba(0,0,0,.25)}.ticket-big h1{font-size:1.4rem;margin:8px 0 4px;color:#111}.ticket-big .lead{color:#444;margin:0}.ticket-big .lead a{color:#111}.tb-qr{text-align:center;margin:18px 0;padding:18px 0;border-top:2px dashed #ddd;border-bottom:2px dashed #ddd}.tb-qr svg{width:min(260px,70vw);height:auto}.tb-code{font-size:1.1rem;letter-spacing:.08em;margin-top:8px}.tb-qr .muted{color:#666}.tb-holder{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.tb-holder label{display:flex;flex-direction:column;gap:4px;flex:1;font-size:.85rem;color:#444}.tb-holder input{padding:9px 12px;border:1px solid #ccc;border-radius:10px;font:inherit;background:#fff;color:#111}.ticket-big.used .tb-qr,.ticket-big.cancelled .tb-qr{opacity:.35}.tb-actions{margin-top:14px}
.ticket-page .crumb{color:var(--muted)}
@media print{.site-header,.site-footer,.tb-actions,.tb-holder button,.crumb,#cookie-banner{display:none!important}.ticket-big{box-shadow:none;margin:0}}

/* ---------- destinations tree (continent → country → destination) ---------- */
.dest-tree{margin:6px 0 22px;display:flex;flex-direction:column;gap:10px}
.dest-continents{display:flex;gap:8px;flex-wrap:wrap}
.dest-continent-one{margin:0;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.dest-tree .chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s}
.dest-tree .chip small{color:var(--muted);font-weight:500}
.dest-tree .chip:hover{border-color:var(--accent)}
.dest-tree .chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}.dest-tree .chip.on small{color:inherit;opacity:.8}
.dest-countries{display:flex;gap:8px;flex-wrap:wrap}
.flag-chip .flag{font-size:1.1rem;line-height:1;display:inline-flex}.flag-chip .flag .flag-img{width:20px;height:15px;border-radius:2px}
.dest-countries-select{display:none}.dest-countries-select select{width:100%;border-radius:12px;padding:12px 40px 12px 14px;border:1px solid var(--line);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239a9ab3' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;color:var(--text);font:inherit;appearance:none}
.dest-country{margin:0 0 26px}.dest-country-head{display:flex;align-items:center;gap:10px;font-size:1.25rem;margin:0 0 12px}.dest-country-head a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:10px}.dest-country-head .flag{font-size:1.4rem;line-height:1;display:inline-flex}.dest-country-head .flag .flag-img{width:28px;height:21px;border-radius:3px}.dest-country-head small{font-weight:500}
@media (max-width:720px){.dest-countries{display:none}.dest-countries-select{display:block}.dest-continents{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}.dest-continents .chip{flex:none}}

/* ---------- getting there ---------- */
.getting-there{margin:0 0 30px}.gt-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media (max-width:760px){.gt-grid{grid-template-columns:1fr}}
.gt-col h3{font-size:1rem;margin:0 0 10px;display:flex;align-items:center;gap:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.gt-hubs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.gt-hub{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}
.gt-ico{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}.gt-hub.t-train .gt-ico{background:rgba(61,155,255,.15);color:#3d9bff}.gt-hub.t-bus .gt-ico{background:rgba(34,211,127,.15);color:#22d37f}.gt-hub.t-port .gt-ico{background:rgba(255,197,61,.15);color:#ffc53d}
.gt-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.gt-body b a{color:inherit}.gt-code{font-weight:600;font-size:.8rem;padding:1px 6px;border-radius:6px;background:var(--card2);color:var(--muted);margin-left:4px}.gt-body small{color:var(--muted)}
.gt-nav{flex:none}.gt-transit{white-space:pre-line;margin:0 0 10px}.gt-rides{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.ride-chip{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}a.ride-chip:hover{border-color:var(--accent)}.gt-foot{margin-top:10px}
.near-hubs{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:-6px 0 12px;font-size:.92rem;opacity:.95}.near-hubs span{display:inline-flex;align-items:center;gap:5px}.near-hubs small{opacity:.8}.near-hub{white-space:nowrap}

/* LGBTQ+ safety level (destinations) */
.badge-safety{display:inline-flex;align-items:center;gap:5px;font-weight:700}
.badge-safety-1{background:#f5b000;color:#1a1200}
.badge-safety-2{background:#e0203a;color:#fff}
.badge-lg{font-size:.55em;vertical-align:middle;padding:5px 10px;border-radius:999px}
.card-dest .card-badge.badge-safety{left:auto;right:10px;top:auto;bottom:62px}
.safety-notice{display:flex;gap:14px;align-items:flex-start;padding:14px 18px;border-radius:14px;margin:0 0 22px;border:1px solid;background:var(--card)}
.safety-notice .ico{flex:none;width:26px;height:26px;margin-top:2px}
.safety-notice strong{display:block;margin-bottom:4px}
.safety-notice p{margin:0 0 6px}
.safety-notice small{color:var(--muted)}
.safety-1{border-color:#f5b000;color:inherit}.safety-1 .ico,.safety-1 strong{color:#f5b000}
.safety-2{border-color:#e0203a;background:rgba(224,32,58,.10)}.safety-2 .ico,.safety-2 strong{color:#ff5a70}

/* photographer credit on destination cover (Pexels) */
.photo-credit-cover{position:absolute;right:10px;bottom:6px;z-index:2;font-size:.68rem;line-height:1.2;color:rgba(255,255,255,.85);background:rgba(0,0,0,.4);padding:3px 8px;border-radius:999px;text-decoration:none;backdrop-filter:blur(4px);max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-credit-cover:hover{color:#fff;background:rgba(0,0,0,.6)}
@media (max-width:767px){.cover:has(.photo-credit-cover) .cover-inner{padding-bottom:30px}}
/* light theme: favourite heart must show its "on" state (the white light-theme background used to win over .fav.on) */
.theme-light .fav.on,.theme-light .card-fav.on,.theme-light .cover .fav.on{background:var(--pink);color:#fff}
.theme-light .fav.on .ico{fill:#fff;stroke:#fff}
/* date fields: drop the browser's own look (Chrome on Android draws an extra ▾ arrow next to our calendar icon); keep text left-aligned (iOS centres it) */
input[type=date],input[type=datetime-local],input[type=time]{-webkit-appearance:none;appearance:none;text-align:left}
input[type=date]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left}
input[type=date]::-webkit-inner-spin-button,input[type=datetime-local]::-webkit-inner-spin-button,input[type=time]::-webkit-inner-spin-button,input[type=date]::-webkit-clear-button{display:none;-webkit-appearance:none}
/* side info box: long values (web, e-mail) never overflow – one line with "…", full text on hover */
.info-box p>span{flex:1;min-width:0}
.info-box a{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* multi-photo upload (assets/js/multi-upload.js) */
.mu-input{display:none!important}
.mu{margin-top:6px}
.mu-drop{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px 12px;border:2px dashed var(--line);border-radius:12px;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:center}
.mu-drop:hover,.mu-drop.on{border-color:var(--accent,var(--pink,#ff3d77));background:rgba(255,61,119,.06)}
.mu-drop:disabled{opacity:.5;cursor:not-allowed}
.mu-drop small{color:var(--muted);font-size:.78rem}
.mu-plus{font-size:1.6rem;line-height:1;color:var(--accent,var(--pink,#ff3d77))}
.mu-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:10px}
.mu-list:empty{display:none}
.mu-item{position:relative;aspect-ratio:1;border-radius:8px;background:var(--panel2,#222) center/cover no-repeat}
.mu-x{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:16px;line-height:24px;padding:0;cursor:pointer}
.mu-x:hover{background:#e0245e}
.mu-status{margin:8px 0 0;font-size:.82rem;color:var(--muted);min-height:1em}
.mu-status.mu-warn{color:var(--red,#ff5252);font-weight:600}

/* ---------- In an emergency (numbers + embassies) ---------- */
.emergency{margin:0 0 30px}.em-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media (max-width:760px){.em-grid{grid-template-columns:1fr}}
.em-col h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin:0 0 12px}
.em-numbers{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:0 0 10px}
.em-num{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--line);color:inherit;text-decoration:none}
.em-num b{font-size:1.5rem;line-height:1.1;letter-spacing:.02em}.em-num span{font-size:.82rem;color:var(--muted)}
.em-num-long b{font-size:1.1rem;white-space:nowrap}
.em-num:hover{border-color:var(--accent)}
.em-num-main{grid-column:1/-1;background:rgba(255,82,82,.12);border-color:rgba(255,82,82,.45)}.em-num-main b{font-size:2.1rem;color:#ff5252}
.em-nat{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}.em-nat select{flex:1;min-width:180px;max-width:320px}
.em-missions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.em-mission{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}
.em-flag{font-size:1.5rem;line-height:1;flex:none;width:30px;text-align:center}.em-flag .flag-img{width:26px;height:auto;border-radius:3px}
.em-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.em-body small{display:block}
.em-tel{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;font-weight:600;word-break:break-word}.em-tel:hover{color:var(--accent)}
.em-tel-urgent{color:#ff5252}.em-tel-urgent .muted{font-weight:400}
.em-hotline{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-top:12px;padding:12px;border-radius:var(--radius-sm);border:1px dashed rgba(255,82,82,.45);background:rgba(255,82,82,.06)}
.em-hotline b{display:flex;align-items:center;gap:6px}
.em-hotline .btn{margin-top:4px}
/* searchable country picker (replaces the long select) */
.cc-search{position:relative;width:100%;max-width:360px}
.cc-search input{width:100%;font-size:16px}
.cc-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:260px;overflow:auto;margin:0;padding:4px;list-style:none;background:var(--card2,#15162a);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.cc-list li button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;background:none;color:var(--text);border-radius:8px;font:inherit;cursor:pointer}
.cc-list li button:hover,.cc-list li button.on{background:rgba(255,61,119,.14)}
.cc-list li.cc-none{padding:9px 10px;color:var(--muted)}
.theme-light .cc-list{background:#fff}
.em-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.em-unverified{font-style:italic}
.em-locate{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 0}.em-locate[hidden],.em-locate [hidden]{display:none}
.em-foot{margin:14px 0 0}.em-page-filter{margin:0 0 22px}.em-page-filter select{min-width:240px}

/* ---------- Useful: detail page of an item ---------- */
.useful-detail .crumb{display:inline-flex;align-items:center;gap:6px;color:var(--muted);margin:0 0 14px}
.ud-head{display:flex;gap:18px;align-items:flex-start;margin:0 0 22px;padding:18px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--cat,#8f97c0);border-radius:var(--radius)}
.ud-img{flex:0 0 88px;width:88px;height:88px;border-radius:18px;background:var(--card2) center/cover no-repeat;background-image:var(--img);display:flex;align-items:center;justify-content:center;color:var(--cat,#8f97c0)}.ud-img .ico{width:40px;height:40px}
.ud-title{flex:1;min-width:0}.ud-title h1{font-size:1.6rem;line-height:1.2;margin:0 0 6px}.ud-title .lead{margin:8px 0 0}
.ud-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:.85rem;color:var(--muted)}.ud-meta>*{display:inline-flex;align-items:center;gap:4px}.ud-meta .uc-cat{color:var(--cat,#8f97c0);font-weight:700}
.ud-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;margin:0 0 30px}.ud-grid.one{grid-template-columns:1fr}
.ud-main .prose{font-size:1rem;line-height:1.65}
.ud-side{display:flex;flex-direction:column;gap:12px}.ud-side h3{font-size:.95rem;margin:6px 0 0}
.ud-go{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px}.ud-go small{font-weight:400;opacity:.85;font-size:.78rem}
.ud-contacts,.ud-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ud-contacts a,.ud-contacts .ud-row{display:flex;gap:12px;align-items:center;padding:11px 13px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);color:inherit;text-decoration:none}
.ud-contacts a:hover{border-color:var(--cat,var(--accent))}.ud-contacts .ico{flex:none;width:22px;height:22px;color:var(--cat,#8f97c0)}
.ud-contacts small{display:block;font-size:.74rem;color:var(--muted)}.ud-contacts b{display:block;word-break:break-word}
.ud-links a{display:inline-flex;align-items:center;gap:6px;word-break:break-word}
@media (max-width:860px){.ud-grid{grid-template-columns:1fr}.ud-side{order:-1}.ud-head{flex-wrap:wrap}.ud-img{flex-basis:64px;width:64px;height:64px}.ud-title h1{font-size:1.3rem}.ud-actions{width:100%}}

/* ---------- Map: optional layers (transport, embassies) ---------- */
.pin.info{width:28px;height:28px;border-radius:9px;transform:none;box-shadow:0 2px 6px rgba(0,0,0,.45),0 0 0 2px #fff}.pin.info i{transform:none}
.map-layers{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.map-layer-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid rgba(0,0,0,.18);background:#fff;color:#1a1d33;font:600 12px/1.2 inherit;cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.3)}
.map-layer-btn .ico{width:14px;height:14px;color:var(--ly)}.map-layer-btn:hover{border-color:var(--ly)}
.map-layer-btn.on{background:var(--ly);border-color:var(--ly);color:#fff}.map-layer-btn.on .ico{color:#fff}
.map-layer-hint{max-width:220px;padding:7px 10px;border-radius:10px;background:#fff;color:#1a1d33;font-size:12px;line-height:1.35;box-shadow:0 1px 5px rgba(0,0,0,.3)}.map-layer-hint a{color:#c2185b;font-weight:600}

/* local time of a place */
.cover-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.cover-chips .cover-weather{margin:0}
.local-clock .ico{color:#fff;opacity:.9}
.local-clock small{font-weight:500;font-size:.78rem;opacity:.9;white-space:nowrap}
.local-clock b{font-variant-numeric:tabular-nums}
.tz-note{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:4px;font-size:.78rem;font-weight:500;color:var(--muted,#8a8a99);line-height:1.3}
.tz-note .ico{width:13px;height:13px;opacity:.8}
.info-box .tz-note{display:flex}
.tz-inline{opacity:.8;white-space:nowrap}
.tz-line{margin:-4px 0 10px}
.ticket-big .tz-note{justify-content:center;color:inherit;opacity:.75}
@media (max-width:480px){.local-clock small{font-size:.72rem}}

/* opening hours */
.is-temp{background:rgba(255,176,32,.18);color:#ffc45c}
.badges .badge-link{text-decoration:none;display:inline-flex}
.badges .is-open.badge,.badges .is-closed.badge{font-size:.72rem;padding:5px 11px;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:rgba(0,0,0,.5)}
.card-place{display:flex;align-items:center;gap:6px}
.card-place>span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-place .is-open,.card-place .is-closed{flex:none}
.info-box .hours-box{display:flex;gap:12px;margin:0 0 14px;font-size:.92rem}
.info-box .hours-box>span{flex:1;min-width:0}
.hours-status{display:inline-block;margin:4px 0 8px;font-size:.78rem;padding:4px 10px}
.hours-daily{display:block}
.hours-table{display:grid;gap:3px}
.hours-line{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.hours-line>span:last-child{text-align:right;white-space:nowrap}
.hours-line>span:first-child{color:var(--muted)}
.hours-line.closed>span:last-child{color:var(--muted)}
.hours-line.today{font-weight:700}
.hours-line.today>span:first-child{color:var(--text)}

/* guide / accommodation filter */
.guide-filter{margin-top:16px}
.gf-main{display:flex;gap:8px;align-items:stretch}
.gf-main .gf-search{flex:1 1 auto;min-width:0;height:46px;box-sizing:border-box}
.gf-main .gf-search input{height:100%;padding-top:0;padding-bottom:0}
.gf-main select{height:46px;box-sizing:border-box;width:auto;max-width:240px;border-radius:10px;padding:0 36px 0 14px;appearance:none;-webkit-appearance:none;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239a9ab3' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;border:1px solid var(--line);color:var(--text);font:inherit;text-overflow:ellipsis}
.gf-main select.is-set{border-color:var(--pink);background-color:rgba(255,61,119,.12)}
.gf-go{height:46px;padding:0 20px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.gf-cats{margin:12px 0 0}
.gf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
.gf-bar .view-toggle{margin:0}
.gf-count{margin:0;color:var(--muted);font-size:.88rem}
.gf-mostgay{display:inline-flex;align-items:center;gap:6px;margin-right:auto}
.gf-mostgay .rdots{margin-left:0}
.gf-mostgay .rdots i{width:7px;height:7px}
.gf-count a{color:var(--pink);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.gf-count a .ico{width:14px;height:14px}
@media (max-width:720px){
  .gf-main{flex-wrap:wrap}
  .gf-main .gf-search{flex:1 1 calc(100% - 62px)}
  .gf-go{order:2;padding:0 16px}.gf-go span{display:none}
  .gf-main select{order:3;flex:1 1 0;max-width:none;min-width:0}
  .gf-cats{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
  .gf-cats::-webkit-scrollbar{display:none}
  .gf-cats .chip{flex:none;white-space:nowrap}
}

/* Pharoos pass partner – highlighted card */
.card-venue.is-partner,.vcard.is-partner{border:2px solid transparent;background-image:linear-gradient(var(--card),var(--card)),linear-gradient(135deg,#ff3d77,#ff9f1c,#ffe14d,#22d37f,#3d9bff,#9b5cff);background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 0 0 1px rgba(255,61,119,.12),0 8px 28px rgba(155,92,255,.18)}
.vcard.is-partner{background-image:var(--img),linear-gradient(135deg,#ff3d77,#ff9f1c,#ffe14d,#22d37f,#3d9bff,#9b5cff);background-size:cover,auto;background-position:center,center}
.card-venue.is-partner:hover,.vcard.is-partner:hover{box-shadow:0 0 0 1px rgba(255,61,119,.25),0 10px 34px rgba(155,92,255,.3)}

/* trip planner results + paged grids */
[data-pager]>[hidden]{display:none!important}
.pager-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0 0;color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums}
.pager-nav[hidden]{display:none}
.pager-nav .btn{min-width:40px;font-size:1.1rem;line-height:1;padding:8px 12px}
.pager-nav .btn:disabled{opacity:.35;cursor:default}
.plan-page .plan-form{margin-top:0}
.plan-form .date-field{height:46px;box-sizing:border-box}
.plan-nav{margin:14px 0 6px}
.plan-nav .chip small{opacity:.7;margin-left:4px;font-weight:700}
.plan-section{scroll-margin-top:calc(var(--header-h,64px) + 16px);margin-top:28px}
.inline-form{display:inline-flex;margin:0}
@media (max-width:720px){
  .plan-form .gf-main select{flex:1 1 100%;order:0}
  .plan-form .date-field{flex:1 1 calc(50% - 4px);order:1;min-width:0}
  .plan-form .gf-go{order:2;flex:1 1 100%;justify-content:center}.plan-form .gf-go span{display:inline}
  .plan-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.plan-nav::-webkit-scrollbar{display:none}.plan-nav .chip{flex:none;white-space:nowrap}
}

/* "In an emergency" folded under one quiet row (destination page) */
.em-fold details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius,16px);background:var(--card);transition:border-color .15s}
.em-fold details>summary::-webkit-details-marker{display:none}
.em-fold details>summary:hover{border-color:var(--pink)}
.em-fold .em-summary>.ico{width:22px;height:22px;color:var(--muted);flex:none}
.em-fold .em-summary>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.em-fold .em-summary b{font-size:1rem}
.em-fold .em-summary small{color:var(--muted);font-size:.84rem;font-weight:400}
.em-fold .em-chevron{transition:transform .2s;transform:rotate(90deg);color:var(--muted);flex:none}
.em-fold details[open] .em-chevron{transform:rotate(-90deg)}
.em-fold details[open]>summary{margin-bottom:18px}
.near-note{margin:-6px 0 10px;display:flex;align-items:center;gap:6px}
.card-venue .card-body p.card-place{display:flex;align-items:center;gap:6px;-webkit-line-clamp:unset;overflow:visible}
.card-place>.ico{flex:none}

/* repeating events */
.repeat-tag{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:700;color:var(--pink);background:rgba(255,61,119,.12);white-space:nowrap}
.repeat-dates{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.info-box .repeat-dates a{display:inline-block;max-width:none;padding:2px 9px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;color:var(--text)}
.info-box .repeat-dates a:hover{border-color:var(--pink)}
/* discreet "report" text link (opening hours are wrong / contact is wrong) */
.report-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:0;border:0;background:none;font:inherit;font-size:.78rem;color:var(--muted,#8a8a99);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.report-link:hover,.report-link:focus-visible{color:var(--text,inherit)}
.report-link .ico{width:12px;height:12px;opacity:.8}
.info-box .report-link{display:flex}
.hours-updated{display:block;margin-top:4px;font-size:.78rem;color:var(--muted,#8a8a99)}
.hours-updated.is-old{color:#ffb020}
/* opening hours: running season, coming exceptions and seasons */
.hours-season-now{display:block;margin:0 0 6px;font-size:.8rem;font-weight:600;color:var(--muted,#8a8a99)}
.hours-upcoming{display:block;margin-top:10px;padding-top:8px;border-top:1px dashed rgba(128,128,160,.3);font-size:.88rem}
.hours-upcoming>b{display:block;margin-bottom:4px;font-size:.8rem}
.hours-upcoming .hours-line{display:flex;justify-content:space-between;gap:12px;padding:2px 0}
.hours-upcoming .hours-line>span:last-child{text-align:right}
.hours-line small{display:block;font-size:.74rem;font-weight:500;color:var(--muted,#8a8a99)}
.hours-season-next{margin:4px 0}
.hours-season-next summary{cursor:pointer}
.hours-season-next summary small{color:var(--muted,#8a8a99)}
.hours-season-next .hours-table{display:block;margin-top:4px}
.hours-line small{white-space:normal}

/* who will be there at the same time */
.companions-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.companions-note p{margin:0;flex:1 1 320px}
.companion-tag{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:.76rem;color:#22d37f}
.companion-tag .ico{width:12px;height:12px}
/* trip planner: pick several cards → add to a saved trip */
.plan-pick{position:sticky;bottom:12px;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0;padding:10px 14px;border-radius:14px;background:var(--card,#0d0f33);border:1px solid rgba(128,128,160,.3);box-shadow:0 8px 30px rgba(0,0,0,.35)}
.plan-pick.active{border-color:#22d37f}
.plan-pick-more{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px}
.plan-pick-more[hidden],.plan-pick-hint[hidden]{display:none}
.plan-pick select{width:auto;max-width:260px}
.plan-pick-hint{flex-basis:100%}
body.picking [data-pick]{cursor:copy;position:relative}
body.picking [data-pick]:not(.picked){opacity:.75}
[data-pick].picked{outline:3px solid #22d37f;outline-offset:2px;opacity:1}
[data-pick].picked::after{content:"\2713";position:absolute;top:8px;left:8px;z-index:3;width:26px;height:26px;border-radius:50%;background:#22d37f;color:#03041b;font-weight:800;display:grid;place-items:center}
/* saved trip: opening hours of a venue on the planned day */
.ti-hours{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;color:var(--muted,#8a8a99)}
.ti-hours.warn{color:#ffb020}
.ti-hours .ico{width:13px;height:13px}
@media (max-width:899px){.plan-pick{bottom:calc(var(--bottom-h) + env(safe-area-inset-bottom) + 10px)}}
/* videos: click-to-load previews */
.videos{margin:22px 0}
.video-grid{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){.video-grid.n2{grid-template-columns:repeat(2,1fr)}}
.video{min-width:0}
.video-facade,.video iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:14px;overflow:hidden;background:#05061f}
.video.vertical{max-width:340px}
.video.vertical .video-facade,.video.vertical iframe{aspect-ratio:9/16}
.video-facade{position:relative;cursor:pointer;padding:0;color:#fff;background:linear-gradient(135deg,#1b1d52,#3a1857);background-image:linear-gradient(rgba(3,4,27,.15),rgba(3,4,27,.55)),var(--img,linear-gradient(135deg,#1b1d52,#3a1857));background-size:cover;background-position:center}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:rgba(255,61,119,.92);box-shadow:0 8px 30px rgba(0,0,0,.45);transition:transform .15s}
.video-facade:hover .video-play,.video-facade:focus-visible .video-play{transform:translate(-50%,-50%) scale(1.08)}
.video-play .ico{width:28px;height:28px;margin-left:3px}
.video-note{position:absolute;left:10px;right:10px;bottom:8px;font-size:.72rem;opacity:.85;text-align:center;text-shadow:0 1px 3px #000}
.video-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.8rem;color:var(--muted,#8a8a99)}
/* reservations – guest side */
.k-reservation{--k:#9b5cff}
.reserve-grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:900px){.reserve-grid{grid-template-columns:minmax(0,1fr) 320px}}
.reserve-page .side-box{margin-bottom:16px}
.reserve-when .form-grid{align-items:end}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin:10px 0}
.slot{position:relative;display:block;cursor:pointer}
.slot input{position:absolute;opacity:0;inset:0;cursor:pointer}
.slot span{display:flex;align-items:center;justify-content:center;gap:3px;padding:10px 6px;border-radius:12px;border:1px solid rgba(128,128,160,.35);font-weight:700;font-variant-numeric:tabular-nums}
.slot span small{font-size:.65rem;opacity:.7}
.slot input:checked+span{border-color:transparent;background:linear-gradient(90deg,#ff3d77,#9b5cff);color:#fff}
.slot input:focus-visible+span{outline:2px solid #3d9bff;outline-offset:2px}
.slot.full{cursor:not-allowed}
.slot.full span{opacity:.35;text-decoration:line-through}
.reserve-how{margin:0 0 12px;padding-left:20px;display:grid;gap:6px;font-size:.92rem}
.res-list{display:grid;gap:12px}
.res-card{display:flex;gap:14px;align-items:flex-start}
.res-card.dim{opacity:.65}
.res-thumb{flex:0 0 84px;height:84px;border-radius:12px;background:var(--img) center/cover,#1b1d52}
.res-body{flex:1;min-width:0;display:grid;gap:4px}
.res-body p{margin:0}
.res-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.res-hint{color:#ffb020}
/* social networks of profiles */
.social-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.social-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid rgba(128,128,160,.3);color:inherit;font-size:.82rem;font-weight:600;line-height:1}
.social-btn .ico{width:16px;height:16px}
.social-btn:hover{border-color:#ff3d77;color:#ff3d77}
.social-row.in-box{margin:2px 0 12px}
.social-row.in-box .social-btn span{display:none}
.social-row.in-box .social-btn{padding:9px}
.social-edit{border:1px solid rgba(128,128,160,.25);border-radius:12px;padding:12px}
.social-edit legend{padding:0 6px;font-weight:700}
.social-edit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:8px}
.social-edit-row label>span{display:block;font-size:.8rem;color:var(--muted,#8a8a99)}
/* ready-made phrases (reservations, bookings) */
.phrase-picks{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.phrase-pick{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(128,128,160,.3);font-size:.82rem;cursor:pointer;line-height:1.25}
.phrase-pick input[type=checkbox]{width:15px;height:15px;margin:0;flex:0 0 auto}
.phrase-pick:has(input:checked){border-color:#22d37f;background:rgba(34,211,127,.12)}
.phrase-n{width:58px!important;min-width:0;padding:2px 6px!important;margin:0 4px;display:inline-block}
.phrase-list{margin:6px 0 0;padding-left:18px;display:grid;gap:3px}
.phrase-free small{white-space:nowrap}
.phrase-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:2px}
.phrase-answer{flex-basis:100%;margin:2px 0}
.phrase-answer summary{cursor:pointer;font-size:.85rem;font-weight:600}
.phrase-group{margin-top:6px}
.phrase-group>b{font-size:.76rem;color:var(--muted,#8a8a99);text-transform:uppercase;letter-spacing:.04em}

/* ---------- Destination partners (institutions standing behind LGBTQ+ travellers) ---------- */
.dp-grid{display:grid;gap:12px;grid-template-columns:1fr}
.dp-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.dp-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--rainbow)}
.dp-card-head{display:flex;align-items:center;gap:12px}
.dp-card-title{display:flex;flex-direction:column;min-width:0}
.dp-card-title strong{font-size:1rem;line-height:1.25}
.dp-card-title small{color:var(--muted);display:block;font-size:.8rem;margin-top:2px}
.dp-card-title small .ico{display:inline-block;vertical-align:-2px;margin-right:2px}
.dp-logo{flex:0 0 auto;width:58px;height:58px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:6px;overflow:hidden}
.dp-logo img{max-width:100%;max-height:100%;object-fit:contain}
.dp-logo-ico{background:var(--card2);color:var(--muted)}
.dp-logo-ico .ico{width:26px;height:26px}
.dp-logo-lg{width:112px;height:112px;border-radius:20px;padding:12px}
.dp-logo-lg.dp-logo-ico .ico{width:46px;height:46px}
.dp-says{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9rem}
.dp-says li{display:flex;gap:8px;align-items:flex-start}
.dp-says .ico{color:var(--green);flex:0 0 auto;margin-top:3px}
.dp-says-lg{font-size:1rem;gap:10px}
.dp-own{margin:0;color:var(--muted);font-style:italic;font-size:.9rem}
.dp-more{margin-top:auto;font-size:.85rem;font-weight:700;color:var(--pink);display:inline-flex;align-items:center;gap:4px}
.dp-intro{margin:-4px 0 12px;max-width:70ch}
.dp-invite{margin-top:18px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dp-invite a{color:var(--pink);font-weight:700}
.dp-hub-mark{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;color:var(--green);margin-top:3px}
.card-partner .ico{color:var(--green)}
.dp-hero{text-align:center;max-width:720px;margin:10px auto 26px}
.dp-hero-ico{display:inline-flex;width:64px;height:64px;border-radius:50%;align-items:center;justify-content:center;background:var(--rainbow-soft);color:#fff;margin-bottom:12px}
.dp-hero-ico .ico{width:30px;height:30px}
.dp-hero-ico.ok{background:var(--green)}.dp-hero-ico.bad{background:var(--orange)}
.dp-why{display:grid;gap:12px;grid-template-columns:1fr;margin-bottom:10px}
.dp-why .side-box{margin:0}.dp-why p{margin:0}
.dp-empty{text-align:center;margin:24px 0}
.dp-types{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.dp-who,.dp-manage{margin-top:22px}
.dp-head{display:flex;gap:18px;align-items:center;margin:14px 0 22px;flex-wrap:wrap}
.dp-head h1{margin:6px 0 4px}
.dp-head .lead{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.dp-head .lead a{text-decoration:underline}
.dp-badge{background:rgba(34,211,127,.16);color:var(--green);display:inline-flex;gap:5px;align-items:center}
.dp-cols{display:grid;gap:16px;grid-template-columns:1fr}
.dp-quote{margin:16px 0 0;padding:12px 16px;border-left:3px solid var(--pink);background:var(--card2);border-radius:0 12px 12px 0;font-size:1rem;line-height:1.6}
.dp-since{margin:16px 0 0}
.dp-form h2{font-size:1.05rem;display:flex;gap:8px;align-items:center;margin:22px 0 10px}
.dp-form h2:first-of-type{margin-top:0}
.dp-form label small{display:block;margin-top:4px;font-weight:400}
.dp-scope{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.dp-filter{width:100%;margin-bottom:8px}
.dp-places{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:6px 12px 12px;background:rgba(0,0,0,.15);margin-bottom:6px}
.dp-places fieldset{border:0;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.dp-places legend{font-size:.78rem;font-weight:700;color:var(--muted);padding:0;margin-bottom:4px;width:100%}
.dp-places .phrase-pick:has(input:disabled){opacity:.45;cursor:not-allowed}
.dp-hub{display:block;margin-top:12px}
.dp-agree{display:flex;gap:8px;align-items:flex-start;margin:16px 0;font-size:.9rem}
.dp-agree input{margin-top:3px;flex:0 0 auto}
.dp-snippet{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem}
.dp-st{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700;background:var(--card2)}
.dp-st-approved{background:rgba(34,211,127,.16);color:var(--green)}
.dp-st-pending,.dp-st-unverified{background:rgba(255,197,61,.16);color:var(--yellow)}
.dp-st-hidden,.dp-st-rejected{background:rgba(255,61,119,.15);color:var(--pink)}
.dp-state-box{max-width:560px;margin:30px auto;text-align:center;padding:30px 22px}
@media (min-width:700px){.dp-grid{grid-template-columns:repeat(2,1fr)}.dp-why{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.dp-grid{grid-template-columns:repeat(3,1fr)}.dp-cols{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr)}}
.dp-form input[type=file]{display:block;margin-top:6px}
.dp-places{position:relative}

/* A date field inside a form grid looks like every other field of the form: label above, full-width input (the compact pill stays for filters and search bars). */
.form-grid > label.date-field{display:block;height:auto;background:none;border:0;border-radius:0;padding:0;box-shadow:none;font-size:.85rem}
.form-grid > label.date-field:focus-within{border:0;box-shadow:none}
.form-grid > label.date-field > span{display:block}
.form-grid > label.date-field input[type=date]{width:100%;height:auto;min-width:0;margin-top:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 40px 11px 14px}
.form-grid > label.date-field input[type=date]:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,61,119,.2)}
.form-grid > label.date-field::after{top:auto;bottom:13px;right:13px;transform:none}
.form-grid > label input[type=time]{min-height:44px}
.form-grid > label.date-field input[type=date]{min-height:44px}
/* "send me the edit link" – e-mail + a normal text button that wraps under the field on narrow screens */
.dp-linkform{display:flex;gap:8px;flex-wrap:wrap}
.dp-linkform input[type=email]{flex:1 1 240px;min-width:0}
.dp-linkform .btn{flex:0 0 auto}
.form-grid > label input[type=file]{display:block;margin-top:6px}
/* 22. 9. 2026 – home: 4 article cards in a row, Useful as a short list in the left column */
.home-articles{margin-top:28px}
.article-cards .card-article .card-body p:not(.muted){font-size:.85rem}
.useful-grid.list{grid-template-columns:1fr;gap:8px;min-height:0}
.useful-grid.list .useful-card{align-items:center;padding:8px 12px;min-height:0;overflow:hidden}
.useful-grid.list .uc-body{gap:2px}
.useful-grid.list .uc-title{font-size:.92rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.useful-grid.list .uc-desc,.useful-grid.list .uc-host,.useful-grid.list .uc-phone{display:none}
.useful-grid.list .uc-meta{font-size:.72rem;margin-top:0}
.useful-grid.list .uc-img{flex-basis:40px;width:40px;height:40px;border-radius:10px}.useful-grid.list .uc-img .ico{width:20px;height:20px}
/* desktop: the three Useful rows share exactly the height of the events column next to them */
@media (min-width:900px){.col-useful{align-self:stretch;min-height:0;display:flex;flex-direction:column}.col-useful .useful-grid.list{flex:1;grid-template-rows:repeat(3,1fr)}}
@media (max-width:640px){.article-cards{grid-template-columns:1fr 1fr;gap:8px}}
/* 22. 9. 2026 – destination partner form: filtered places must really disappear (display:flex used to beat the hidden attribute) */
.dp-places [hidden]{display:none!important}
/* 22. 9. 2026 – calendar: "My trips / Destination" switch (events of the home destination) */
.k-dest_event{--k:#ff8c42}
.cal-modes{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
.seg span.off{padding:5px 12px;font-size:.8rem;color:var(--muted);opacity:.45;cursor:not-allowed;display:inline-flex;align-items:center}
.cal-mode-note{display:inline-flex;align-items:center;gap:4px}
a.cal-mode-note{text-decoration:underline dotted}
/* 22. 9. 2026 – map clusters (Leaflet.markercluster): a circle with the number of venues, splits into pins when zooming in */
.pin-cluster,.leaflet-marker-icon.pin-cluster{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent,#ff3d77);color:#fff;font-weight:800;font-size:.85rem;box-shadow:0 0 0 4px rgba(255,61,119,.28),0 2px 8px rgba(0,0,0,.45);border:2px solid #fff;transition:transform .15s}
.pin-cluster.md{font-size:.9rem}.pin-cluster.lg{font-size:1rem}
.pin-cluster:hover{transform:scale(1.08)}
.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .3s ease-out,opacity .3s ease-in}
.theme-light .pin-cluster{box-shadow:0 0 0 4px rgba(255,61,119,.22),0 2px 8px rgba(0,0,0,.25)}
/* 22. 9. 2026 – plastic cards (profile → Card → My cards, order form, public /c/{token} page) */
.pill-wait{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:rgba(255,197,61,.15);color:#ffc53d;font-weight:700;font-size:.75rem}
.mcard-list{display:grid;gap:10px;margin:12px 0}
.mcard{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card2,rgba(255,255,255,.03))}
.mcard .mc-ico{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}
.mcard .mc-body{display:flex;flex-direction:column;gap:2px;min-width:0}.mcard .mc-body small{line-height:1.35}
.mcard.s-lost,.mcard.s-blocked{opacity:.75}
.mc-activate,.mc-actions{grid-column:1/-1}
.mc-activate p{margin:0 0 8px}
.mc-activate-row{display:flex;gap:8px;flex-wrap:wrap}.mc-activate-row input{flex:1;min-width:160px}
.mc-order{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px dashed var(--line);border-radius:14px;margin:12px 0}.mc-order p{margin:0}
.card-order-form .lbl{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px}
.design-picks{display:flex;gap:10px;flex-wrap:wrap}
.design-pick input{position:absolute;opacity:0;pointer-events:none}
.design-pick .dp-face{display:flex;flex-direction:column;gap:6px;align-items:flex-start;justify-content:space-between;width:120px;height:74px;padding:10px;border-radius:12px;border:2px solid var(--line);cursor:pointer;color:#fff;font-size:.8rem;font-weight:700}
.design-pick.d-classic .dp-face{background:linear-gradient(135deg,#03041b,#2a0f3d)}
.design-pick.d-aurora .dp-face{background:linear-gradient(135deg,#0b0620,#5b2bd6 60%,#ff3d77)}
.design-pick.d-light .dp-face{background:linear-gradient(135deg,#ffffff,#e8e4ff);color:#03041b}
.design-pick input:checked+.dp-face{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.design-pick .dp-face i{font-style:normal}
.order-total{display:flex;justify-content:space-between;align-items:center;margin:16px 0 6px;font-size:1.05rem}
.card-public{max-width:520px}.card-public .cp-box{text-align:center;padding:28px 22px}.card-public .cp-logo{margin-bottom:14px}.card-public h1{font-size:1.4rem;margin:0 0 4px}.card-public .cp-actions{justify-content:center;margin-top:16px}
/* 22. 9. 2026 – event cards with the poster (events list, destination, venue, performer, organisation) */
.card-event{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:0;overflow:hidden;align-items:stretch}
.card-event .ev-poster{position:relative;display:block;min-height:170px;background:var(--img) center/cover,var(--card2,#0d0f33)}
.card-event .ev-poster .event-date{position:absolute;left:8px;top:8px;width:50px;height:50px;border-radius:12px}
.card-event .ev-poster .event-date b{font-size:1.15rem}.card-event .ev-poster .event-date span{font-size:.6rem}
.card-event .card-body{padding:12px 14px 12px 0;display:flex;flex-direction:column;gap:4px;min-width:0}
.card-event .card-body h3{font-size:1rem;line-height:1.3;margin:0 0 2px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-event .ev-meta{margin:0;font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.card-event .ev-text{margin:4px 0 0;font-size:.85rem;color:var(--text);opacity:.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-event .card-foot{margin-top:auto;padding-top:8px}
.card-event .ev-cta{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* narrow sidebar (venue / destination detail): the tickets button without the price so it fits the card */
@media (min-width:900px){.detail-grid .side-box .card-event .ev-price{display:none}}
.card-event .ev-org{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-event.over{opacity:.7}
.card-event.wide{grid-template-columns:150px 1fr}
@media (max-width:640px){.card-event{grid-template-columns:96px 1fr;gap:10px}.card-event .ev-poster{min-height:140px}.card-event .card-body{padding:10px 10px 10px 0}.card-event .ev-text{font-size:.8rem}.card-event .ev-poster .event-date{width:42px;height:42px;left:6px;top:6px}.card-event .ev-poster .event-date b{font-size:1rem}}
/* 22. 9. 2026 – look switcher as three icons (moon / sun / aurora) in the user dropdown */
.theme-row{display:flex;flex-direction:column;gap:6px;padding:4px 6px 8px}
.theme-row .dropdown-label{padding:2px 6px 0;margin:0}
.theme-icons{display:flex;gap:6px;width:100%}
.theme-ic{flex:1;display:inline-flex;align-items:center;justify-content:center;height:38px;border-radius:10px;border:1px solid var(--line);color:var(--muted);background:rgba(255,255,255,.04)}
.theme-ic .ico{width:18px;height:18px;color:inherit}
.theme-ic:hover{color:var(--text);border-color:var(--accent)}
.theme-ic.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
/* "translate automatically" under the language select (community editor, business forms) */
.auto-tr-hint{display:block;margin-top:6px;line-height:1.4}.auto-tr-hint .f-check.inline{display:inline-flex;gap:6px;align-items:center;font-weight:600;margin-right:4px}
.auto-tr{margin:-4px 0 10px}.auto-tr small{display:block;margin-top:2px}
.rte-count.over{color:var(--red,#ff5252);font-weight:700}
/* venue: local transport card */
.lt-card{margin-bottom:18px}.lt-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lt-item{display:flex;gap:12px;align-items:flex-start}.lt-ico{flex:0 0 38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft,rgba(255,61,119,.14));color:var(--accent,#ff3d77)}.lt-body{display:flex;flex-direction:column;gap:2px;font-size:.95rem}.lt-body .lt-stop b{font-weight:600}.lt-dist{display:inline-flex;gap:4px;align-items:center}.btn.active{background:var(--accent,#ff3d77);color:#fff}
#local-transport{scroll-margin-top:calc(var(--header-h,64px) + 16px)}
#getting-there,#emergency{scroll-margin-top:calc(var(--header-h,64px) + 16px)}
/* local guides */
.guide-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:.2s;position:relative}
.guide-card:hover{transform:translateY(-3px);border-color:var(--accent,#ff3d77)}
.guide-card::before{content:"";display:block;height:90px;background:var(--card2) center/cover no-repeat;background-image:var(--img);filter:saturate(1.1)}
.guide-card .pf-avatar{position:absolute;top:56px;left:14px}
.guide-card .pf-body{padding:38px 14px 14px;display:flex;flex-direction:column;gap:4px}
.guide-card b{font-size:1.05rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.guide-card .rdots.sm i{width:8px;height:8px}
.guides-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.guide-cta{margin-top:28px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.guide-packages-soon{margin:18px 0}
.vm-img.round{border-radius:50%}
.dest-guides .grid-3{margin-top:0}
/* local guides – offers (packages), booking, reviews */
.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;background:rgba(128,128,160,.15);color:var(--muted)}
.pill.on{background:rgba(34,211,127,.15);color:var(--green)}.pill.off{background:rgba(255,82,82,.15);color:#ff5252}.pill.warn{background:rgba(255,197,61,.15);color:#ffc53d}
.pkg-grid{margin-top:12px}
.pkg-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:.2s}
.pkg-card:hover{transform:translateY(-3px);border-color:var(--accent,#ff3d77)}
.pkg-img{display:flex;align-items:flex-start;padding:10px;height:130px;background:var(--card2) center/cover no-repeat;background-image:var(--img)}
.pkg-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}
.pkg-body b{font-size:1.02rem;line-height:1.3}
.pkg-meta{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pkg-price{margin-top:4px;font-weight:800;color:var(--pink)}
.pkg-guide-link{display:inline-flex;align-items:center;gap:8px;color:inherit}.pkg-guide-link .pf-avatar{width:28px;height:28px;position:static}
.pf-rating{margin:4px 0;display:flex;align-items:center;gap:6px}
.pkg-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 18px}
.pkg-facts span{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.pkg-facts .ico{color:var(--pink);width:20px;height:20px}.pkg-facts b{font-size:1rem}.pkg-facts small{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
@media (min-width:700px){.pkg-facts{grid-template-columns:repeat(4,1fr)}}
.pkg-includes{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pkg-includes li{display:flex;gap:8px;align-items:flex-start}.pkg-includes li .ico{flex:0 0 auto;margin-top:3px}
.pkg-includes li.yes .ico{color:var(--green)}.pkg-includes li.no .ico{color:#ff5252}.pkg-includes li.no{color:var(--muted)}
.pkg-policy p{margin:6px 0 0}
.book-box{position:sticky;top:84px}
.pkg-price-big{font-size:1.6rem;font-weight:800;margin:0 0 10px;color:var(--pink)}
.book-form{display:grid;gap:12px}.book-form .f{display:grid;gap:4px}.book-form .f>span,.book-form .f-label{font-size:.85rem;color:var(--muted)}
.book-form input,.book-form textarea{width:100%}
.slot-list{display:grid;gap:6px;max-height:260px;overflow:auto;padding-right:2px}
.slot.wide span{justify-content:space-between;padding:9px 12px;font-weight:600}.slot.wide span small{font-size:.72rem}
.bk-total{display:flex;justify-content:space-between;align-items:center;margin:0;padding-top:8px;border-top:1px solid var(--line);font-size:1.05rem}.bk-total b{font-size:1.2rem}
.bk-msg{background:var(--card);border-left:3px solid var(--pink);padding:10px 14px;border-radius:0 10px 10px 0;margin:12px 0;white-space:pre-line}
.notice.ok{border-color:rgba(34,211,127,.4);color:var(--text)}
.bk-cancel summary{cursor:pointer;color:var(--muted);font-size:.85rem}.bk-cancel form{display:grid;gap:8px;margin-top:8px}
.btn.danger{color:#ff5252}
.guide-cta-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.guide-cta-box>span{flex:1;min-width:220px}.guide-cta-box form{margin:0}

/* Security: "stay signed in" checkbox + Cloudflare Turnstile box (update 2026-09-25) */
.remember-check{align-items:flex-start;font-weight:400;margin:4px 0 10px}.remember-check input{margin-top:4px}.remember-check small{font-size:.8rem}
.ts-box{width:100%;min-height:0}.ts-box:not(:empty){margin:6px 0}
.ts-box.ts-pending::after{content:attr(data-wait);display:block;font-size:.82rem;color:var(--muted);margin-top:4px}
.newsletter:has(.ts-box:not(:empty)),.dp-linkform:has(.ts-box:not(:empty)){flex-wrap:wrap}
.newsletter .ts-box,.dp-linkform .ts-box{flex:1 0 100%}
.devices{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:6px}
.devices li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:12px;font-size:.9rem}
.devices li .muted{font-size:.8rem}

/* Registration in two steps + Continue with Google / Apple (update 2026-09-25) */
.role-cards{display:grid;gap:10px;margin:14px 0 18px;text-align:left}
.role-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none;transition:border-color .15s,background .15s}
.role-card:hover,.role-card:focus-visible{border-color:var(--accent);background:rgba(255,255,255,.04)}
.role-card>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:2px}
.role-card small{font-size:.82rem;line-height:1.35}
.role-ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.06);color:var(--accent)}
.role-go{flex:none;opacity:.6}
.role-chosen{margin:4px 0 12px}
.social-login{display:grid;gap:8px;margin:6px 0 4px}
.btn-social{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border-radius:12px;font-weight:600;border:1px solid transparent}
.btn-social img{width:18px;height:18px;flex:none}
.btn-social-google{background:#fff;color:#1f1f1f;border-color:#dadce0}
.btn-social-google:hover{background:#f7f8f8}
.btn-social-apple{background:#000;color:#fff;border-color:#000}
.btn-social-apple:hover{background:#1a1a1a}
.theme-light .btn-social-apple{background:#000;color:#fff}
.social-privacy{display:flex;gap:6px;align-items:flex-start;margin:2px 0 0;text-align:left}
.or-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem;margin:10px 0 6px}
.or-divider::before,.or-divider::after{content:"";flex:1;height:1px;background:var(--line)}

/* Home hero: background photos taking turns (update 2026-09-25) */
.hero-slides{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}   /* own stacking context: the photos never cover the hero text */
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;z-index:0;transition:opacity 1.8s ease;backface-visibility:hidden}
.hero-slide.is-on{opacity:1;z-index:2}
.hero-slide.is-prev{opacity:1;z-index:1;transition:none}   /* the old photo stays under the new one until the fade is over */
.hero-slides.kb .hero-slide.is-on,.hero-slides.kb .hero-slide.is-prev{animation:heroKb var(--hero-dur,9s) linear both}
@keyframes heroKb{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-credit{position:absolute;z-index:2;right:12px;top:10px;font-size:.7rem;color:rgba(255,255,255,.7);text-decoration:none;background:rgba(0,0,0,.25);padding:2px 8px;border-radius:999px}
.hero-credit:hover{color:#fff}
@media (prefers-reduced-motion:reduce){.hero-slide{transition:none}.hero-slides.kb .hero-slide.is-on{animation:none}}
@media (max-width:760px){.cover{background-image:var(--img-sm,var(--img))}}
.has-slides{isolation:isolate}
.slide-layer{position:absolute;inset:0;z-index:-1;background:center/cover no-repeat;opacity:0;transition:opacity 1.4s ease;pointer-events:none;will-change:opacity;backface-visibility:hidden}
.slide-layer.on{opacity:1}
.photo-credit-cover[hidden]{display:none}
/* event types */
.et-badge{--et:#78909c;display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 7px;border-radius:999px;font-size:.74rem;font-weight:600;line-height:1.35;white-space:nowrap;color:var(--text);background:color-mix(in srgb,var(--et) 16%,transparent);border:1px solid color-mix(in srgb,var(--et) 60%,transparent);text-decoration:none}
a.et-badge:hover{background:color-mix(in srgb,var(--et) 30%,transparent)}
.et-emoji{font-size:.95em;line-height:1}
.et-on-photo{position:absolute;top:10px;left:10px;z-index:2;color:#fff;background:rgba(6,8,42,.72);backdrop-filter:blur(6px);border-color:var(--et)}
.card-event .et-on-photo{top:auto;bottom:8px;left:8px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){.card-event .et-on-photo span:not(.et-emoji){display:none}.card-event .et-on-photo{padding:3px 6px}}
.et-row{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.cover .et-row .et-badge{color:#fff;background:rgba(6,8,42,.55);backdrop-filter:blur(6px);border-color:var(--et)}
.et-filter{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}
.et-chip{--et:var(--pink);display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:.84rem;font-weight:500;color:var(--muted);white-space:nowrap;text-decoration:none}
.et-chip:hover,.et-chip.active{color:var(--text);border-color:var(--et);background:color-mix(in srgb,var(--et) 16%,var(--card))}
.et-chip.et-big{--et:#ff8a00;font-weight:600}
@media (max-width:720px){.et-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.et-filter::-webkit-scrollbar{display:none}}
.bcard .vcard-body>small{display:flex;align-items:center;gap:5px}
.home-big .grid-6{margin-top:4px}
.bcard .et-on-photo,.card-dest .et-on-photo{max-width:calc(100% - 64px);overflow:hidden;text-overflow:ellipsis}
/* footer link columns: plain headings on wider screens, collapsible on phones */
.fc-toggle{all:unset;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:default}
.fc-chev{display:none;width:18px;height:18px;flex:none;transition:transform .2s}
@media (max-width:599px){
  .footer-grid{gap:0}
  .footer-about{margin-bottom:14px}
  .footer-col{border-top:1px solid var(--line)}
  .footer-col h4{margin:0}
  .fc-toggle{cursor:pointer;padding:14px 0}
  .fc-toggle:focus-visible{outline:2px solid var(--pink);outline-offset:2px;border-radius:4px}
  .fc-chev{display:block}
  .footer-col.open .fc-chev{transform:rotate(180deg)}
  .footer-col>ul{display:none;padding:0 0 14px}
  .footer-col.open>ul{display:grid}
  .footer-news{border-top:1px solid var(--line);padding-top:16px}
}
/* newsletter: e-mail field takes the whole row next to the button; the Cloudflare box always goes to its own line */
.newsletter{flex-wrap:wrap}
.newsletter input[type=email]{flex:1 1 0;min-width:0;width:auto}
.newsletter .ts-box{flex:1 0 100%;order:3}
/* event claim */
.event-claim{display:block;padding:0}
.event-claim>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 20px;cursor:pointer}
.event-claim>summary::-webkit-details-marker{display:none}
.event-claim>summary>span:first-child{display:flex;flex-direction:column;gap:2px}
.event-claim[open]>summary .btn{display:none}
.event-claim>p,.event-claim-form{padding:0 20px 18px}
.event-claim-form{display:grid;gap:10px}
.event-claim-form label{display:grid;gap:4px;font-size:.9rem}
.event-claim-form [hidden]{display:none!important}
/* contact form */
.contact-page{max-width:760px}
.contact-form{display:grid;gap:14px}
.contact-form .check{display:flex;gap:8px;align-items:flex-start;font-size:.88rem}.contact-form .check input{width:auto;margin-top:3px}
.contact-sent h2{display:flex;align-items:center;gap:8px}

/* Photo credit as a small "i" pill over the photo: grows to the full text on hover (computer) or tap (phone, .open) – update 2026-09-29 */
.credit-pill{position:absolute;z-index:3;box-shadow:0 0 0 1px rgba(255,255,255,.35);display:inline-flex;align-items:center;height:24px;max-width:24px;overflow:hidden;border-radius:999px;background:rgba(0,0,0,.45);color:rgba(255,255,255,.9);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:max-width .35s ease,background .2s;white-space:nowrap;padding:0;text-decoration:none}
.credit-pill[hidden]{display:none}
.credit-pill .cp-i{flex:0 0 24px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:inherit;font:italic 700 13px/1 Georgia,'Times New Roman',serif;cursor:pointer;padding:0}
.credit-pill .cp-t{font-size:.7rem;color:inherit;text-decoration:none;padding:0 10px 0 2px;opacity:0;pointer-events:none;transition:opacity .2s;line-height:24px}
.credit-pill.open,.credit-pill:focus-within{max-width:min(420px,calc(100vw - 32px));background:rgba(0,0,0,.65)}
.credit-pill.open .cp-t,.credit-pill:focus-within .cp-t{opacity:1;pointer-events:auto}
@media (hover:hover){.credit-pill:hover{max-width:min(420px,calc(100vw - 32px));background:rgba(0,0,0,.65)}.credit-pill:hover .cp-t{opacity:1;pointer-events:auto}.credit-pill .cp-t:hover{text-decoration:underline}}
.hero-credit.credit-pill{right:12px;top:10px;left:auto;bottom:auto;padding:0;font-size:inherit}
.photo-credit-cover.credit-pill{right:10px;bottom:8px;left:auto;top:auto;padding:0;max-width:24px;font-size:inherit;white-space:nowrap}
.photo-credit-cover.credit-pill.open,.photo-credit-cover.credit-pill:focus-within{max-width:min(420px,calc(100vw - 32px))}
@media (hover:hover){.photo-credit-cover.credit-pill:hover{max-width:min(420px,calc(100vw - 32px))}}

/* Local / Traveler switch (menu, under the look) and the line above lists – update 2026-09-29 */
.mode-row{padding-top:0}
.mode-ic{gap:5px;font-size:.78rem;font-weight:600;padding:0 5px;min-width:0}
.mode-ic .ico{width:14px;height:14px;flex:0 0 14px}
.mode-ic span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.local-hint{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:10px 0 0;font-size:.85rem;color:var(--muted)}
.local-hint .ico{width:15px;height:15px}
.local-hint a{color:var(--pink);font-weight:600}

.mode-row .mode-ic{flex:1 1 auto}

/* Bigger logo in the header (header stays 64 px) – update 2026-09-29 */
.site-header .brand .logo{height:50px;width:auto}
.site-header .brand-logo{height:46px}
@media (max-width:599px){.site-header .brand .logo{height:40px}.site-header .brand-logo{height:38px}}
@media (max-width:389px){.site-header .brand .logo{height:34px}.site-header .brand-logo{height:32px}}
@media (max-width:389px){.header-inner{gap:6px}.header-actions{gap:4px}}

/* Protection against scraping: "slow down" page and the members-only teaser – update 2026-09-29 */
.human-check .hc-box,.members-only{max-width:520px;margin:40px auto;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px 22px}
.hc-ico,.mo-ico{display:inline-flex;width:56px;height:56px;border-radius:18px;align-items:center;justify-content:center;background:var(--rainbow-soft);margin-bottom:10px}
.hc-ico .ico,.mo-ico .ico{width:26px;height:26px;color:#fff}
.hc-form{display:flex;flex-direction:column;align-items:center;gap:12px;margin:14px 0}
.members-only .mo-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:16px 0 6px}
.members-only-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);font-size:.9rem}
.members-only-inline .ico{width:18px;height:18px}
.contact-reveal{display:inline-flex;align-items:center;gap:6px}

/* uploaded payment icons (home page stats bar) – update 2026-09-29 */
.pay-img img{height:26px;width:auto;max-width:80px;display:block;border-radius:4px}
.pay-img{height:auto;padding:0}


/* ---------- ads (Google AdSense, Admin → Settings → Ads) ---------- */
.ad{display:none;position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 12px 12px;overflow:hidden}
.ad.is-on{display:block}
.ad:has(ins[data-ad-status="unfilled"]){display:none}
.ad-label{position:absolute;top:6px;left:12px;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.7}
.ad-side{margin-bottom:16px}
.ad-side ins{min-height:250px}
.ad-feed{min-height:220px}
.ad-banner{margin:8px 0 24px}
.ad-banner ins{min-height:90px}
.ad-ph{display:flex;align-items:center;justify-content:center;min-height:120px;height:100%;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:.85rem;text-align:center;padding:12px}
.ad-side .ad-ph{min-height:250px}.ad-feed .ad-ph{min-height:200px}.ad-banner .ad-ph{min-height:90px}
@media (max-width:599px){.ad-feed{display:none!important}}

/* ---------- cover photo as a real <img> (SEO / alt); the CSS background stays only for the slideshow layers ---------- */
.cover.has-img{isolation:isolate;background-image:none}
.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none}
.hero2 h1 span{text-transform:none;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Help / FAQ (/help) – update 2026-09-30. Category chips scroll sideways on phones, answers fold open in place. */
.help-page .page-head{margin-bottom:14px}
.help-search{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;max-width:560px;margin-top:14px}
.help-search .ico{color:var(--muted);flex:none}
.help-search input[type=search]{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:1rem;outline:0;padding:4px 0;box-shadow:none}
.help-search input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.help-search-clear{border:0;background:var(--card2);color:var(--muted);width:26px;height:26px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer;flex:none}
.help-cats{display:flex;gap:10px;overflow-x:auto;padding:4px 0 10px;margin:0 -16px 6px;padding-left:16px;padding-right:16px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.help-cats::-webkit-scrollbar{display:none}
.help-cat{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--text);scroll-snap-align:start;min-width:150px;max-width:230px;transition:.2s}
.help-cat .ico{width:22px;height:22px;color:var(--muted);flex:none}
.help-cat span{display:flex;flex-direction:column;min-width:0}
.help-cat b{font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.help-cat small{color:var(--muted);font-size:.74rem}
.help-cat.active,.help-cat:hover{border-color:var(--pink);background:rgba(255,61,119,.12)}
.help-cat.active .ico{color:var(--pink)}
.help-section{margin:18px 0 26px}
.help-section-head h2{display:flex;align-items:center;gap:8px;font-size:1.25rem;margin:0 0 4px}
.help-section-head h2 .ico{color:var(--pink);width:22px;height:22px}
.help-section-head p{margin:0 0 12px}
.help-list{display:flex;flex-direction:column;gap:8px}
.help-item{border:1px solid var(--line);border-radius:14px;background:var(--card);scroll-margin-top:calc(var(--header-h,64px) + 12px)}
.help-item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:13px 16px;font-weight:600;font-size:.98rem;line-height:1.35}
.help-item>summary::-webkit-details-marker{display:none}
.help-item>summary span{flex:1;min-width:0}
.help-item .help-chev{flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .2s}
.help-item[open]{border-color:rgba(255,61,119,.45)}
.help-item[open] .help-chev{transform:rotate(-90deg);color:var(--pink)}
.help-item[open]>summary{color:#fff}
.help-answer{padding:0 16px 6px;font-size:.95rem;line-height:1.6}
.help-answer p{margin:0 0 .7em}.help-answer ul,.help-answer ol{margin:0 0 .7em;padding-left:1.2em}.help-answer li{margin:.2em 0}
.help-tools{padding:0 16px 12px;margin:0}.help-tools a{color:var(--muted);display:inline-flex;align-items:center;gap:6px}.help-tools a:hover{color:var(--text)}
.help-item.is-target{box-shadow:0 0 0 2px var(--pink)}
.help-contact{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:26px;padding:18px;border-radius:16px;background:var(--card2);border:1px solid var(--line)}
.theme-light .help-item>summary,.theme-light .help-item[open]>summary{color:var(--text)}
@media (min-width:700px){.help-cats{flex-wrap:wrap;overflow:visible;margin:0 0 6px;padding:0 0 10px}.help-cat{max-width:none}}
@media (min-width:900px){.help-body{max-width:860px}}
/* small round "?" that opens the right help category – help_link() */
.help-q{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--card2);border:1px solid var(--line);color:var(--muted);font:700 12px/1 var(--font);text-decoration:none;vertical-align:middle;margin-left:6px;transition:.2s}
.help-q:hover{color:#fff;border-color:var(--pink);background:rgba(255,61,119,.15)}
.help-q.help-q-text{width:auto;height:auto;border-radius:999px;padding:4px 10px;font-weight:600;font-size:.8rem;gap:6px}
.help-q.help-q-text .ico{width:14px;height:14px}
.auth-help{margin:12px 0 0;text-align:center}

/* ticket purchase terms + cancelled events – update 2026-10-01 */
.ticket-terms-box{margin:12px 0 4px;padding:12px 14px;border-radius:12px;background:var(--card2);border:1px solid var(--line)}
.ticket-terms-box>b{display:block;margin-bottom:4px}
.ticket-terms-box .phrase-list{margin:0 0 8px;padding-left:18px;font-size:.88rem;color:var(--muted)}
.ticket-terms-box .phrase-list li{margin:2px 0}
.ticket-terms-box .check{margin:0}
.ev-cancelled{vertical-align:middle;font-size:.8rem;margin-left:8px}
.ev-cancelled-note{margin:0 0 16px;border-color:rgba(255,61,119,.5)}
.order-terms{margin-top:10px}.order-terms summary{cursor:pointer}.order-terms p{margin:6px 0 0;white-space:pre-line;color:var(--muted)}
.order-refund{margin:16px 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.order-refund p{margin:0;flex:1 1 260px}
/* Google Wallet (profile → my card, passport page) */
.gwallet-box{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:12px 0 6px}
.gwallet-btn{display:inline-flex;align-items:center;gap:9px;padding:11px 20px;border-radius:999px;background:#1f1f1f;color:#fff;font-weight:600;text-decoration:none;border:1px solid #3c3c3c;line-height:1.1}
.gwallet-btn:hover{background:#000;color:#fff}.gwallet-btn .ico{width:20px;height:20px}
.gwallet-badge img{display:block;height:48px;width:auto}
/* Practical info of the destination's country (partials/country_facts.php) – update 2026-10-01 */
.facts{margin:22px 0}.facts .facts-body{padding-top:14px}.facts details[open]>summary{border-color:var(--pink)}
.facts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.fact{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0}
.fact .ico{width:22px;height:22px;color:var(--pink);flex:none}
.fact small{display:block;color:var(--muted);font-size:.74rem;line-height:1.2}
.fact b{display:block;font-size:.92rem;line-height:1.3;font-weight:600;overflow-wrap:anywhere}
.fact.wide{grid-column:1/-1}.fact.wide span{display:block;font-size:.9rem;line-height:1.4}
.facts-legal{border:1px solid var(--line);border-radius:16px;background:var(--card2);padding:16px 18px}
.facts-legal.is-illegal{border-color:rgba(255,82,82,.6)}
.facts-legal h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:1.05rem}
.facts-legal h3 .ico{color:var(--pink)}
.facts-legal p{margin:0 0 8px;line-height:1.55}
.facts-status{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:1fr;gap:6px}
.facts-status li{display:flex;align-items:center;gap:8px;font-size:.9rem}
.facts-status li span{color:var(--muted);flex:1}.facts-status li b{text-align:right;font-weight:600}
.facts-status li .ico{width:18px;height:18px;flex:none}
.facts-status .st-ok .ico{color:#3ddc84}.facts-status .st-mid .ico{color:#ffb347}.facts-status .st-bad .ico{color:#ff5252}
@media (min-width:700px){.facts-grid{grid-template-columns:repeat(4,1fr)}.fact.wide{grid-column:span 2}.facts-status{grid-template-columns:1fr 1fr;gap:6px 18px}}
/* live search suggestions (app.js, /search/suggest.json) – update 2026-10-01 */
.has-sugg{position:relative}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.45);max-height:min(70vh,520px);overflow-y:auto;padding:6px;text-align:left}
.sugg-group+.sugg-group{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
.sugg-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px 2px}
.sugg-item{display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:10px;color:var(--text);text-decoration:none;line-height:1.25}
.sugg-item b{font-weight:600;font-size:.93rem}.sugg-item small{color:var(--muted);font-size:.78rem}
.sugg-item:hover,.sugg-item.is-cur{background:rgba(255,61,119,.12);color:var(--text)}
.sugg-more b,.sugg-all b{color:var(--pink);font-weight:600}
.sugg-all{border-top:1px solid var(--line);margin-top:4px;border-radius:0 0 10px 10px}
.filter-bar.has-sugg .sugg{top:calc(100% + 4px)}
.search-understood{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;color:var(--muted);margin:-6px 0 16px}
.search-understood .chip{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--text);font-size:.82rem}
.search-understood a{margin-left:4px}
.theme-light .sugg{box-shadow:0 14px 40px rgba(30,30,80,.18)}
/* web push (profile preferences + notifications page) – update 2026-10-01 */
.push-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;margin-top:-6px}
.push-box small{flex-basis:100%}
.push-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid rgba(255,61,119,.45);border-radius:14px;background:rgba(255,61,119,.08);margin:0 0 16px}
.push-banner>.ico{color:var(--pink);width:24px;height:24px;flex:none}
.push-banner>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.push-banner small{color:var(--muted)}
@media (max-width:560px){.push-banner{flex-wrap:wrap}.push-banner .btn{flex-basis:100%}}
/* community photos of a venue (partials/venue_photos.php): tiles in the venue's gallery grid + a small "+" button – update 2026-10-01 */
.vphotos{margin:14px 0 22px}
.gallery-community{margin-top:8px}
.gallery-community .vp{margin:0;position:relative;min-width:0}
.gallery-community .vp a{display:block;aspect-ratio:1;border-radius:12px;background:var(--img) center/cover,var(--card2)}
.gallery-community figcaption{display:flex;align-items:center;gap:6px;padding:4px 2px 0;font-size:.74rem;color:var(--muted)}
.vp-author{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vp-like{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.74rem;cursor:default;padding:2px 3px;border-radius:8px}
button.vp-like{cursor:pointer}button.vp-like:hover,.vp-like.on{color:var(--pink)}.vp-like.on .ico{fill:currentColor}.vp-like .ico{width:14px;height:14px}
.vp-report{border:0;background:transparent;color:var(--muted);padding:2px;cursor:pointer;opacity:.5;line-height:0}.vp-report:hover{opacity:1}.vp-report span{display:none}.vp-report .ico{width:13px;height:13px}
.vphoto-bar{display:flex;align-items:center;gap:10px;margin-top:8px}
.vphoto-bar>span:first-child{display:inline-flex;align-items:center;gap:6px}
.vp-add{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;text-decoration:none;flex:none;padding:0}
.vp-add .ico{width:20px;height:20px}
.vp-add i{position:absolute;right:-4px;top:-4px;width:16px;height:16px;border-radius:50%;background:var(--pink);color:#fff;font-style:normal;font-size:12px;font-weight:700;line-height:16px;text-align:center}
.vp-add:hover,.vp-add[aria-expanded=true]{border-color:var(--pink);color:var(--text)}
.vp-why{margin-left:auto}
.vphoto-mine{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.vp-mine-item{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border:1px dashed var(--line);border-radius:12px}
.vp-mine-item img{width:40px;height:40px;object-fit:cover;border-radius:8px}
.vp-mine-item form{margin:0}
.vphoto-form{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.vphoto-form[hidden]{display:none}
.vp-file{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;cursor:pointer;color:var(--muted)}
.vp-file:hover{border-color:var(--pink);color:var(--text)}.vp-file input{display:none}.vp-file .ico{color:var(--pink)}
.vphoto-form input[type=text]{width:100%}
@media (min-width:700px){.vphoto-form{grid-template-columns:1fr 1fr auto;align-items:center}.vphoto-form small{grid-column:1/-1}}
/* moderation (business + admin) */
.vp-mod-grid{display:grid;gap:12px}
.vp-mod{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start}
.vp-mod-img img{width:150px;height:150px;object-fit:cover;border-radius:12px;display:block}
.vp-mod.s-rejected{opacity:.6}.vp-mod.is-focus{outline:2px solid var(--pink)}
.vp-mod .btn-row{margin-top:8px}
@media (max-width:560px){.vp-mod{grid-template-columns:1fr}.vp-mod-img img{width:100%;height:auto;max-height:260px}}
/* detail pages without a photo: the cover keeps the height of a photo only when there is one – update 2026-10-01 */
.cover:not(.has-img){min-height:0!important}
.cover:not(.has-img) .cover-inner{padding-top:44px;padding-bottom:28px}
/* less empty space between the cover buttons and the first text on every detail page (with or without a photo) */
.cover .cover-inner{padding-bottom:26px}
.cover+.page{padding-top:12px}
.cover+.page>.prose:first-child>h2:first-child{margin-top:10px}
section.cover{margin-bottom:0}
.cover+.page{padding-top:8px}
/* home: less space between the trip planner box and "Destinations" */
.hero2{margin-bottom:0}
.home2{padding-top:16px}

/* open / closed badge – solid colours with white text in both looks (the translucent one was hard to read on the light look) */
.is-open,.theme-light .is-open:not(.badge){background:#16a34a;color:#fff}
.is-closed,.theme-light .is-closed:not(.badge){background:#dc2626;color:#fff}
.is-temp,.theme-light .is-temp:not(.badge){background:#b45309;color:#fff}
.is-open,.is-closed,.is-temp{font-size:.7rem;font-weight:800;letter-spacing:.02em}
.badges .is-open.badge{color:#5df2a8}.badges .is-closed.badge{color:#ff8f8f}

/* ---------- venue amenities (what the venue offers): pictograms on the venue page, tick-tiles in the forms ---------- */
.amenities-box h3{margin:0 0 10px;font-size:.95rem;display:flex;align-items:center;gap:6px}
.am-list{display:flex;flex-wrap:wrap;gap:8px}
.am{position:relative;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:default;padding:0;font:inherit;transition:.15s}
.am .ico{width:22px;height:22px}.am .am-emoji{font-size:1.25rem;line-height:1}.am .am-img{width:24px;height:24px;object-fit:contain}
.am:hover,.am.show{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}
.theme-classic .am:hover,.theme-classic .am.show,.theme-aurora .am:hover,.theme-aurora .am.show{box-shadow:0 0 12px color-mix(in srgb,var(--accent) 55%,transparent)}
.am-tip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;padding:5px 9px;border-radius:8px;background:var(--text);color:var(--bg);font-size:.72rem;font-weight:600;pointer-events:none;opacity:0;transition:.15s;z-index:5}
.am-tip::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--text)}
.am:hover .am-tip,.am.show .am-tip,.am:focus-visible .am-tip{opacity:1}
.am-list .am:first-child .am-tip,.am-list .am:nth-child(2) .am-tip{left:0;transform:none}.am-list .am:first-child .am-tip::after,.am-list .am:nth-child(2) .am-tip::after{left:18px}
.amenity-panel .am-group{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px}
.am-pick{display:flex;flex-wrap:wrap;gap:8px}
.am-opt{display:inline-flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-size:.86rem;user-select:none;transition:.15s}
.am-opt input{position:absolute;opacity:0;width:0;height:0}
.am-opt .ico{width:20px;height:20px;flex:none}.am-opt .am-emoji{font-size:1.1rem}
.am-opt:has(input:checked),.am-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.am-prev .ico{width:20px;height:20px;vertical-align:middle}
.gf-amen{position:relative}
.gf-amen>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:.9rem;white-space:nowrap}
.gf-amen>summary::-webkit-details-marker{display:none}
.gf-amen>summary b{background:var(--accent);color:#fff;border-radius:999px;padding:0 7px;font-size:.72rem;line-height:1.5}
.gf-amen.is-set>summary{border-color:var(--accent)}
.gf-amen-pop{position:absolute;z-index:60;top:calc(100% + 8px);right:0;left:auto;width:min(560px,calc(100vw - 32px));max-height:min(70vh,520px);overflow:auto;padding:12px 14px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.gf-amen-pop h4{margin:10px 0 6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.gf-amen-pop h4:first-child{margin-top:0}
.gf-amen-pop .am-opt{padding:6px 10px 6px 8px;font-size:.82rem}
.gf-amen-actions{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:-14px;background:var(--card);padding:10px 0 0}
@media(max-width:760px){.gf-amen-pop{position:fixed;left:16px;right:16px;top:auto;bottom:calc(var(--bottom-h,64px) + 12px);width:auto;max-height:60vh}}
/* amenities filter button: same height as the selects; on phones it goes to the row with the selects (after search + button) */
.gf-main .gf-amen>summary{height:46px;box-sizing:border-box}
@media (max-width:720px){
  .gf-main .gf-amen{order:4;flex:1 1 100%}
  .gf-main .gf-amen>summary{width:100%;justify-content:center}
  .gf-main .gf-amen-pop{right:auto;left:0}
}

/* ===== Ubytování: cena od / noc, check-in / check-out (update-stay, 3. 10. 2026) ===== */
.badge-stay-price{background:var(--accent);color:#fff;font-weight:700}
.card-venue .card-body p.card-stay-price{display:block;-webkit-line-clamp:unset;overflow:visible;margin:6px 0 0;font-weight:700;color:var(--accent);font-size:.92rem}
.info-box .stay-price-row small{display:block;margin-top:2px;font-size:.78rem}

/* ---- Season chart of a destination (how busy each month is; 2026-10-08) ----
   mobile: full block under "About"; desktop (≥900px): small chip next to the name in the cover */
.season{margin:22px 0}
.season h2{display:flex;align-items:center;gap:8px;font-size:1.1rem;margin-bottom:2px}
.season h2 .ico{color:var(--accent)}
.season-hint{margin:0 0 10px}
.season-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;padding:14px 10px 8px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.season-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;min-width:0;height:84px}
.season-bar{display:block;width:min(100%,22px);height:calc(10px + var(--v,0) * 5.4px);border-radius:999px;
  background:linear-gradient(180deg,var(--accent) 0%,var(--purple,#9b5cff) 100%);opacity:calc(.22 + var(--v,0) * .078);transition:height .25s}
.season-col small{font-size:.68rem;line-height:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.season-col.is-now small{color:var(--accent);font-weight:700}
.theme-light .season-bar{opacity:calc(.28 + var(--v,0) * .072)}
.season-chip{display:none}
.cover-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.cover-title-row h1{margin:0}
.cover h1+.lead,.cover-title-row+.lead{margin-top:6px}
@media(min-width:900px){
  .season-full{display:none}
  .season-chip{display:inline-flex;align-items:center;gap:12px;padding:8px 14px 6px 12px;border-radius:16px;background:rgba(0,0,0,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;cursor:default}
  .season-chip-label{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;white-space:nowrap}
  .season-chip-label .ico{color:var(--pink)}
  .season-chip .season-chart{display:flex;gap:8px;padding:0;border:0;background:none;border-radius:0}
  .season-chip .season-col{height:44px;width:28px;gap:4px}
  .season-chip .season-bar{width:10px;height:calc(6px + var(--v,0) * 2.6px);opacity:calc(.3 + var(--v,0) * .07);background:linear-gradient(180deg,var(--pink) 0%,#9b5cff 100%)}
  .season-chip .season-col small{font-size:.66rem;color:rgba(255,255,255,.78)}
  .season-chip .season-col.is-now small{color:#fff;font-weight:700}
}

/* ---- Home in Local mode: events are a section of their own, the three-column block keeps useful + app (2026-10-08) ---- */
@media (min-width:900px){.home2-cols.no-events{grid-template-columns:1fr 2.7fr}}

/* ---- Destination finder: when + how busy + kind of trip (2026-10-08) ---- */
.trip-finder{margin:18px 0 22px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card);display:flex;flex-direction:column;gap:12px}
.trip-finder.is-on{border-color:var(--accent)}
.tf-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tf-head .ico{color:var(--accent)}.tf-head strong{font-size:1.05rem}
.tf-row{display:grid;gap:12px;grid-template-columns:1fr}
.tf-field{display:flex;flex-direction:column;gap:6px;min-width:0}.tf-field>span{font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tf-field select{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);font:inherit}
.tf-seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card2)}
.tf-seg label{flex:1;position:relative}.tf-seg input{position:absolute;opacity:0;inset:0}
.tf-seg span{display:block;text-align:center;padding:9px 6px;font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.tf-seg label+label span{border-left:1px solid var(--line)}
.tf-seg input:checked+span{background:var(--accent);color:var(--accent-ink,#fff)}
.tf-seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}
.tf-types{display:flex;flex-wrap:wrap;gap:8px}
.tf-types .chip{position:relative;cursor:pointer;border-radius:999px;padding:7px 14px;color:var(--text);font-weight:600;transition:border-color .15s,background .15s}
.tf-types .chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.tf-types .chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.tf-types .chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.tf-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.finder-head{margin-top:4px}.finder-hint{margin:-6px 0 12px}
@media(min-width:700px){.tf-row{grid-template-columns:1.2fr 1fr}}
/* tiny season sparkline on destination cards (finder results) */
.season-mini{gap:7px;padding-right:9px}
.season-mini .sm-bars{display:flex;align-items:flex-end;gap:2px;height:14px}
.season-mini .sm-bars i{display:block;width:3px;height:calc(3px + var(--v,0) * 1.1px);border-radius:2px;background:#fff;opacity:.35}
.season-mini .sm-bars i.on{opacity:1;background:var(--pink)}
.season-mini b{font-size:.82rem}
/* trip type pills in the destination cover */
.cover-chips .trip-type{font-weight:600;font-size:.82rem;padding:5px 11px}
.cover-chips .trip-type:hover{background:rgba(0,0,0,.6)}

/* ---- Trips through several destinations: stops (2026-10-08) ---- */
.trip-route .route-arrow{opacity:.6;margin:0 2px}
.trip-stops{margin:18px 0 22px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.trip-stops-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:1.1rem;margin:0 0 10px}.trip-stops-head .ico{color:var(--accent)}.trip-stops-head small{font-weight:500;font-size:.82rem}
.stop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.stop-row{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}
.stop-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink,#fff);font-weight:800;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center}
.stop-body{flex:1;min-width:0}
.stop-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.stop-name{font-weight:700;font-size:1rem}
.stop-note{margin:4px 0 0}
.stop-edit{margin-top:4px}.stop-edit summary{font-size:.82rem}
.stop-link{display:flex;align-items:center;gap:6px;padding:0 0 0 7px}.stop-link .ico{transform:rotate(90deg);opacity:.6}
.stop-add{margin-top:10px}.stop-add summary{display:inline-flex;list-style:none}.stop-add summary::-webkit-details-marker{display:none}.stop-add form{margin-top:12px}
.trip-stop-block{margin-top:26px}
.trip-stop-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.25rem;padding-bottom:8px;border-bottom:2px solid var(--accent);margin-bottom:10px}
.trip-stop-head small{font-weight:500;font-size:.85rem}

/* ---- Planner: "where next" – nearby destinations with what is on during the stay ---- */
.plan-nearby-hint{margin:-6px 0 12px}
.nearby-grid{display:grid;gap:12px;grid-template-columns:1fr}
.nearby-card{display:flex;gap:12px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0}
.nearby-card.has-big{border-color:var(--accent)}
.nb-img{flex:none;width:96px;height:96px;border-radius:10px;background:var(--img) center/cover,var(--card2);position:relative;display:block}
.nb-km{position:absolute;left:6px;bottom:6px;display:inline-flex;align-items:center;gap:3px;padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:.72rem;font-weight:700}
.nb-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.nb-name{font-weight:700;font-size:1.02rem}
.nb-events{list-style:none;margin:2px 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.88rem}
.nb-events li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.nb-events a{display:inline-flex;align-items:center;gap:5px;min-width:0}.nb-events .ico{color:var(--accent);flex:none}
.nb-none{margin:0}
.nb-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}
@media(min-width:700px){.nearby-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.nearby-grid{grid-template-columns:repeat(3,1fr)}}

/* ---- Extended planner: criteria + ranked results ---- */
.pc-grid{display:grid;gap:12px;grid-template-columns:1fr}
.pc-types{grid-column:1/-1}
@media(min-width:700px){.pc-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.pc-grid{grid-template-columns:repeat(3,1fr)}.pc-grid .pc-types{grid-column:1/-1}}
.trip-search .ts-adv-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;cursor:pointer;align-self:center}
.trip-search .ts-advanced{flex-basis:100%;width:100%;padding-top:10px;border-top:1px solid var(--line);margin-top:4px}
.trip-search .ts-advanced>p{margin:0 0 10px}
.trip-search .tf-field>span{font-size:.74rem}
.trip-search .tf-seg{background:var(--card)}
.plan-find .page-head .crumb{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--muted)}
.plan-find-form .tf-row{grid-template-columns:1fr}
@media(min-width:700px){.plan-find-form .tf-row{grid-template-columns:1fr 1.2fr}}
.plan-find-form .date-pair{display:flex;gap:8px}.plan-find-form .date-pair .date-field{flex:1}
.find-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.find-row{display:flex;gap:14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);min-width:0}
.find-row.top{border-color:var(--accent)}
.find-img{flex:none;width:110px;height:110px;border-radius:12px;background:var(--img) center/cover,var(--card2);position:relative;display:block}
.find-match{position:absolute;left:6px;top:6px;padding:4px 8px;border-radius:999px;background:var(--accent);color:var(--accent-ink,#fff);font-size:.8rem;font-weight:800}
.find-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.find-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.find-name{font-weight:800;font-size:1.1rem}
.find-weather{margin:0;font-size:.8rem;padding:3px 9px 3px 6px}
.find-bar{display:block;height:5px;border-radius:999px;background:var(--card2);overflow:hidden;max-width:360px}.find-bar i{display:block;height:100%;background:var(--rainbow)}
.find-why{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.find-why .chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;border-radius:999px}.find-why .chip .ico{color:var(--accent)}
.find-why .season-mini{background:var(--card2);color:var(--text);border:1px solid var(--line);backdrop-filter:none}.find-why .season-mini .sm-bars i{background:var(--muted)}
.find-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}
@media(max-width:520px){.find-img{width:84px;height:84px}}
/* extended planner: every picked criterion as a pill – met (✓), partly (·), not available here (struck through) */
.find-why .chip.is-ok .ico{color:var(--green)}
.find-why .chip.is-mid{color:var(--muted)}.find-why .chip.is-mid .ico{color:var(--yellow)}
.find-why .chip.is-no{text-decoration:line-through;color:var(--muted);opacity:.75;border-style:dashed}.find-why .chip.is-no .ico{color:var(--red,#ff5252)}
/* finder: picked trip types on the destination card – offered (✓) / not here (struck through) */
.type-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.type-pills i{font-style:normal;font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff;line-height:1.3}
.type-pills i.ok::before{content:"✓ ";color:var(--green)}
.type-pills i.no{text-decoration:line-through;opacity:.7}.type-pills i.no::before{content:"✕ ";color:#ff5252;text-decoration:none}
.finder-partial{margin-top:26px}

/* Home page, Local mode: calendar of the home destination under the quick links (2026-10-13). Same glass panel as the
   trip planner it replaces; a strip of days with coloured dots (event types), the chosen day's events under it.
   Long names are cut with "…", never wrapped. */
.local-cal{position:relative;z-index:2;margin-top:14px;padding:12px 16px 10px;border-radius:14px;
  background:linear-gradient(180deg,rgba(40,50,120,.45),rgba(10,14,50,.55));border:1px solid rgba(140,150,255,.18);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.theme-light .local-cal{background:rgba(255,255,255,.85);border-color:var(--line)}
.local-cal .lc-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px;min-width:0}
.local-cal .lc-head strong{font-size:1rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.local-cal .lc-head strong span{color:var(--muted);font-weight:500;font-size:.85rem;margin-left:8px}
.local-cal .lc-head a{font-size:.85rem;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap;flex:0 0 auto}
.local-cal .lc-strip{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.local-cal .lc-strip::-webkit-scrollbar{display:none}
.local-cal .lc-day{flex:1 0 44px;min-width:44px;scroll-snap-align:start;border:0;background:transparent;border-radius:10px;padding:6px 0 5px;text-align:center;cursor:pointer;color:var(--text);font:inherit;line-height:1.15}
.local-cal .lc-day small{display:block;font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.local-cal .lc-day b{display:block;font-size:1rem;margin:2px 0 3px;font-weight:700}
.local-cal .lc-day b i{font-style:normal;font-size:.62rem;font-weight:600;color:var(--muted);margin-left:2px}
.local-cal .lc-day .d{display:flex;justify-content:center;gap:3px;height:5px}
.local-cal .lc-day .d i{width:5px;height:5px;border-radius:50%;display:block}
.local-cal .lc-day.empty{opacity:.38;cursor:default}
.local-cal .lc-day.today small{color:var(--accent);font-weight:700}
.local-cal .lc-day:not(.empty):not(.sel):hover,.local-cal .lc-day:focus-visible{background:var(--accent-soft)}
.local-cal .lc-day.sel{background:var(--accent);color:var(--accent-ink,#fff)}
.local-cal .lc-day.sel small,.local-cal .lc-day.sel b i{color:rgba(255,255,255,.8)}
.local-cal .lc-day.sel .d i{background:#fff!important}
.local-cal .lc-list{border-top:1px solid var(--line);margin-top:6px;padding-top:4px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.local-cal .lc-list[hidden]{display:none}
.local-cal .lc-ev{display:flex;gap:10px;align-items:center;padding:7px 4px;border-radius:8px;text-decoration:none;color:inherit;min-width:0}
.local-cal .lc-ev:hover{background:var(--accent-soft)}
.local-cal .lc-ev .t{flex:0 0 auto;min-width:46px;font-size:.82rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;flex-direction:column;line-height:1.2}
.lc-ev .t .to{font-weight:500;font-size:.74rem;opacity:.8}

.local-cal .lc-ev .t small{font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.local-cal .lc-ev .n{flex:1;min-width:0}
.local-cal .lc-ev .n b,.local-cal .lc-ev .n span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.local-cal .lc-ev .n b{font-size:.9rem}
.local-cal .lc-ev .n span{font-size:.76rem;color:var(--muted)}
.local-cal .lc-ev .k{font-size:.68rem;padding:2px 8px;border-radius:999px;color:#fff;flex:0 0 auto;font-weight:600;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.local-cal .lc-more{grid-column:1/-1;font-size:.82rem;color:var(--muted);padding:4px 4px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.local-cal .lc-more a{color:var(--accent);font-weight:600;text-decoration:none}
@media (max-width:760px){
  .local-cal{padding:10px 12px 8px}
  .local-cal .lc-head strong span{display:none}
  .local-cal .lc-day{flex:0 0 46px}
  .local-cal .lc-day:nth-child(n+15){display:none}   /* phones: two weeks */
  .local-cal .lc-list{grid-template-columns:1fr;gap:0}
  .local-cal .lc-ev{padding:5px 2px}
  .local-cal .lc-ev .k{display:none}
}

/* Venue page: the venue's own programme under the reviews (2026-10-13); the side column keeps only other events of the destination */
.venue-events{margin-top:28px}
.venue-events .event-row{grid-template-columns:repeat(3,1fr)}
@media (max-width:899px){.venue-events .event-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:599px){.venue-events .event-row{grid-template-columns:1fr}}
.venue-events-mobile{display:none}
@media (max-width:899px){.venue-events-mobile{display:block;margin-top:0}.detail-main .venue-events{display:none}}

/* Member activity – the timeline on the community profile (2026-10-14): a record of what the member did, nobody reacts */
.member-layout{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.member-layout.has-activity{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
/* a grid column never grows past the viewport because of a wide card (mobile overflow, 14. 10. 2026) */
.member-main,.member-side,.activity,.timeline,.tl-item,.tl-card,.tl-head,.tl-what,.tl-entity{min-width:0;max-width:100%}
.tl-card{overflow:hidden}
.member-side .side-box p{margin:0 0 8px}
.activity-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.activity-head h2{margin:0;font-size:1.35rem}
.activity-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.activity-filters .chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;text-decoration:none}
.activity-filters .chip small{opacity:.7;font-weight:500}
.activity-filters .chip.on{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.activity-filters .chip.private{border-style:dashed}
.activity-empty{padding:20px 0}
.timeline{position:relative;padding-left:44px}
.timeline::before{content:"";position:absolute;left:17px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-period{position:relative;margin:0 0 12px;font-size:1rem;font-weight:700}
.tl-period:not(:first-child){margin-top:26px}
.tl-period::before{content:"";position:absolute;left:-33px;top:7px;width:8px;height:8px;border-radius:50%;background:var(--muted2)}
.tl-item{position:relative;margin-bottom:14px}
.tl-dot{position:absolute;left:-44px;top:14px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card);border:2px solid var(--line);color:var(--muted)}
.tl-photo .tl-dot{color:var(--blue);border-color:rgba(61,155,255,.5)}
.tl-review .tl-dot{color:var(--yellow);border-color:rgba(255,197,61,.5)}
.tl-article .tl-dot{color:var(--purple);border-color:rgba(155,92,255,.5)}
.tl-trip .tl-dot{color:var(--blue);border-color:rgba(61,155,255,.5)}
.tl-favourite .tl-dot{color:var(--pink);border-color:rgba(255,61,119,.5)}
.tl-visit .tl-dot{color:var(--green);border-color:rgba(34,211,127,.5)}
.tl-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.tl-item.is-private .tl-card{border-style:dashed;opacity:.85}
.tl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.tl-avatar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--img) center/cover;box-shadow:0 0 0 2px var(--pink)}
.tl-what{flex:1 1 120px;min-width:0}
.tl-head .chip.small{margin-left:auto;padding:4px 10px;font-size:.75rem;display:inline-flex;align-items:center;gap:4px;border-radius:999px}
.tl-private{border-style:dashed}
.tl-place{margin:0 0 10px;color:var(--muted);font-size:.9rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tl-place a{color:var(--text);font-weight:600}
.tl-photos{display:grid;gap:6px;grid-template-columns:repeat(4,1fr)}
.tl-photos a{position:relative;display:block;aspect-ratio:1;border-radius:10px;background:var(--img) center/cover}
.tl-photos.n1{grid-template-columns:minmax(0,420px)}
.tl-photos.n1 a{aspect-ratio:3/2}
.tl-photos.n2{grid-template-columns:repeat(2,1fr)}.tl-photos.n2 a{aspect-ratio:4/3}
.tl-photos.n3{grid-template-columns:2fr 1fr}.tl-photos.n3 a:first-child{grid-row:span 2;aspect-ratio:auto}
.tl-photos.n4{grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr}.tl-photos.n4 a:first-child{grid-row:span 2;aspect-ratio:auto}
.tl-photos a b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;font-size:1.3rem}
.tl-entity{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:inherit}
.tl-entity:hover strong{color:var(--pink)}
.tl-thumb{flex:none;width:110px;height:82px;border-radius:12px;background:var(--img) center/cover}
.tl-thumb.big{width:170px;height:120px}
.tl-entity-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.tl-entity-body strong{font-size:1.02rem}
.tl-rating{display:inline-flex;align-items:center;gap:6px}
.tl-rating b{font-size:.9rem}
.tl-quote{color:var(--text);opacity:.9}
.tl-cta{align-self:flex-start;margin-top:4px}
.activity-prefs{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin:4px 0}
.activity-prefs legend{padding:0 6px;font-weight:600}
.activity-prefs .chips{margin:8px 0}
@media (max-width:599px){
  .activity-filters{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .activity-filters .chip{flex:none}
  .tl-card{padding:12px}
  .tl-head .chip.small{display:none}
  .timeline{padding-left:36px}.timeline::before{left:13px}
  .tl-dot{left:-36px;width:28px;height:28px;top:16px}
  .tl-period::before{left:-27px}
  .tl-thumb,.tl-thumb.big{width:84px;height:64px}
  .tl-photos.n4,.tl-photos.n3{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}
  .tl-photos.n4 a:first-child,.tl-photos.n3 a:first-child{grid-row:auto;aspect-ratio:1}
}
.theme-light .tl-photos a b{background:rgba(20,20,43,.55)}
/* "What is happening in {destination} – from the community" (2026-10-14) */
.dact-list{display:grid;gap:8px}
@media (min-width:900px){.dact-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.dact-row{min-width:0;display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:inherit;text-decoration:none}
.dact-row:hover{border-color:var(--pink)}
.dact-avatar{flex:none;width:36px;height:36px;border-radius:50%;background:var(--img) center/cover;box-shadow:0 0 0 2px var(--pink)}
.dact-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.dact-what{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.dact-what b{color:var(--text)}
.dact-body strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dact-body .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dact-thumb{flex:none;width:64px;height:48px;border-radius:10px;background:var(--img) center/cover}
.dact-photos{flex:none;display:flex;gap:3px;align-items:center}
.dact-photos i{width:40px;height:40px;border-radius:8px;background:var(--img) center/cover}
.dact-photos b{font-size:.8rem;color:var(--muted);padding-left:2px}

/* #hashtags in texts (2026-10-14): links to /tag/{slug}; the tag page */
a.hashtag{color:var(--pink);font-weight:600;text-decoration:none;word-break:break-word}
a.hashtag:hover{text-decoration:underline}
.hashtag.big{font-size:inherit}
.tag-head{margin-bottom:24px}
.tag-head h1{margin-bottom:6px}
.tag-dests{margin-top:12px}
.tag-dests .chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;text-decoration:none}
.tag-dests .chip small{opacity:.7}
.tag-dests .chip.on{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.tag-page section{margin-bottom:32px}
.tag-reviews{display:grid;gap:10px}
@media (min-width:900px){.tag-reviews{grid-template-columns:1fr 1fr}}
.tag-review{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm)}
.tag-review-head{margin:0 0 4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tag-review .rv-text{margin:0}
.tag-related{border-top:1px solid var(--line);padding-top:16px}
.tag-cloud{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0}
.tag-cloud .hashtag small{margin-left:3px;color:var(--muted);font-weight:500}
.search-tags .hashtag{margin-right:6px}
.tag-chips{display:flex;flex-wrap:wrap;gap:6px 12px;margin:10px 0 0}

.activity-more{text-align:center;margin:18px 0 4px}

/* an ad card in the member's timeline (every 10th entry, free card only) */
.tl-ad .tl-dot{color:var(--muted);border-style:dashed}
.tl-card-ad{padding:0;border-style:dashed}
.tl-card-ad .ad{border:0;border-radius:var(--radius);margin:0}
.tl-card-ad .ad-feed{min-height:0}
.tl-item.tl-ad:not(:has(.ad.is-on)){display:none}
@media (max-width:599px){.tl-card-ad .ad-feed.is-on{display:block!important}}
.tl-item.tl-ad:has(ins[data-ad-status="unfilled"]){display:none}

/* the next dates of a repeating event on its card (2026-10-14) */
.ev-next{font-size:.82rem;opacity:.85}

/* places of interest – castles, museums, parks (14. 10. 2026) */
.community-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin:14px 0 18px;border:1px solid var(--line);border-left:4px solid var(--pink);border-radius:var(--radius-sm);background:var(--card)}
.community-note .ico{flex:none;color:var(--pink);margin-top:2px}
.community-note b{display:block;margin-bottom:4px}
.community-note p{margin:0;color:var(--muted)}
.sights-note{margin-top:20px}

/* billing: documents under orders, saved company details, checkout hint (16. 10. 2026) */
.order-row .order-docs{display:flex;flex-wrap:wrap;gap:6px;padding:6px 14px 2px}
.order-row .order-docs .btn{font-size:.8rem}
.order-docs-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0}
.order-docs-box b{display:flex;align-items:center;gap:6px;margin-right:4px}
.order-docs-box small{flex-basis:100%}
.order-billing{margin-top:26px}
.order-billing .form-grid{display:grid;gap:10px;margin-top:10px}
.order-billing .row2{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.order-billing label.f{display:grid;gap:4px}
.order-billing label.f span{font-size:.85rem;color:var(--muted)}
.order-billing .btn{justify-self:start}
.billing-hint{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@media (max-width:560px){.order-billing .row2{grid-template-columns:1fr}}

/* buying tickets without an account (16. 10. 2026) */
.guest-checkout{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);display:grid;gap:12px}
.guest-checkout .gc-login{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.guest-checkout .gc-or{display:flex;align-items:center;gap:10px;margin:0;color:var(--muted);font-size:.85rem}
.guest-checkout .gc-or::before,.guest-checkout .gc-or::after{content:"";flex:1;height:1px;background:var(--line)}
.guest-checkout .gc-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guest-checkout label.f{display:grid;gap:4px}
.guest-checkout label.f span{font-size:.85rem;color:var(--muted)}
.guest-checkout .btn-rainbow{justify-self:start}
.guest-checkout p{margin:0}
.guest-order-note p{margin:0 0 6px}
@media (max-width:640px){.guest-checkout .gc-fields{grid-template-columns:1fr}}

/* destination page: offers of local guides (16. 10. 2026) */
.dest-pkg-title{display:flex;align-items:center;gap:6px;margin:22px 0 4px;font-size:1.05rem}

/* destination page on a phone (16. 10. 2026): quick jump bar + horizontal rails instead of long grids */
.dest-jump{position:sticky;top:var(--header-h);z-index:30;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 8px;padding:10px 16px;background:var(--bg,#020316);border-bottom:1px solid var(--line)}
.dest-jump::-webkit-scrollbar{display:none}
.dest-jump a{flex:0 0 auto;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:.85rem;font-weight:600;text-decoration:none;white-space:nowrap}
.dest-jump a:hover{border-color:var(--accent,#ff3d8b)}
.dest-page section[id]{scroll-margin-top:calc(var(--header-h,64px) + 60px)}
@media (max-width:699px){
  .dest-page .m-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .dest-page .m-rail::-webkit-scrollbar{display:none}
  .dest-page .m-rail>*{flex:0 0 72%;max-width:300px;scroll-snap-align:start}
  .dest-page .m-rail.m-rail-wide>*{flex-basis:84%;max-width:360px}
  .dest-page .m-rail .card-event{grid-template-columns:1fr;gap:0}
  .dest-page .m-rail .card-event .ev-poster{min-height:150px}
  .dest-page .m-rail .card-event .card-body{padding:10px 12px 12px}
}
@media (min-width:900px){.dest-jump{position:static;margin:0 0 8px;padding:0 0 10px;background:none;border:0}}

/* ===== Emergency messages for destinations (20. 10. 2026) ===== */
.dalerts{display:grid;gap:12px;margin:0 0 22px}
.dalert{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.55);border-left-width:5px;color:var(--text);min-width:0}
.dalert.sev-2{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.65)}
.dalert-ico{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(245,158,11,.22);color:#f59e0b}
.dalert.sev-2 .dalert-ico{background:rgba(239,68,68,.22);color:#ef4444}
.dalert-main{flex:1;min-width:0}
.dalert-meta{margin:0 0 2px;font-size:.82rem;color:var(--muted);text-transform:none}
.dalert-meta b{color:var(--text);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}
.dalert-title{margin:0 0 6px;font-size:1.08rem;line-height:1.3}
.dalert-title a{color:inherit}
.dalert-body{font-size:.95rem;line-height:1.5;overflow-wrap:anywhere}
.dalert-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;font-size:.9rem}
.dalert-links a{font-weight:600}
.dalert-contacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.dalert-num{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--text);font-size:.88rem;text-decoration:none;max-width:100%}
.dalert-num span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dalert-reg,.dalert-all{font-size:.88rem;font-weight:600}
.dalerts-compact .dalert{padding:12px 14px}
.dalerts-compact .dalert-body{font-size:.9rem}
@media (max-width:600px){.dalert{gap:10px;padding:12px}.dalert-ico{width:32px;height:32px}}

/* ===== Traveler home: "I am in…" (20. 10. 2026) ===== */
.here{margin-bottom:8px}
.here-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;margin:0 0 18px;border-radius:14px;background:var(--card);border:1px solid var(--line);position:relative}
.here-ico{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(236,72,153,.15);color:#ec4899}
.here-text{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.here-ask .here-text{flex-direction:column;align-items:flex-start}
.here-label{color:var(--muted);font-weight:600}
.here-src{color:var(--muted)}
.here-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.here-pick{position:static}   /* the menu hangs on .here-bar, so it never runs off the side (20. 10. 2026) */
.here-pick>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:1.15rem}
.here-pick>summary::-webkit-details-marker{display:none}
.here-pick>summary b{border-bottom:2px dashed currentColor}
.here-caret{transform:rotate(90deg);transition:transform .15s}
.here-pick[open] .here-caret{transform:rotate(-90deg)}
.here-menu{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(360px,100%);max-width:100%;box-sizing:border-box;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.35);font-size:.95rem}
.here-actions .here-menu{left:auto;right:0}
.here-search input{box-sizing:border-box;max-width:100%}
.here-search input{width:100%}
.here-results{list-style:none;margin:8px 0 0;padding:0}
.here-results li a{display:flex;gap:6px;align-items:center;padding:7px 8px;border-radius:8px;color:var(--text);text-decoration:none}
.here-results li a:hover{background:rgba(255,255,255,.06)}
.here-results small{color:var(--muted)}
.here-menu-h{margin:10px 0 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.here-menu-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:10px 0 0}
.here-msg{flex-basis:100%;margin:0;color:var(--muted)}
.here-sec{margin-bottom:22px}
.here-open{text-align:center;margin:4px 0 28px}
@media (max-width:600px){.here-bar{padding:10px 12px}.here-actions{width:100%}.here-menu,.here-actions .here-menu{left:0;right:0;width:auto}}

/* ===== Partner levels: blue tick = Partner, green tick = Partner+ (20. 10. 2026) ===== */
.partner-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;font-weight:700;font-size:.85rem;text-decoration:none;line-height:1.2;border:1px solid transparent}
.partner-badge .pb-tick{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;color:#fff}
.partner-badge .pb-tick .ico{width:13px;height:13px;stroke-width:3}
.pb-basic{background:rgba(59,130,246,.14);border-color:rgba(59,130,246,.45);color:#60a5fa}
.pb-basic .pb-tick{background:#3b82f6}
.pb-plus{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.45);color:#4ade80}
.pb-plus .pb-tick{background:#22c55e}
.pb-mini{padding:1px 8px;font-size:.7rem;vertical-align:middle;margin-left:4px}
.partner-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.pl-card{display:block;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.pl-card p{margin:0 0 6px}
.pl-choose .pl-card{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.pl-choose .pl-card:has(input:checked){border-color:#22c55e;box-shadow:0 0 0 1px #22c55e inset}
.pl-choose .pl-card input{margin-top:4px}

/* ===== "I want the Pass here" after scanning a sticker (20. 10. 2026) ===== */
.want-pass{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:14px 16px;margin:0 0 18px;border-radius:14px;background:rgba(255,61,119,.10);border:1px solid rgba(255,61,119,.45)}
.want-pass>div{flex:1;min-width:200px}
.want-pass p{margin:2px 0 0}

/* "I am in…" block on the home page: the same spacing as the other home sections (".home2 section{margin:0}" removed it) – 20. 10. 2026 */
.home2 .here{display:flex;flex-direction:column;gap:36px}
.home2 .here-bar{margin:0}
.home2 .here .here-open{margin:-12px 0 0}
@media (max-width:600px){.home2 .here{gap:28px}}

/* favourite performers & guides (23. 10. 2026) */
.fav-sub{margin:22px 0 10px;display:flex;align-items:center;gap:6px}
.dest-performers,.community-performers{margin-top:28px}

/* shared item as a card in a chat message (23. 10. 2026) */
.msg-card{display:flex;gap:10px;align-items:center;margin:6px 0 2px;padding:8px;border-radius:12px;background:rgba(0,0,0,.18);color:inherit;text-decoration:none;min-width:220px;max-width:340px}
.msg-card:hover{background:rgba(0,0,0,.28)}
.msg-card.past{opacity:.6}
.msg-card-img{flex:0 0 52px;width:52px;height:52px;border-radius:10px;background:var(--img) center/cover no-repeat,rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}
.msg-card-body{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.msg-card-body small{font-size:.68rem;opacity:.75;text-transform:uppercase;letter-spacing:.04em}
.msg-card-body b{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.msg-card-body span{font-size:.75rem;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.theme-light .msg:not(.mine) .msg-card{background:rgba(0,0,0,.05)}

/* deleting a message (23. 10. 2026) */
.msg-del{position:absolute;top:2px;right:2px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,.25);color:inherit;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0}
.msg-del .ico{width:13px;height:13px}
.msg-bubble:hover .msg-del,.msg-del:focus{display:inline-flex}
@media (hover:none){.msg-del{display:inline-flex;opacity:.55;background:transparent}}
.msg-deleted{opacity:.65;font-size:.85rem}
.msg.mine .msg-bubble{padding-right:30px}
