/* Georgian text uses BPG Banner Caps (free font from BPG-InfoTech); Latin letters and digits keep Fraunces / Inter. */
@font-face{
  font-family:'BPG Banner Caps';
  src:url('../fonts/bpg-banner-caps.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+10A0-10FF, U+1C90-1CBF, U+2D00-2D2F;
}


/* ============ TOKENS ============ */
:root{
  --ink:#151515;
  --muted:#6E6B78;
  --bg:#F7F6F3;
  --surface:#FFFFFF;
  --line:#E6E3DC;
  --primary:#5A5293;
  --primary-deep:#423C6E;
  --secondary:#8B84C6;
  --wash:#F1EFF8;
  --radius-lg:26px;
  --radius-md:20px;
  --radius-sm:14px;
  --shadow-card:0 1px 2px rgba(21,21,21,.04), 0 12px 28px -14px rgba(66,60,110,.28);
  --shadow-pop:0 24px 60px -20px rgba(21,21,21,.35);
  --font-display:'BPG Banner Caps', 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-ui:'BPG Banner Caps', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#F3F1EE; --muted:#B4B0BE; --bg:#17151C; --surface:#1F1C27;
    --line:#332E3E; --primary:#9C93D9; --primary-deep:#B9B0EE; --secondary:#7A72B8;
    --wash:#241F30; --shadow-card:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.5);
    --shadow-pop:0 24px 60px -20px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --ink:#F3F1EE; --muted:#B4B0BE; --bg:#17151C; --surface:#1F1C27;
  --line:#332E3E; --primary:#9C93D9; --primary-deep:#B9B0EE; --secondary:#7A72B8;
  --wash:#241F30; --shadow-card:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.5);
  --shadow-pop:0 24px 60px -20px rgba(0,0,0,.6);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:90px;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-ui); -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
img,svg{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
:focus-visible{outline:2.5px solid var(--primary); outline-offset:2px;}
.wrap{max-width:1240px; margin:0 auto; padding:0 28px;}
@media(max-width:640px){.wrap{padding:0 18px;}}

/* generic scroll-hide */
.hscroll{display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px; -ms-overflow-style:none; scrollbar-width:none;}
.hscroll::-webkit-scrollbar{display:none;}

/* ============ HEADER ============ */
header.site{
  position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; height:76px; gap:24px;}
.logo{font-family:var(--font-display); font-weight:560; font-size:1.28rem; letter-spacing:.01em; white-space:nowrap;}
.logo span{color:var(--primary); font-style:italic; font-weight:480;}
nav.primary{display:flex; align-items:center;}
.primary-menu{list-style:none; margin:0; padding:0; display:flex; gap:4px; align-items:center; flex-wrap:wrap;}
.primary-menu .nav-item{position:relative; margin:0 6px;}
.primary-menu .navlink{
  display:inline-flex; align-items:center; gap:4px;
  background:none; border:none; color:var(--muted); font-size:.87rem; font-weight:500;
  padding:9px 14px; border-radius:100px; transition:background .15s, color .15s;
}
.primary-menu .navlink:hover{background:var(--wash); color:var(--ink);}
.primary-menu .navlink.active, .primary-menu .current > .navlink{background:var(--primary); color:#fff;}
.primary-menu .dropdown-caret{transition:transform .15s;}
.primary-menu .has-dropdown:hover .dropdown-caret{transform:rotate(180deg);}

/* Dropdown submenu — desktop: shows on hover */
.primary-menu .sub-menu{
  list-style:none; margin:0; padding:8px; position:absolute; top:100%; left:0; min-width:200px;
  background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-pop);
  opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s, transform .15s, visibility .15s;
  z-index:30;
}
.primary-menu .has-dropdown:hover .sub-menu{opacity:1; visibility:visible; transform:translateY(0);}
.primary-menu .sub-menu .nav-item{margin:0;}
.primary-menu .sub-menu .sub-link{display:block; padding:9px 12px; border-radius:9px; color:var(--ink); font-size:.86rem; white-space:nowrap;}
.primary-menu .sub-menu .sub-link:hover{background:var(--wash); color:var(--primary);}
.primary-menu .sub-menu .sub-menu{top:0; left:100%;} /* a third level opens sideways rather than off-screen below */
.nav-right{display:flex; align-items:center; gap:10px;}
.icon-btn{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:var(--surface);
  display:flex; align-items:center; justify-content:center; color:var(--ink); position:relative;
  transition:border-color .15s, transform .15s;
}
.icon-btn:hover{border-color:var(--primary); transform:translateY(-1px);}
.icon-btn .count{
  position:absolute; top:-4px; right:-4px; background:var(--primary); color:#fff; font-size:.62rem;
  min-width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:100px; font-weight:600; font-size:.94rem; border:1px solid transparent;
  transition:transform .15s, box-shadow .15s, background .15s;
}
.btn-primary{background:var(--primary); color:#fff;}
.btn-primary:hover{background:var(--primary-deep); box-shadow:0 10px 22px -10px var(--primary);}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary);}
.hide-mobile{display:flex;}
.show-mobile{display:none;}
@media(max-width:900px){
  nav.primary{display:none;}
  .hide-mobile{display:none;}
  .show-mobile{display:flex;}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));}
}

/* ============ MOBILE BOTTOM NAV ============ */
.mobile-bottom-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  background:var(--surface); border-top:1px solid var(--line);
  padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));
  justify-content:space-around; align-items:stretch;
}
.mobile-bottom-nav a, .mobile-bottom-nav button{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
  background:none; border:none; color:var(--muted); font-size:.68rem; font-weight:600;
  padding:4px 2px;
}
.mobile-bottom-nav a.active{color:var(--primary);}
.mobile-bottom-nav svg{flex:none;}

/* mobile menu sheet */
.mnav-sheet{
  position:fixed; inset:0; z-index:80; display:none;
}
.mnav-sheet.open{display:block;}
.mnav-backdrop{position:absolute; inset:0; background:rgba(21,21,21,.4);}
.mnav-panel{
  position:absolute; right:0; top:0; bottom:0; width:min(320px,84vw); background:var(--surface);
  padding:26px 22px; display:flex; flex-direction:column; gap:4px; box-shadow:var(--shadow-pop);
}
.mnav-panel{overflow-y:auto;}
.mobile-menu{list-style:none; margin:0; padding:0;}
.mobile-menu .nav-item{border-bottom:1px solid var(--line);}
.mobile-menu .navlink, .mobile-menu .sub-link{
  display:flex; align-items:center; justify-content:space-between; text-align:left; width:100%;
  padding:14px 8px; font-size:1.02rem; border-radius:10px; background:none; border:none; color:var(--ink);
}
.mobile-menu .navlink.active{color:var(--primary); font-weight:700;}
.mobile-menu .sub-menu{list-style:none; margin:0 0 6px; padding:0 0 0 14px; display:none;}
.mobile-menu .sub-menu .sub-link{font-size:.92rem; color:var(--muted); padding:11px 8px;}
.mobile-menu .has-dropdown.open > .sub-menu{display:block;}
.mobile-menu .has-dropdown.open > .navlink .dropdown-caret{transform:rotate(180deg);}
.mnav-close{align-self:flex-end; margin-bottom:8px;}

/* ============ HERO ============ */
.hero{padding:56px 0 0;}
.hero-head{max-width:640px;}
.eyebrow{font-size:.82rem; color:var(--primary); font-weight:600; margin-bottom:14px;}
.hero h1{
  font-family:var(--font-display); font-weight:480; font-size:clamp(2.5rem,5.4vw,4.1rem);
  line-height:1.03; margin:0 0 20px; letter-spacing:-.01em;
}
.hero h1 em{font-style:italic; color:var(--primary); font-weight:420;}
.hero p.lead{font-size:1.12rem; color:var(--muted); max-width:480px; line-height:1.55; margin:0;}

/* search module — V2 smart search (event type / city / date / guests + multi-select services) */
.search-module{
  margin:40px 0 0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card); padding:26px 26px 22px; position:relative; z-index:2;
}
.field-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:2px; background:var(--line);
  border-radius:var(--radius-md); overflow:hidden; margin-bottom:22px;
}
.search-field{background:var(--surface); padding:14px 18px; display:flex; flex-direction:column; gap:2px;}
.search-field label{font-size:.72rem; font-weight:600; color:var(--muted);}
.search-field select, .search-field input{
  border:none; background:none; font-family:inherit; font-size:.95rem; color:var(--ink); padding:0;
  width:100%;
}
.search-field select:focus, .search-field input:focus{outline:none;}
@media(max-width:900px){.field-grid{grid-template-columns:1fr 1fr;}}

.needs-block{margin-bottom:22px;}
.needs-block > label{display:block; font-size:.85rem; font-weight:700; margin-bottom:12px;}
.needs-hint{font-size:.8rem; color:var(--muted); font-weight:400; margin-left:4px;}
.pill-row{display:flex; flex-wrap:wrap; gap:10px;}
.svc-pill{
  display:flex; align-items:center; gap:8px; background:var(--wash); border:1.5px solid transparent; color:var(--primary-deep);
  padding:10px 16px; border-radius:100px; font-size:.88rem; font-weight:600; cursor:pointer; user-select:none;
  transition:background .15s, border-color .15s, color .15s;
}
.svc-pill .check{width:16px; height:16px; border-radius:5px; border:1.5px solid var(--secondary); flex:none; display:flex; align-items:center; justify-content:center; transition:background .15s, border-color .15s;}
.svc-pill.active{background:var(--primary); color:#fff;}
.svc-pill.active .check{background:#fff; border-color:#fff;}
.svc-pill.active .check::after{content:''; width:7px; height:7px; background:var(--primary); border-radius:2px;}
.svc-pill:hover{border-color:var(--primary);}

.search-footer{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;}
.selected-summary{font-size:.85rem; color:var(--muted);}
.selected-summary strong{color:var(--ink);}
.search-go{
  background:var(--primary); color:#fff; border:none; padding:14px 28px; border-radius:100px; font-weight:700; font-size:.95rem;
  display:flex; align-items:center; gap:8px; cursor:pointer; transition:background .15s;
}
.search-go:hover{background:var(--primary-deep);}
@media(max-width:640px){
  .search-footer{flex-direction:column; align-items:stretch;}
  .search-go{justify-content:center;}
}

/* ============ SECTIONS ============ */
section{padding:80px 0;}
section.tight{padding:52px 0;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:34px;}
.section-head h2{font-family:var(--font-display); font-weight:500; font-size:clamp(1.7rem,2.6vw,2.35rem); margin:0 0 6px; letter-spacing:-.005em;}
.section-head p{color:var(--muted); margin:0; font-size:1rem; max-width:460px;}
.see-all{font-size:.88rem; font-weight:600; color:var(--primary); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.see-all svg{transition:transform .15s;}
.see-all:hover svg{transform:translateX(3px);}

/* category grid: light lilac cards, big centered icon, 3 per row */
.cat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media(max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.cat-grid{grid-template-columns:1fr;}}

.cat-card{
  --cc-a:#EFECFA; --cc-b:#E4E0F6; --cc-c:#D8D3F1; --cc-l1:#DCCBF7; --cc-l2:#CFBBF2;
  --cc-ink:#24203F; --cc-mute:#5B567A; --cc-disc:#FFFFFF; --cc-disc-ink:var(--primary);
  position:relative; isolation:isolate; overflow:hidden; min-height:340px; min-width:0; border-radius:30px;
  padding:26px 26px 24px; display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--cc-ink); background:var(--cc-a);
  transition:transform .3s ease, color .3s ease, box-shadow .3s ease;
  box-shadow:0 1px 2px rgba(21,21,21,.05);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .cat-card{--cc-a:#272241; --cc-b:#2E2850; --cc-c:#352E5C; --cc-l1:#41306D; --cc-l2:#4A3878; --cc-ink:#F3F1EE; --cc-mute:#C5C1DE; --cc-disc:#3F3770; --cc-disc-ink:#E4E0F6;}
}
:root[data-theme="dark"] .cat-card{--cc-a:#272241; --cc-b:#2E2850; --cc-c:#352E5C; --cc-l1:#41306D; --cc-l2:#4A3878; --cc-ink:#F3F1EE; --cc-mute:#C5C1DE; --cc-disc:#3F3770; --cc-disc-ink:#E4E0F6;}
.cat-card:nth-child(6n+1){background:var(--cc-a);}
.cat-card:nth-child(6n+2){background:var(--cc-l1);}
.cat-card:nth-child(6n+3){background:var(--cc-c);}
.cat-card:nth-child(6n+4){background:var(--cc-l2);}
.cat-card:nth-child(6n+5){background:var(--cc-b);}
.cat-card:nth-child(6n){background:var(--cc-l1);}
.cat-card::before{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(150deg,var(--primary-deep),var(--primary)); opacity:0; transition:opacity .3s ease;}
.cat-card:hover{transform:translateY(-4px); color:#fff; box-shadow:0 22px 36px -22px rgba(66,60,110,.65);}
.cat-card:hover::before{opacity:1;}
.cat-disc{
  position:absolute; top:38px; left:50%; margin-left:-56px; width:112px; height:112px; border-radius:50%;
  background:var(--cc-disc); color:var(--cc-disc-ink); display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -14px rgba(66,60,110,.5); transition:transform .3s ease, color .3s ease, background .3s ease;
}
.cat-card:hover .cat-disc{transform:scale(1.06); color:var(--primary-deep); background:#fff;}
.cat-row{display:flex; align-items:flex-end; justify-content:space-between; gap:14px;}
.cat-text{display:flex; flex-direction:column; min-width:0;}
.cat-count{font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cc-mute); margin-bottom:8px; transition:color .3s;}
.cat-card h3{font-family:var(--font-display); font-weight:520; font-size:clamp(1.8rem,2.8vw,2.3rem); line-height:1.05; margin:0 0 8px; letter-spacing:-.01em;}
.cat-desc{color:var(--cc-mute); font-size:.9rem; line-height:1.45; max-width:30ch; transition:color .3s;}
.cat-card:hover .cat-count, .cat-card:hover .cat-desc{color:rgba(255,255,255,.82);}
.cat-go{flex:none; width:48px; height:48px; border-radius:50%; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:center; transition:background .3s, color .3s, transform .3s;}
.cat-card:hover .cat-go{background:#fff; color:var(--primary-deep); transform:translateX(3px);}
@media (prefers-reduced-motion: reduce){.cat-card, .cat-card::before, .cat-disc, .cat-go{transition:none;}}

/* duotone art generator via CSS only */
.art.a1{background:radial-gradient(120% 140% at 20% 10%, #7A72C4, var(--primary-deep));}
.art.a2{background:radial-gradient(120% 140% at 80% 0%, #B7AEE8, var(--primary));}
.art.a3{background:radial-gradient(120% 140% at 10% 90%, #9C93D9, #3A345E);}
.art.a4{background:radial-gradient(120% 140% at 90% 90%, #6E6598, #211D33);}
.art.a5{background:radial-gradient(120% 140% at 50% 0%, #8B84C6, #4A4478);}
.art.a6{background:radial-gradient(120% 140% at 30% 100%, #C9C2EE, #5A5293);}
.art::before{content:''; position:absolute; inset:0; opacity:.5; mix-blend-mode:soft-light;
  background-image:radial-gradient(circle at 30% 30%, rgba(255,255,255,.5) 0, transparent 40%),
                    radial-gradient(circle at 75% 65%, rgba(255,255,255,.35) 0, transparent 35%);}

/* ============ REAL PHOTOS (WordPress featured images / gallery) ============
   evoke_card_media() outputs an <img class="art-photo"> when a real image
   exists, falling back to the gradient <div class="art aX"> otherwise.
   These rules mirror the placeholder's positioning in each context so
   real photos and placeholders are interchangeable. */
img.art-photo{ width:100%; height:100%; object-fit:cover; display:block; }
.thumb .art-photo{ position:absolute; inset:0; transition:transform .4s ease; }
.card:hover .thumb .art-photo{ transform:scale(1.06); }
.loc-card > .art-photo{ position:absolute; inset:0; }
.gallery-grid .art-photo{ aspect-ratio:4/3; border-radius:14px; }

/* ============ CARDS (artists) ============ */
.card{
  background:var(--surface); border-radius:var(--radius-md); border:1px solid var(--line);
  overflow:hidden; box-shadow:var(--shadow-card); transition:transform .18s, box-shadow .18s;
  display:flex; flex-direction:column;
}
.evoke-js-card{cursor:pointer;}
.card h4 a{color:inherit; text-decoration:none;}
.card h4 a:hover{color:var(--primary);}
.card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -18px rgba(66,60,110,.32);}
.card .thumb{position:relative; aspect-ratio:5/4; overflow:hidden;}
.card .thumb .art{position:absolute; inset:0; transition:transform .4s ease;}
.card:hover .thumb .art{transform:scale(1.06);}
.fav-btn{
  position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; border:none;
  background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; z-index:2;
  transition:transform .15s;
}
.fav-btn:hover{transform:scale(1.08);}
.fav-btn svg{stroke:var(--ink); fill:none; transition:fill .15s, stroke .15s;}
.fav-btn.active svg{fill:var(--primary); stroke:var(--primary);}
.card .body{padding:16px 17px 18px; display:flex; flex-direction:column; gap:10px; flex:1;}
.card .top-row{display:flex; justify-content:space-between; align-items:flex-start; gap:8px;}
.partner-mark{
  display:flex; align-items:center; gap:4px; font-size:.66rem; font-weight:700; color:var(--primary);
  background:var(--wash); padding:5px 8px; border-radius:100px; white-space:nowrap; flex:none;
}
.card h4{font-family:var(--font-display); font-weight:560; font-size:1.12rem; margin:0;}
.card .loc{display:flex; align-items:center; gap:5px; color:var(--muted); font-size:.85rem; margin-top:2px;}
.tags{display:flex; flex-wrap:wrap; gap:6px;}
.tag{background:var(--wash); color:var(--primary-deep); font-size:.74rem; font-weight:600; padding:5px 10px; border-radius:100px;}
.card .foot{display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:6px; border-top:1px dashed var(--line);}
.origin-badge{font-size:.76rem; font-weight:700; color:var(--primary-deep); background:var(--wash); padding:5px 11px; border-radius:100px;}
.origin-badge.intl{color:var(--muted); background:var(--bg); border:1px solid var(--line);}


/* ============ COMPARE ============ */
.cp-bar{margin-top:6px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px;}
.cp-grow{flex:1;}
.cp-tabs{display:inline-flex; background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:4px; gap:2px;}
.cp-tab{border:0; background:none; border-radius:100px; padding:8px 18px; font:600 .86rem var(--font-ui); color:var(--muted); cursor:pointer;}
.cp-tab small{opacity:.7; margin-left:4px;}
.cp-tab.on{background:var(--primary); color:#fff;}
.cp-switch{display:inline-flex; align-items:center; gap:9px; background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:8px 16px; font:600 .86rem var(--font-ui); color:var(--text); cursor:pointer;}
.cp-switch i{width:30px; height:18px; border-radius:100px; background:var(--line); position:relative; transition:.2s;}
.cp-switch i:after{content:""; position:absolute; left:2px; top:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:.2s;}
.cp-switch.on{background:var(--wash); border-color:var(--secondary); color:var(--primary-deep);}
.cp-switch.on i{background:var(--primary);}
.cp-switch.on i:after{left:14px;}
.cp-card{background:var(--surface); border:1px solid var(--line); border-radius:26px; overflow:hidden;}
.cp-scroll{overflow-x:auto;}
.cp-grid{display:grid;}
.cp-head,.cp-row{display:contents;}
.cp-col{padding:22px 14px 18px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px; position:relative; border-bottom:1px solid var(--line);}
.cp-head>div:first-child{border-bottom:1px solid var(--line);}
.cp-av,.cp-sav{position:relative; overflow:hidden;}
.cp-av{width:84px; height:84px; border-radius:24px; margin-bottom:6px; background-size:cover; background-position:center;}
.cp-col h3{margin:0; font:600 1.08rem var(--font-display);}
.cp-ty{color:var(--muted); font-size:.8rem;}
.cp-badge{font-size:.68rem; font-weight:600; background:var(--wash); color:var(--primary-deep); padding:2px 10px; border-radius:100px; margin-top:4px;}
.cp-view{margin-top:10px; border-radius:100px; padding:8px 18px; font-weight:600; font-size:.8rem; background:var(--wash); color:var(--primary-deep);}
.cp-view:hover{background:var(--primary); color:#fff;}
.cp-x{position:absolute; right:10px; top:10px; width:26px; height:26px; border-radius:50%; border:1px solid var(--line); background:var(--surface); display:grid; place-items:center; color:var(--muted); cursor:pointer;}
.cp-x:hover{color:var(--primary); border-color:var(--primary);}
.cp-add{border:2px dashed var(--line); border-radius:20px; margin:8px 6px; padding:26px 10px; color:var(--muted); text-align:center; font-size:.85rem; width:100%; display:block;}
.cp-add i{display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--wash); color:var(--primary); font-style:normal; font-size:22px; margin:0 auto 6px;}
.cp-add small{display:block; font-size:.74rem; opacity:.8;}
.cp-add:hover{border-color:var(--secondary);}
.cp-sec{grid-column:1/-1; background:var(--wash); padding:9px 20px; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--primary-deep);}
.cp-label{padding:14px 14px 14px 20px; border-bottom:1px solid var(--line); font-weight:600; font-size:.84rem; color:var(--muted); display:flex; align-items:center;}
.cp-cell{padding:14px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px; text-align:center;}
.cp-chip{background:var(--wash); color:var(--primary-deep); border-radius:100px; padding:3px 11px; font-size:.78rem; font-weight:500;}
.cp-chip.is-shared{background:var(--primary); color:#fff;}
.cp-yes{color:var(--primary); font-weight:700; font-size:.88rem;}
.cp-no{color:var(--muted); opacity:.5;}
.cp-need{padding:50px 20px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px;}
.cp-need h3{margin:0; font:600 1.2rem var(--font-display);}
.cp-need p{margin:0 0 8px; color:var(--muted);}
.cp-foot{display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:center; margin-top:14px; color:var(--muted); font-size:.82rem;}
.cp-legend{display:flex; gap:8px; align-items:center;}
.cp-dot{width:10px; height:10px; border-radius:50%; background:var(--wash); border:1px solid var(--secondary); display:inline-block; margin-left:10px;}
.cp-dot:first-child{margin-left:0;}
.cp-dot.on{background:var(--primary); border-color:var(--primary);}
.cp-also{margin-top:30px;}
.cp-also h2{font:500 1.4rem var(--font-display); margin:0 0 12px;}
.cp-sg{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px;}
.cp-si{display:flex; gap:12px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:10px;}
.cp-sav{width:46px; height:46px; border-radius:14px; flex:none; background-size:cover; background-position:center;}
.cp-si b{display:block; font:600 .92rem var(--font-display);}
.cp-si small{color:var(--muted);}
.cp-plus{margin-left:auto; width:32px; height:32px; border-radius:50%; border:0; background:var(--wash); color:var(--primary); font-size:18px; cursor:pointer; flex:none;}
.cp-plus:hover{background:var(--primary); color:#fff;}

.featured-badge{display:inline-block; background:var(--secondary); color:#fff; font-size:.66rem; font-weight:700; padding:3px 10px; border-radius:100px; margin-left:8px; vertical-align:middle; text-transform:uppercase; letter-spacing:.03em;}

.evoke-js-compare.in-compare{background:var(--primary); border-color:var(--primary);}
.evoke-js-compare.in-compare svg{stroke:#fff;}
.price{font-size:.78rem; color:var(--muted);}
.price strong{color:var(--ink); font-weight:600;}
.view-link{font-size:.85rem; font-weight:600; color:var(--primary); display:flex; align-items:center; gap:5px;}
.view-link svg{transition:transform .15s;}
.card:hover .view-link svg{transform:translateX(3px);}

.carousel-card{flex:0 0 290px; scroll-snap-align:start;}
@media(max-width:640px){.carousel-card{flex-basis:78vw;}}

/* locations strip */
.loc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media(max-width:900px){.loc-grid{grid-template-columns:1fr;}}
.loc-card{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/5;}
.loc-card .art{position:absolute; inset:0;}
.loc-card .scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(21,21,21,0) 35%, rgba(21,21,21,.78) 100%);}
.loc-card .info{position:absolute; left:18px; right:18px; bottom:18px; color:#fff;}
.loc-card .info .meta{font-size:.82rem; opacity:.85; margin-bottom:4px;}
.loc-card .info h4{font-family:var(--font-display); font-weight:520; font-size:1.35rem; margin:0 0 8px;}
.loc-card .info h4 a{color:inherit; text-decoration:none;}
.loc-card .info .btn-ghost{border-color:rgba(255,255,255,.6); color:#fff; padding:8px 16px; font-size:.82rem;}
.loc-card .save{position:absolute; top:14px; right:14px;}

/* why evoke */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media(max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.why-grid{grid-template-columns:1fr;}}
.why-item{padding:6px 0;}
.why-item .num{font-family:var(--font-display); font-style:italic; font-size:1.6rem; color:var(--secondary); margin-bottom:10px;}
.why-item h4{margin:0 0 8px; font-size:1.05rem;}
.why-item p{margin:0; color:var(--muted); font-size:.92rem; line-height:1.55;}

/* final CTA */
.final-cta{
  background:linear-gradient(135deg,var(--primary-deep), var(--primary) 60%, var(--secondary));
  border-radius:32px; padding:64px 48px; color:#fff; text-align:center; margin:0 28px;
  position:relative; overflow:hidden;
}
@media(max-width:640px){.final-cta{padding:44px 24px; margin:0 18px;}}
.final-cta::before{content:''; position:absolute; width:480px; height:480px; border-radius:50%; background:rgba(255,255,255,.08); top:-220px; right:-140px;}
.final-cta h2{font-family:var(--font-display); font-weight:480; font-size:clamp(1.9rem,3.6vw,2.9rem); margin:0 0 14px; position:relative;}
.final-cta p{opacity:.85; margin:0 0 26px; position:relative;}
.final-cta .btn-primary{background:#fff; color:var(--primary-deep); position:relative;}
.final-cta .btn-primary:hover{background:#F1EFF8;}

/* footer */
footer{border-top:1px solid var(--line); padding:44px 0 110px;}
.foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; align-items:center;}
.foot-row .logo{font-size:1.1rem;}
.foot-links{display:flex; gap:22px; flex-wrap:wrap; color:var(--muted); font-size:.86rem;}
.foot-note{color:var(--muted); font-size:.8rem; margin-top:26px;}
@media(min-width:901px){footer{padding-bottom:44px;}}

/* ============ DJ MARKETPLACE VIEW ============ */
.mk-header{padding:44px 28px 8px;}
@media(max-width:640px){.mk-header{padding:36px 18px 8px;}}
.mk-header .eyebrow{margin-bottom:10px;}
.mk-header h1{font-family:var(--font-display); font-weight:500; font-size:clamp(2rem,4vw,2.9rem); margin:0 0 10px;}
.mk-header p{color:var(--muted); max-width:520px; margin:0; font-size:1.02rem;}

.mk-searchbar{
  margin-top:26px; display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line);
  border-radius:100px; padding:6px 6px 6px 20px; box-shadow:var(--shadow-card);
}
.mk-searchbar input{flex:1; border:none; background:none; font-family:inherit; font-size:.98rem; padding:10px 0;}
.mk-searchbar input:focus{outline:none;}
.mk-searchbar button{background:var(--primary); color:#fff; border:none; border-radius:100px; padding:12px 24px; font-weight:600; font-size:.92rem;}

.mk-body{padding-top:34px;}
.mk-layout{display:grid; grid-template-columns:264px 1fr; gap:36px; align-items:start;}
@media(max-width:900px){.mk-layout{grid-template-columns:1fr;}}

.mk-sidebar{
  position:sticky; top:96px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:22px 20px 8px; box-shadow:var(--shadow-card);
}
@media(max-width:900px){.mk-sidebar{display:none;}}
.sb-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;}
.sb-head strong{font-family:var(--font-display); font-size:1.12rem; font-weight:560;}
.sb-reset{font-size:.82rem; color:var(--primary); font-weight:600; background:none; border:none; padding:0;}
.sb-group{margin-bottom:22px; padding-bottom:22px; border-bottom:1px solid var(--line);}
.sb-group:last-child{border-bottom:none; margin-bottom:6px; padding-bottom:6px;}
.sb-label{font-size:.78rem; font-weight:700; color:var(--muted); margin-bottom:10px;}
.sb-option{display:flex; align-items:center; gap:10px; padding:7px 6px; border-radius:10px; font-size:.9rem; cursor:pointer; color:var(--ink); transition:background .15s;}
.sb-option:hover{background:var(--wash);}
.sb-option.active{color:var(--primary-deep); font-weight:600;}
.sb-option .dot{width:16px; height:16px; border-radius:5px; border:1.5px solid var(--line); flex:none; display:flex; align-items:center; justify-content:center; transition:background .15s, border-color .15s;}
.sb-option.active .dot{background:var(--primary); border-color:var(--primary);}
.sb-option.active .dot::after{content:''; width:6px; height:6px; background:#fff; border-radius:2px;}

.mk-results-top{display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap;}
.results-count{font-size:.86rem; color:var(--muted);}
.results-count strong{color:var(--ink);}
.mk-results-actions{display:flex; align-items:center; gap:10px;}
.mobile-filter-btn{display:none;}
@media(max-width:900px){.mobile-filter-btn{display:flex;}}
.pill-filter{
  background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:9px 16px;
  font-size:.86rem; font-weight:600; color:var(--ink); display:flex; align-items:center; gap:6px;
  transition:border-color .15s, background .15s, color .15s;
}
.pill-filter:hover{border-color:var(--primary);}
.pill-filter.active{background:var(--primary); border-color:var(--primary); color:#fff;}
.sort-select{
  background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:9px 16px;
  font-size:.86rem; font-weight:600; color:var(--ink); font-family:inherit;
}

.dj-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.grid-3col{grid-template-columns:repeat(3,1fr);}
@media(max-width:980px){.grid-3col{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.grid-3col{grid-template-columns:1fr;}}
@media(max-width:640px){.dj-grid{grid-template-columns:1fr;}}

.empty-state{text-align:center; padding:70px 20px; color:var(--muted);}
.empty-state h3{font-family:var(--font-display); color:var(--ink); font-size:1.4rem; margin-bottom:8px; font-weight:500;}
.empty-state button{margin-top:16px;}

/* filter sheet (mobile) */
.filter-sheet-backdrop{position:fixed; inset:0; background:rgba(21,21,21,.4); z-index:70; display:none;}
.filter-sheet-backdrop.open{display:block;}
.filter-sheet{
  position:fixed; left:0; right:0; bottom:0; z-index:71; background:var(--surface); border-radius:22px 22px 0 0;
  padding:22px 20px 100px; max-height:80vh; overflow-y:auto; transform:translateY(100%); transition:transform .25s ease;
}
.filter-sheet.open{transform:translateY(0);}
.filter-sheet h3{font-family:var(--font-display); margin:0 0 16px; font-size:1.3rem;}
.filter-sheet .grp{margin-bottom:22px;}
.filter-sheet .grp .lbl{font-size:.8rem; font-weight:700; color:var(--muted); margin-bottom:10px;}
.pillwrap{display:flex; flex-wrap:wrap; gap:8px;}
.filter-sheet-apply{position:fixed; left:0; right:0; bottom:0; padding:16px 20px calc(26px + env(safe-area-inset-bottom,0px)); background:var(--surface); z-index:72; display:none; border-top:1px solid var(--line);}
.filter-sheet-apply.open{display:block;}
.filter-sheet-apply button{width:100%;}

/* ============ MODAL: REQUEST FLOW ============ */
.modal-backdrop{position:fixed; inset:0; background:rgba(21,21,21,.5); z-index:90; display:none; align-items:center; justify-content:center; padding:20px;}
.modal-backdrop.open{display:flex;}
.modal{
  background:var(--surface); border-radius:var(--radius-lg); width:min(480px,100%); max-height:88vh; overflow-y:auto;
  box-shadow:var(--shadow-pop); padding:30px 28px 26px;
}
.modal-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:6px;}
.modal-top .close-x{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:none;display:flex;align-items:center;justify-content:center;}
.modal-steps{display:flex; gap:6px; margin:14px 0 22px;}
.modal-steps span{height:4px; flex:1; border-radius:4px; background:var(--line);}
.modal-steps span.done{background:var(--primary);}
.modal h3{font-family:var(--font-display); font-size:1.4rem; margin:0 0 4px; font-weight:520;}
.modal .sub{color:var(--muted); font-size:.9rem; margin:0 0 22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:.82rem; font-weight:600; margin-bottom:7px;}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); border-radius:12px; padding:12px 14px; font-family:inherit;
  font-size:.94rem; background:var(--bg); color:var(--ink);
}
.field textarea{resize:vertical; min-height:90px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--primary);}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media(max-width:420px){.field-row{grid-template-columns:1fr;}}
.modal-actions{display:flex; gap:10px; margin-top:22px;}
.modal-actions .btn{flex:1;}
.request-target{
  display:flex; align-items:center; gap:12px; background:var(--wash); border-radius:14px; padding:10px 14px; margin-bottom:22px;
}
.request-target .art{width:44px; height:44px; border-radius:50%; flex:none;}
.request-target strong{font-size:.92rem; display:block;}
.request-target span{font-size:.8rem; color:var(--muted);}
.success-box{text-align:center; padding:20px 0 6px;}
.success-box .tick{width:60px; height:60px; border-radius:50%; background:var(--primary); display:flex; align-items:center; justify-content:center; margin:0 auto 18px;}
.success-box h3{margin-bottom:8px;}
.success-box p{color:var(--muted); font-size:.92rem;}


/* toast */
.toast{
  position:fixed; left:50%; bottom:30px; transform:translateX(-50%) translateY(20px); background:var(--ink); color:#fff;
  padding:13px 22px; border-radius:100px; font-size:.88rem; font-weight:600; opacity:0; pointer-events:none;
  transition:opacity .2s, transform .2s; z-index:100;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

@media (prefers-reduced-motion: reduce){
  *{transition-duration:.001ms !important; animation-duration:.001ms !important; scroll-behavior:auto !important;}
}
/* ============ PROFILE PAGES ============ */
.back-link{
  background:none; border:none; color:var(--muted); font-size:.88rem; font-weight:600; margin-bottom:20px;
  display:inline-flex; align-items:center; gap:6px; padding:0;
}
.back-link:hover{color:var(--primary);}
.profile-gallery{
  display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:minmax(0,1fr) minmax(0,1fr); gap:10px;
  border-radius:var(--radius-lg); overflow:hidden; height:400px; margin-bottom:32px;
}
.profile-gallery > *:first-child{grid-row:1/3;}
.profile-gallery > *{min-width:0; min-height:0;}
.profile-gallery img.pg-photo{width:100%; height:100%; object-fit:cover; display:block;}
.profile-gallery .art{width:100%; height:100%;}
@media(max-width:760px){
  .profile-gallery{grid-template-columns:1fr; grid-template-rows:240px; height:auto;}
  .profile-gallery > *:not(:first-child){display:none;}
}
.profile-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap;
  margin-bottom:34px; padding-bottom:30px; border-bottom:1px solid var(--line);
}
.profile-head h1{font-family:var(--font-display); font-weight:520; font-size:clamp(1.8rem,3vw,2.5rem); margin:6px 0 12px;}
.profile-head .loc{display:flex; align-items:center; gap:6px; color:var(--muted); font-size:.95rem; margin-bottom:14px;}
.profile-actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
@media(max-width:600px){
  .profile-head{flex-direction:column; align-items:stretch;}
  .profile-actions{width:100%;}
  .profile-actions .btn{flex:1; min-width:120px;}
}
.fav-btn.large{position:static; width:48px; height:48px;}
.profile-body{display:grid; grid-template-columns:1fr 320px; gap:52px; padding-bottom:70px;}
@media(max-width:900px){.profile-body{grid-template-columns:1fr;}}
.profile-main section{margin-bottom:38px;}
.profile-main h3{font-family:var(--font-display); font-weight:560; font-size:1.25rem; margin:0 0 14px;}
.profile-main p{color:var(--muted); line-height:1.75; margin:0; max-width:640px;}
.profile-main ul{margin:0; padding-left:20px; color:var(--muted); line-height:1.95;}
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.gallery-grid .art{aspect-ratio:4/3; border-radius:14px;}
.social-row, .amenity-list{display:flex; gap:8px; flex-wrap:wrap;}
.profile-side h3{font-family:var(--font-display); font-weight:560; font-size:1.1rem; margin:0 0 16px;}
.profile-side .card{margin-bottom:16px;}

/* ============ PARTNER PROFILE (pp-) ============ */
.pp{padding-top:28px; padding-bottom:70px;}
.pp-head{display:grid; grid-template-columns:240px minmax(0,1fr); gap:36px; align-items:center; background:var(--surface,#fff); border:1px solid var(--line); border-radius:32px; padding:24px;}
.pp-photo{position:relative; aspect-ratio:4/5; border-radius:22px; overflow:hidden; background:var(--wash);}
.pp-photo > *{width:100%; height:100%; display:block; object-fit:cover;}
.pp-kicker{font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.pp-intro{min-width:0;}
.pp-intro h1{font-family:var(--font-display); font-weight:480; font-size:clamp(2.1rem,5vw,3.4rem); line-height:1.02; letter-spacing:-.02em; margin:8px 0 6px; color:var(--ink); text-wrap:balance;}
.pp-loc{color:var(--muted);}
.pp-line{margin-top:12px; max-width:62ch; overflow-wrap:anywhere;}
.pp-line b{font-weight:600;}
.pp-line + .pp-line{margin-top:6px;}
.pp-acts{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:22px;}
.pp-ic.fav-btn{position:static; width:48px; height:48px; border:1px solid var(--line); background:transparent; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;}
.pp-ic.fav-btn:hover{border-color:var(--ink); transform:none;}
.pp-body{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; margin-top:44px; align-items:start;}
.pp-main section + section{margin-top:38px;}
.pp-main h2{font-family:var(--font-display); font-weight:480; font-size:1.55rem; letter-spacing:-.01em; margin:0 0 14px; color:var(--ink);}
.pp-text{max-width:62ch; font-size:1.03rem; line-height:1.7; color:var(--ink);}
.pp-text p{margin:0 0 14px;}
.pp-strip{display:flex; gap:10px; overflow-x:auto; padding-bottom:6px; scrollbar-width:thin;}
.pp-strip img{flex:0 0 150px; width:150px; height:150px; object-fit:cover; border-radius:16px; display:block;}
.pp-list{list-style:none; margin:0; padding:0;}
.pp-list li{padding:12px 0; border-bottom:1px solid var(--line);}
.pp-list li:first-child{border-top:1px solid var(--line);}
.pp-similar{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.pp-card{position:sticky; top:20px; background:var(--surface,#fff); border:1px solid var(--line); border-radius:24px; padding:22px;}
.pp-card h3{font-family:var(--font-display); font-weight:480; font-size:1.25rem; margin:0 0 4px; color:var(--ink);}
.pp-card small{color:var(--muted);}
.pp-card label{display:block; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:16px 0 6px;}
.pp-card input{width:100%; font-family:inherit; font-size:.95rem; border:1px solid var(--line); background:var(--bg); color:var(--ink); border-radius:12px; padding:12px 14px;}
.pp-card .btn{width:100%; margin-top:14px;}
@media(max-width:860px){
  .pp-body{grid-template-columns:minmax(0,1fr); gap:30px;}
  .pp-card{position:static; order:-1;}
  .pp-similar{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .pp-head{grid-template-columns:minmax(0,1fr); padding:18px;}
  .pp-photo{max-width:300px;}
}
.pp-mark{position:static; display:inline-flex; margin-top:12px;}
.pp-ic.evoke-js-compare.in-compare{background:var(--primary); border-color:var(--primary);}
.pp-ic.evoke-js-compare.in-compare svg{stroke:#fff;}

/* ============ SPOTLIGHT CARDS (homepage featured row) ============ */
.sp-row{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px;}
@media(max-width:980px){.sp-row{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.sp-row{grid-template-columns:minmax(0,1fr);}}
.sp-card{position:relative; aspect-ratio:3/4; border-radius:28px; overflow:hidden; isolation:isolate; cursor:pointer; background:var(--primary-deep);
  transition:filter .5s, transform .5s cubic-bezier(.2,.7,.2,1), opacity .8s, box-shadow .4s;}
.sp-photo{position:absolute; inset:0; z-index:-1; transition:transform .6s ease-out;}
.sp-photo > *{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.sp-card:hover .sp-photo{transform:scale(1.05);}
.sp-top{position:absolute; top:14px; left:14px; right:14px; display:flex; justify-content:space-between; align-items:flex-start; z-index:2;}
.sp-mark{display:inline-flex; align-items:center; gap:5px; font-size:.68rem; font-weight:700; color:#161616; background:rgba(255,255,255,.92); padding:6px 10px; border-radius:100px;}
.sp-heart.fav-btn{position:static; margin-left:auto; width:38px; height:38px; background:rgba(255,255,255,.92);}
.sp-heart.fav-btn:hover{transform:scale(1.15);}
.sp-heart.fav-btn.active{animation:spPop .4s;}
@keyframes spPop{40%{transform:scale(1.35);}100%{transform:scale(1);}}
.sp-panel{position:absolute; left:10px; right:10px; bottom:10px; padding:16px; border-radius:20px; z-index:2; color:#161616;
  background:rgba(255,255,255,.78); border:1px solid rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(16px) saturate(1.3); backdrop-filter:blur(16px) saturate(1.3);}
.sp-panel h3{font-family:var(--font-display); font-weight:480; font-size:1.25rem; line-height:1.1; letter-spacing:-.01em; margin:0;}
.sp-panel h3 a{color:#161616;}
.sp-meta{font-size:.84rem; color:#5d5a66; margin-top:2px;}
.sp-row2{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px;}
.sp-gen{font-size:.8rem; font-weight:600; color:#423C6E; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;}
.sp-go{flex:none; width:38px; height:38px; border-radius:50%; background:#161616; color:#fff; display:flex; align-items:center; justify-content:center; transition:transform .3s, background .3s;}
.sp-card:hover .sp-go{background:var(--primary); transform:rotate(-45deg);}
@media(hover:hover){
  /* blur only while a card itself is hovered, never in the gaps */
  .sp-row:has(.sp-card:hover) .sp-card:not(:hover){filter:blur(2.5px) saturate(.6) brightness(.85); transform:scale(.97);}
  .sp-row .sp-card:hover{transform:scale(1.03); z-index:2; box-shadow:0 30px 60px -28px rgba(30,24,70,.6);}
}
/* entrance on scroll — only when JS marked the row */
.sp-row.sp-js .sp-card{opacity:0; transform:translateY(26px); transition-delay:calc(var(--i,0) * 90ms);}
.sp-row.sp-js .sp-card.sp-in{opacity:1; transform:none; transition-delay:0s;}
.sp-row.sp-js .sp-card.sp-in:hover{transform:scale(1.03);}
@media(prefers-reduced-motion:reduce){
  .sp-card,.sp-photo,.sp-go{transition:none;}
  .sp-row.sp-js .sp-card{opacity:1; transform:none;}
  .sp-row:has(.sp-card:hover) .sp-card:not(:hover){filter:none; transform:none;}
}

/* ============ FLIP CARDS (homepage venues row) ============ */
.fp-row{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px;}
@media(max-width:860px){.fp-row{grid-template-columns:minmax(0,1fr);}}
.fp{perspective:1200px; aspect-ratio:4/5; cursor:pointer; position:relative;}
.fp-in{position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .9s cubic-bezier(.22,.7,.2,1);}
@media(hover:hover){.fp:hover .fp-in{transform:rotateY(180deg);}}
.fp:focus-within .fp-in,.fp.flipped .fp-in{transform:rotateY(180deg);}
.fp-front,.fp-back{position:absolute; inset:0; border-radius:28px; overflow:hidden; backface-visibility:hidden; -webkit-backface-visibility:hidden;}
.fp-front{isolation:isolate; background:var(--primary-deep);}
.fp-photo{position:absolute; inset:0; z-index:-2;}
.fp-photo > *{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.fp-front::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(14,12,22,.78),transparent 55%);}
.fp-heart.fav-btn{position:absolute; top:14px; right:14px; width:38px; height:38px; background:rgba(255,255,255,.92); z-index:3;}
.fp-mark{position:absolute; top:14px; left:14px; display:inline-flex; align-items:center; gap:5px; font-size:.68rem; font-weight:700; color:#161616; background:rgba(255,255,255,.92); padding:6px 10px; border-radius:100px; z-index:3;}
.fp-tx{position:absolute; left:22px; right:22px; bottom:22px; color:#fff;}
.fp-tx h3{font-family:var(--font-display); font-weight:480; font-size:1.6rem; line-height:1.08; margin:0;}
.fp-tx h3 a{color:#fff;}
.fp-meta{color:rgba(255,255,255,.8); font-size:.86rem; margin-top:4px;}
.fp-back{transform:rotateY(180deg); background:var(--primary-deep); color:#fff; padding:28px; display:flex; flex-direction:column; justify-content:space-between;}
.fp-big{font-family:var(--font-display); font-weight:300; font-size:4.4rem; line-height:1; letter-spacing:-.04em;}
.fp-big small{display:block; font-family:var(--font-ui); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; margin-top:6px; opacity:.8;}
.fp-big .fp-name{font-size:2rem; letter-spacing:-.02em; line-height:1.1;}
.fp-back ul{list-style:none; margin:0; padding:0; font-size:.9rem;}
.fp-back li{padding:9px 0; border-top:1px solid rgba(255,255,255,.2);}
.fp-btn{display:block; text-align:center; background:#fff; color:#161616; font-weight:600; font-size:.9rem; padding:12px; border-radius:100px; margin-top:14px;}
.fp-link{display:block; text-align:center; color:rgba(255,255,255,.85); font-size:.82rem; margin-top:10px; text-decoration:underline; text-underline-offset:3px;}
@media(prefers-reduced-motion:reduce){.fp-in{transition:none;}}

/* ============ WHY EVOKE STEPPER ============ */
.why-steps{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; position:relative; padding-top:6px;}
.why-steps::before{content:""; position:absolute; left:12%; right:12%; top:42px; border-top:2px dashed var(--line);}
@media(max-width:800px){.why-steps{grid-template-columns:minmax(0,1fr);} .why-steps::before{display:none;}}
.why-step{text-align:center; position:relative; transition:opacity .8s cubic-bezier(.22,.7,.2,1), transform .8s cubic-bezier(.22,.7,.2,1); transition-delay:calc(var(--i,0) * 100ms);}
.why-cir{width:72px; height:72px; border-radius:50%; background:var(--surface); border:2px solid var(--primary); color:var(--primary); margin:0 auto 20px; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; transition:background .4s, color .4s, transform .6s cubic-bezier(.22,.7,.2,1);}
.why-cir svg{width:26px; height:26px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.why-step:hover .why-cir{background:var(--primary); color:#fff; transform:scale(1.1);}
.why-cir b{position:absolute; top:-8px; right:-8px; width:26px; height:26px; border-radius:50%; background:var(--ink); color:var(--bg); font-size:.72rem; display:flex; align-items:center; justify-content:center;}
.why-step h4{font-family:var(--font-display); font-weight:480; font-size:1.2rem; margin:0 0 8px;}
.why-step p{font-size:.9rem; color:var(--muted); max-width:30ch; margin:0 auto; line-height:1.55;}
.why-steps.why-js .why-step{opacity:0; transform:translateY(26px);}
.why-steps.why-js .why-step.why-in{opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){.why-steps.why-js .why-step{opacity:1; transform:none; transition:none;}}

/* ---- Instagram block (profile card + photo grid) ---- */
.ig-section{padding-top:0;}
.ig-card{background:var(--surface); border:1px solid var(--line); border-radius:34px; padding:32px; display:grid; grid-template-columns:.9fr 1.3fr; gap:36px; align-items:center; box-shadow:var(--shadow-card);}
.ig-who{display:flex; gap:14px; align-items:center; margin-bottom:20px;}
.ig-who b{display:block; font-size:1.02rem;}
.ig-who span{color:var(--muted); font-size:.86rem;}
.ig-av{width:64px; height:64px; border-radius:50%; padding:3px; flex:none; background:conic-gradient(from 200deg,#8B84C6,#5A5293,#d9c8e8,#8B84C6);}
.ig-av span{display:grid; place-items:center; width:100%; height:100%; border-radius:50%; background:var(--surface); color:var(--primary); font-family:var(--font-display); font-size:1.5rem;}
.ig-live{display:inline-flex; align-items:center; gap:8px; font-size:.76rem; font-weight:600; color:var(--primary); background:var(--wash); border-radius:999px; padding:6px 12px; margin-bottom:16px;}
.ig-live i{width:7px; height:7px; border-radius:50%; background:var(--primary); animation:igPulse 1.8s ease-in-out infinite;}
@keyframes igPulse{50%{opacity:.3;}}
.ig-info h2{font-family:var(--font-display); font-weight:500; font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1.12; margin:0 0 10px; text-wrap:balance;}
.ig-info p{color:var(--muted); margin:0; line-height:1.6;}
.ig-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:24px;}
.ig-actions .btn{display:inline-flex; align-items:center; gap:10px;}
.ig-ico{width:18px; height:18px;}
.ig-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.ig-ph{position:relative; display:block; aspect-ratio:1; border-radius:18px; overflow:hidden; background:var(--wash); transition:transform .4s cubic-bezier(.2,.8,.2,1);}
.ig-ph img{width:100%; height:100%; object-fit:cover; display:block;}
.ig-ph:hover{transform:scale(1.03);}
.ig-ov{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(66,60,110,.55); color:#fff; opacity:0; transition:opacity .3s;}
.ig-ph:hover .ig-ov,.ig-ph:focus-visible .ig-ov{opacity:1;}
.ig-ov .ig-ico{width:28px; height:28px;}
.ig-ph.g1{background:linear-gradient(135deg,#8B84C6,#5A5293);}
.ig-ph.g2{background:linear-gradient(135deg,#d9c8e8,#8B84C6);}
.ig-ph.g3{background:linear-gradient(135deg,#423C6E,#7a72b8);}
.ig-ph.g4{background:linear-gradient(135deg,#a69fd6,#423C6E);}
.ig-ph.g5{background:linear-gradient(135deg,#efe6f7,#a69fd6);}
.ig-ph.g6{background:linear-gradient(135deg,#5A5293,#2f2a52);}
@media(max-width:820px){.ig-card{grid-template-columns:1fr; padding:22px; gap:24px; border-radius:26px;}}
@media(hover:none){.ig-ov{display:none;}}
@media(prefers-reduced-motion:reduce){.ig-live i{animation:none;}.ig-ph{transition:none;}}

/* ---- Portrait partner card (.pc) ---- */
.pc{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:26px; overflow:hidden; box-shadow:var(--shadow-card); cursor:pointer; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s;}
.pc:hover{transform:translateY(-5px); box-shadow:0 22px 38px -22px rgba(66,60,110,.5);}
.pc-photo{position:relative; aspect-ratio:1/1.05; overflow:hidden;}
.pc-photo .art,.pc-photo .art-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 0%;}
/* no zoom on hover: the photo stays exactly as the partner framed it */
.pc-top{position:absolute; left:10px; right:10px; top:10px; display:flex; justify-content:space-between; align-items:flex-start; z-index:2;}
.pc-mark{display:inline-flex; align-items:center; gap:5px; font-size:.7rem; font-weight:600; color:#5A5293; background:#fff; border-radius:999px; padding:5px 10px;}
.pc-icons{display:flex; gap:6px;}
.pc .pc-ic{position:static; width:34px; height:34px;}
.pc .pc-ic.evoke-js-compare.in-compare{background:var(--primary);}
.pc .pc-ic.evoke-js-compare.in-compare svg{stroke:#fff;}
.pc-sheet{position:relative; z-index:3; margin:-46px 10px 10px; background:var(--surface); border-radius:20px; padding:14px; box-shadow:0 8px 22px rgba(66,60,110,.14); display:flex; flex-direction:column; gap:4px; flex:1;}
.pc-sheet h3{font-family:var(--font-display); font-weight:600; font-size:1.15rem; margin:0; line-height:1.25;}
.pc-sheet h3 a{color:var(--ink); text-decoration:none;}
.pc-loc{display:flex; align-items:center; gap:5px; font-size:.82rem; color:var(--muted);}
.pc-chips{display:flex; flex-wrap:wrap; gap:4px; margin-top:6px;}
.pc-chip{font-size:.75rem; background:var(--wash); color:var(--primary-deep); padding:3px 10px; border-radius:999px;}
.pc-foot{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; padding-top:10px; border-top:1px dashed var(--line);}
.pc-chips + .pc-foot,.pc-loc + .pc-foot{margin-top:10px;}
.pc-events{color:var(--muted); font-size:.8rem; line-height:1.4;}
.pc-go{flex:none; width:38px; height:38px; border-radius:50%; background:var(--primary); color:#fff; display:grid; place-items:center; transition:transform .25s, background .25s;}
.pc-go:hover{background:var(--primary-deep); transform:translateX(3px);}
@media(prefers-reduced-motion:reduce){.pc,.pc-go,.pc-photo .art,.pc-photo .art-photo{transition:none;}}

/* ---- Category page header band ---- */
:root{--band2:#E4E0F6;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--band2:#2d2740;}}
:root[data-theme="dark"]{--band2:#2d2740;}
.mk-header-wrap{padding-top:28px;}
.mk-header.mk-band{position:relative; overflow:hidden; background:linear-gradient(135deg,var(--wash),var(--band2)); border-radius:28px; padding:30px 34px 32px;}
.mk-band::before{content:''; position:absolute; width:380px; height:380px; border-radius:50%; border:1px solid rgba(90,82,147,.18); right:-110px; top:-190px; pointer-events:none;}
.mk-band>*{position:relative;}
.mk-band .crumb{font-size:.82rem; color:var(--muted); margin-bottom:12px;}
.mk-band .crumb a{color:inherit; text-decoration:none;}
.mk-band .crumb a:hover{color:var(--primary);}
.mk-band .crumb b{color:var(--ink); font-weight:500;}
.mk-band .mk-searchbar{max-width:560px;}
.mk-header-wrap + .mk-body{padding-top:28px;}
@media(max-width:640px){.mk-header.mk-band{padding:22px 20px 24px; border-radius:24px;}}

/* Venue card: stat row inside the floating sheet */
.pc-stats{display:grid; grid-template-columns:1fr 1.3fr; gap:8px; margin:8px 0 2px;}
.pc-stats:has(> div:only-child){grid-template-columns:1fr;}
.pc-stats>div{background:var(--wash); border-radius:14px; padding:8px 12px; display:grid; grid-template-columns:auto 1fr; column-gap:8px; align-items:center; min-width:0;}
.pc-stats svg{grid-row:1/3; color:var(--primary);}
.pc-stats b{font-size:.88rem; color:var(--primary-deep); line-height:1.2; font-weight:600;}
.pc-stats small{font-size:.7rem; color:var(--muted);}
.pc-chips-foot{margin:0; flex:1;}
.pc-venue .pc-photo{aspect-ratio:1/1.02;}

/* ---- Hero: heading + three-photo mosaic ---- */
.hero-top{display:grid; grid-template-columns:1.05fr .95fr; gap:36px; align-items:center;}
.hero-top .hero-head{max-width:none;}
.hero-mos{display:grid; grid-template-columns:1.2fr 1fr; grid-template-rows:1fr 1fr; gap:12px; height:clamp(300px,34vw,400px);}
.hm{position:relative; overflow:hidden; border-radius:24px; background:var(--wash);}
.hm .art,.hm .art-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hm1{grid-row:1/3; border-radius:120px 24px 24px 24px;}
.hm3{border-radius:24px 24px 90px 24px;}
@media(max-width:820px){
  .hero-top{grid-template-columns:1fr; gap:22px;}
  .hero-mos{height:250px; gap:8px;}
  .hm{border-radius:18px;}
  .hm1{border-radius:80px 18px 18px 18px;}
  .hm3{border-radius:18px 18px 56px 18px;}
}

/* ---- Language switcher (segmented pill) ---- */
.lang-seg{display:inline-flex; background:var(--wash); border-radius:999px; padding:3px;}
.lang-seg a{font-size:.78rem; font-weight:600; padding:5px 12px; border-radius:999px; color:var(--muted); text-decoration:none; line-height:1.3;}
.lang-seg a.on{background:var(--primary); color:#fff;}
.lang-seg a:not(.on):hover{color:var(--primary);}
.mnav-lang{display:flex; justify-content:space-between; align-items:center; margin-top:18px; color:var(--muted); font-size:.9rem;}

/* ---- Footer (airy, four columns) ---- */
footer.ft{position:relative; overflow:hidden; border-top:1px solid var(--line); padding:56px 0 110px; background:radial-gradient(520px 260px at 0% 100%, rgba(139,132,198,.16), transparent 70%);}
.ft-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px;}
.ft-brand .logo{font-size:1.15rem;}
.ft-brand p{color:var(--muted); font-size:.88rem; line-height:1.6; max-width:290px; margin:14px 0 0;}
.ft-col{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.ft-col h4{margin:0 0 4px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--primary); font-weight:700;}
.ft-col a{color:var(--ink); text-decoration:none; font-size:.9rem; display:inline-flex; align-items:center; gap:10px;}
.ft-col a:hover{color:var(--primary);}
.ft-ic{width:28px; height:28px; border-radius:50%; background:var(--wash); color:var(--primary); display:inline-grid; place-items:center; flex:none;}
.ft-bottom{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:44px; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:.8rem;}
.ft-top{color:var(--muted); text-decoration:none; font-weight:600;}
.ft-top:hover{color:var(--primary);}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr; gap:30px;}.ft-brand{grid-column:1/-1;}}
@media(min-width:901px){footer.ft{padding-bottom:36px;}}

/* ===== Accounts: sign-up, log-in, my account (v3.0.0) ===== */
.ac-main{padding:clamp(28px,6vw,64px) 16px 80px}
.ac-card{max-width:480px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:clamp(22px,4vw,34px);box-shadow:var(--shadow-card)}
.ac-card.ac-wide{max-width:860px}
.ac-card h1{font:500 1.7rem/1.15 var(--font-display);margin:0 0 6px}
.ac-card h2{font:600 1.05rem var(--font-display);margin:0 0 12px}
.ac-sub{color:var(--muted);margin:0 0 18px;font-size:.92rem}
.ac-panel{display:none;padding:0}.ac-panel.is-on{display:block}
.ac-steps{display:flex;gap:6px;align-items:center;margin-bottom:16px}
.ac-steps i{flex:1;height:5px;border-radius:99px;background:var(--line)}.ac-steps i.o{background:var(--primary)}
.ac-steps small{color:var(--muted);font-size:.75rem;white-space:nowrap;margin-left:6px}
.ac-types{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
@media(max-width:480px){.ac-types{grid-template-columns:1fr}}
.ac-type{position:relative;display:grid;gap:6px;border:1.5px solid var(--line);border-radius:22px;padding:16px;cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s}
.ac-type input{position:absolute;opacity:0;pointer-events:none}
.ac-type.on,.ac-type:has(input:checked){border-color:var(--primary);background:var(--wash)}
.ac-type b{font:600 1rem var(--font-display)}.ac-type small{color:var(--muted);font-size:.8rem;line-height:1.35}
.ac-ico{width:38px;height:38px;border-radius:13px;background:var(--wash);color:var(--primary);display:grid;place-items:center}
.ac-type.on .ac-ico,.ac-type:has(input:checked) .ac-ico{background:var(--surface)}
.ac-full{display:flex;width:100%;justify-content:center;margin-top:6px}
.ac-card .btn.ac-full + .btn.ac-full{margin-top:10px}
.ac-alt{text-align:center;color:var(--muted);font-size:.88rem;margin:14px 0 0}
.ac-alt a,.ac-link{color:var(--primary);font-weight:600;background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:600}
.ac-link:disabled{color:var(--muted);cursor:default}
.ac-link{display:inline-block;margin-top:12px}
.ac-alt .ac-link{margin-top:0}
.ac-err{background:rgba(200,60,60,.1);color:#a33;border-radius:14px;padding:10px 14px;font-size:.85rem;margin:0 0 12px}
:root[data-theme="dark"] .ac-err{color:#f0a0a0}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .ac-err{color:#f0a0a0}}
.ac-note{background:var(--wash);color:var(--primary-deep);border-radius:14px;padding:10px 14px;font-size:.85rem;margin:0 0 12px}
.ac-opt{color:var(--muted);font-weight:400}
.ac-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.ac-pw{position:relative}.ac-pw input{padding-right:70px}
.ac-show{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--primary);font-weight:600;font-size:.8rem;cursor:pointer;padding:6px 10px}
.ac-meter{display:flex;gap:4px;margin-top:8px}.ac-meter i{flex:1;height:5px;border-radius:99px;background:var(--line)}.ac-meter i.o{background:var(--primary)}
.ac-rules{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:3px;font-size:.78rem;color:var(--muted)}
.ac-rules li:before{content:"○ ";color:var(--secondary)}.ac-rules li.d{color:var(--primary-deep)}.ac-rules li.d:before{content:"✓ ";color:var(--primary);font-weight:700}
.ac-check{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--muted);margin:4px 0 14px}
.ac-check input{margin-top:3px;accent-color:var(--primary)}
.ac-otp input{width:100%;text-align:center;font:600 1.9rem var(--font-display);letter-spacing:.5em;padding:14px 10px 14px 20px;border:1.5px solid var(--line);border-radius:16px;background:var(--bg);color:var(--ink);margin-bottom:14px}
.ac-otp input:focus{outline:none;border-color:var(--primary)}
.ac-chips{display:flex;gap:8px;flex-wrap:wrap}
.ac-chip input{position:absolute;opacity:0;pointer-events:none}
.ac-chip span{display:inline-block;border:1.5px solid var(--line);border-radius:99px;padding:7px 14px;font-size:.84rem;font-weight:600;color:var(--muted);background:var(--surface);cursor:pointer}
.ac-chip input:checked + span{border-color:var(--primary);background:var(--wash);color:var(--primary-deep)}
.ac-done{text-align:center}
.ac-ok{width:64px;height:64px;border-radius:50%;background:var(--wash);color:var(--primary);display:grid;place-items:center;font-size:1.7rem;margin:0 auto 14px}
.ac-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:6px}@media(max-width:760px){.ac-grid{grid-template-columns:1fr}}
.ac-box{border:1px solid var(--line);border-radius:22px;padding:20px;background:var(--bg)}
.ac-box .field input{background:var(--surface)}
.ac-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 14px;font-size:.9rem}.ac-dl dt{color:var(--muted)}.ac-dl dd{margin:0;word-break:break-all}
.ac-badge{display:inline-block;font-size:.75rem;font-weight:600;border-radius:99px;padding:4px 12px}
.ac-badge.ok{background:var(--wash);color:var(--primary-deep)}.ac-badge.pend{background:rgba(232,200,110,.28);color:#7a5a10}
:root[data-theme="dark"] .ac-badge.pend{color:#e8c96e}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .ac-badge.pend{color:#e8c96e}}
.cf-turnstile{margin:0 0 12px}

.nav-right .btn{white-space:nowrap}

/* ===== Partner profile editor (v3.1.0) ===== */
.ac-tabs{display:flex;gap:6px;background:var(--wash);border-radius:99px;padding:4px;width:max-content;max-width:100%;margin:0 0 18px}
.ac-tabs a{padding:8px 18px;border-radius:99px;font-weight:600;font-size:.86rem;color:var(--muted);text-decoration:none}
.ac-tabs a.on{background:var(--surface);color:var(--primary-deep);box-shadow:0 2px 8px rgba(66,60,110,.12)}
.pe-status{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.pe-status .ac-note{margin:0}
.pe-view{color:var(--primary);font-weight:600;font-size:.86rem}
.pe-sec{margin-bottom:16px}
.pe-hint{color:var(--muted);font-size:.84rem;margin:-4px 0 12px}
.pe-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.pe-ph{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--wash);border:1px solid var(--line)}
.pe-ph img{width:100%;height:100%;object-fit:cover;display:block}
.pe-up{display:grid;place-items:center;color:var(--muted);font-size:.8rem}
.pe-main-tag{display:none;position:absolute;left:8px;top:8px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:600;padding:3px 9px;border-radius:99px}
.pe-photos .pe-ph:first-child .pe-main-tag{display:block}
.pe-mk,.pe-rm{position:absolute;bottom:8px;width:30px;height:30px;border-radius:50%;border:0;background:var(--surface);color:var(--primary);cursor:pointer;font-size:1rem;line-height:1;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.pe-mk{left:8px}.pe-rm{right:8px}
.pe-photos .pe-ph:first-child .pe-mk{display:none}
.pe-add{aspect-ratio:1;border:1.5px dashed var(--secondary);border-radius:16px;display:grid;place-items:center;color:var(--primary);font-weight:600;font-size:.86rem;cursor:pointer;background:var(--surface);text-align:center;padding:8px}
.pe-add:hover{background:var(--wash)}
.pe-bar{position:sticky;bottom:12px;display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:8px 8px 8px 20px;box-shadow:0 10px 30px rgba(66,60,110,.16);z-index:5}
.pe-msg{color:var(--muted);font-size:.85rem;min-height:1.2em}.pe-msg.bad{color:#a33}
:root[data-theme="dark"] .pe-msg.bad{color:#f0a0a0}
.pe-btns{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:560px){.pe-bar{border-radius:22px;padding:12px}.pe-btns{width:100%}.pe-btns .btn{flex:1;justify-content:center}}
.ac-box .field textarea{background:var(--surface)}

/* ============ PROMOTION LEVELS (3.2.0) ============ */
:root{--hl:#FAF1D9; --hlb:#E6CF8F;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--hl:#3A3220; --hlb:#6B5A2A;}}
:root[data-theme="dark"]{--hl:#3A3220; --hlb:#6B5A2A;}
.pc-promo{position:absolute; left:10px; top:52px; z-index:3; font-size:.66rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:3px 10px; border-radius:99px; background:#fff; color:#5A5293; border:1px solid #cfcaef;}
.pc-promo.vip{background:#423C6E; color:#fff; border-color:rgba(255,255,255,.7);}
.sp-card .sp-vip{top:auto; bottom:auto; left:14px; top:56px;}
.pc.is-vip{border:2px solid var(--primary); box-shadow:0 14px 34px rgba(90,82,147,.22);}
.pc.is-top{border:2px solid var(--secondary);}
.pc.is-highlight{background:var(--hl); border-color:var(--hlb);}
.pc.is-highlight .pc-sheet{background:var(--hl);}
.pc.is-highlight .pc-chip{background:#fff; color:#423C6E;}
.pc.is-highlight .pc-foot{border-top-color:var(--hlb);}
.sp-card.is-vip{outline:2px solid var(--primary); outline-offset:-2px;}
.pc-raised{display:inline-flex; gap:5px; align-items:center; width:max-content; margin-top:6px; font-size:.68rem; font-weight:700; color:var(--primary-deep); background:var(--wash); border:1px solid var(--line); border-radius:99px; padding:2px 9px;}
/* partner: Promotion tab */
.pm-wrap{display:grid; gap:18px;}
.pm-levels{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:14px;}
@media(max-width:640px){.pm-levels{grid-template-columns:1fr;}}
.pm-level{position:relative; display:block; cursor:pointer;}
.pm-level input,.pm-day input{position:absolute; opacity:0; pointer-events:none;}
.pm-lv-body{display:grid; gap:2px; padding:14px 16px; border:1px solid var(--line); border-radius:18px; background:var(--surface); height:100%;}
.pm-lv-body b{font-family:var(--font-display); font-size:1.02rem;}
.pm-lv-body small{color:var(--muted); font-size:.8rem;}
.pm-level input:checked + .pm-lv-body{border:2px solid var(--primary); background:var(--wash); padding:13px 15px;}
.pm-level input:focus-visible + .pm-lv-body,.pm-day input:focus-visible + span{outline:2px solid var(--primary); outline-offset:2px;}
.pm-days{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px;}
.pm-day span{display:inline-block; padding:8px 16px; border:1px solid var(--line); border-radius:99px; font-weight:600; font-size:.86rem; cursor:pointer;}
.pm-day input:checked + span{background:var(--primary); border-color:var(--primary); color:#fff;}
.pm-sum{display:flex; justify-content:space-between; align-items:center; background:var(--wash); border-radius:16px; padding:12px 16px; margin-bottom:14px;}
.pm-sum b{font-family:var(--font-display); font-size:1.3rem;}
.pm-hist{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.pm-hist li{display:flex; gap:12px; align-items:center; flex-wrap:wrap; border-bottom:1px dashed var(--line); padding:8px 0;}
.pm-hist li span{color:var(--muted); font-size:.85rem;}
.pm-hist li em{margin-left:auto; font-style:normal; font-weight:600; color:var(--primary-deep); font-size:.8rem;}
/* Sponsor banner (3.2.0) */
.sp-banner{grid-column:1/-1; display:grid; grid-template-columns:1.1fr .9fr; border-radius:26px; overflow:hidden; background:linear-gradient(120deg,var(--wash),var(--surface)); border:1px solid var(--line);}
.sp-banner-t{padding:24px 28px; display:grid; gap:8px; align-content:center; justify-items:start;}
.sp-banner-lbl{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700;}
.sp-banner h3{margin:0; font-family:var(--font-display); font-size:1.45rem; line-height:1.2;}
.sp-banner p{margin:0; color:var(--muted); max-width:430px;}
.sp-banner-ph{min-height:180px; background:linear-gradient(160deg,#6b5fb0,#b9b3e3) center/cover no-repeat;}
@media(max-width:700px){.sp-banner{grid-template-columns:1fr}.sp-banner-ph{min-height:140px; order:-1}}

/* ============ STATISTICS + COOKIE BAR ============ */
.st-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:14px 0 22px;}
.st-card{background:var(--wash); border-radius:20px; padding:16px 18px; display:flex; flex-direction:column; gap:2px;}
.st-card span{font-size:.78rem; font-weight:600; color:var(--muted);}
.st-card b{font:600 2rem var(--font-display); color:var(--primary-deep); line-height:1.15;}
.st-card small{font-size:.76rem; color:var(--muted);}
.st-card small.up{color:#1d7a46;}
.st-card small.down{color:var(--muted);}
.st-h{font:600 .95rem var(--font-ui); margin:0 0 10px;}
.st-bars{display:flex; align-items:flex-end; gap:3px; height:120px; padding:10px; border:1px solid var(--line); border-radius:18px; background:var(--surface); margin-bottom:12px;}
.st-bars i{flex:1; background:var(--secondary); border-radius:4px 4px 0 0; min-width:3px;}
.st-bars i:hover{background:var(--primary);}
.ck{position:fixed; left:16px; right:16px; bottom:16px; z-index:90; max-width:560px; margin:0 auto; background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:16px 18px; box-shadow:0 18px 40px -18px rgba(66,60,110,.4); display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
.ck[hidden]{display:none;}
.ck p{margin:0; flex:1 1 240px; font-size:.86rem; color:var(--text);}
.ck-act{display:flex; gap:8px;}
.ck-act .btn{padding:9px 18px; font-size:.84rem;}
@media(max-width:640px){.ck{bottom:76px;}}

/* ---- Ranking (3.6.0) ---- */
.rk-page{padding-bottom:80px}
.rk-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.rk-chips{display:flex;gap:8px;flex-wrap:wrap}
.rk-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:7px 14px;font-weight:600;font-size:.84rem;text-decoration:none}
.rk-chip.on{background:var(--wash);border-color:var(--secondary,#8B84C6);color:var(--primary-deep)}
.rk-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:18px}
.rk-list{display:flex;flex-direction:column;gap:6px;min-width:0}
.rk-row{display:grid;grid-template-columns:34px 44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:16px;border:1px solid transparent}
.rk-row.you{background:var(--wash);border-color:var(--secondary,#8B84C6)}
.rk-n{font:600 1rem var(--font-display,Georgia,serif);color:var(--muted);text-align:center}
.rk-row.top .rk-n,.rk-row.you .rk-n{color:var(--primary)}
.rk-av{width:44px;height:44px;border-radius:14px;background:center/cover no-repeat;display:block}
.rk-av-ph{background:linear-gradient(160deg,var(--primary),var(--secondary,#8B84C6))}
.rk-who{min-width:0;display:block}
.rk-name{font-weight:600;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:100%;vertical-align:bottom}
.rk-name:hover{color:var(--primary)}
.rk-who small{display:block;color:var(--muted);font-size:.78rem}
.rk-top{font-style:normal;font-size:.68rem;font-weight:700;background:var(--primary);color:#fff;border-radius:99px;padding:1px 8px;margin-left:8px}
.rk-bar{display:block;height:6px;border-radius:99px;background:var(--line);margin-top:6px;overflow:hidden}
.rk-bar i{display:block;height:100%;background:var(--secondary,#8B84C6);border-radius:99px}
.rk-row.you .rk-bar i{background:var(--primary)}
.rk-val{display:flex;align-items:center;gap:8px;justify-content:flex-end;font-variant-numeric:tabular-nums}
.rk-mv{font-size:.72rem;font-weight:700;border-radius:99px;padding:1px 8px}
.rk-mv.up{background:#e6f3ec;color:#2e7d57}
.rk-mv.down{background:var(--wash);color:var(--muted)}
.rk-note{color:var(--muted);font-size:.8rem;margin:14px 0 0}
.rk-join{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:16px;padding:18px 22px;background:var(--wash);border-radius:22px}
.rk-join b{display:block}.rk-join span{color:var(--muted);font-size:.88rem}
.rk-pos{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:24px;align-items:center}
.rk-big{font:500 4rem/1 var(--font-display,Georgia,serif);color:var(--primary)}
.rk-big small{font:600 .95rem var(--font-ui,sans-serif);color:var(--muted);margin-left:6px}
.rk-sc{color:var(--muted);font-size:.84rem;margin-top:6px}
.rk-gap{display:inline-block;margin-top:10px;background:var(--wash);color:var(--primary-deep);border-radius:99px;padding:5px 12px;font-weight:600;font-size:.8rem}
.rk-cta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.rk-two{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-top:16px}
.rk-tips{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.rk-tips li{border:1px solid var(--line);border-radius:18px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.rk-tips li.ok{background:#e6f3ec;border-color:transparent}
.rk-tips b{font-size:.9rem}.rk-tips span{color:var(--muted);font-size:.84rem}
.rk-tips a{font-weight:600;font-size:.84rem;color:var(--primary);margin-top:4px}
@media(max-width:820px){.rk-pos,.rk-two{grid-template-columns:minmax(0,1fr)}.rk-big{font-size:3.2rem}}

.ac-tabs{overflow-x:auto;scrollbar-width:none}.ac-tabs::-webkit-scrollbar{display:none}.ac-tabs a{white-space:nowrap;flex:none}
@media(max-width:640px){.rk-name{white-space:normal}.rk-row{grid-template-columns:26px 38px minmax(0,1fr) auto;gap:8px}.rk-av{width:38px;height:38px}}

/* ---- Advertise with us (3.7.0) ---- */
.spq-wrap{padding-bottom:80px}
.spq-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:26px;max-width:760px;position:relative}
.spq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.spq-card textarea{min-height:110px}
.spq-err{color:var(--primary-deep);background:var(--wash);border-radius:14px;padding:10px 14px;margin:12px 0}
.spq-ok{text-align:center;padding:30px 10px}.spq-ok h2{font-family:var(--font-display,Georgia,serif);font-weight:500;margin:0 0 6px}
@media(max-width:640px){.spq-grid{grid-template-columns:minmax(0,1fr)}.spq-card{padding:20px}}
