/* =========================================================
   DANANG2NITE — PHASE 43
   PC PLACES LIST ONLY / PREMIUM DIRECTORY
   Loaded only at min-width: 821px.
   Mobile Places, HOME, Magazine LIST/VIEW and Side Menu untouched.
   ========================================================= */

body.page-places-list .site-main{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 7% 2%,rgba(121,0,52,.17),transparent 24%),
    radial-gradient(circle at 92% 8%,rgba(63,0,76,.13),transparent 27%),
    linear-gradient(180deg,#070708 0%,#080709 55%,#070708 100%);
}
body.page-places-list .site-main::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 0 auto;
  height:620px;
  pointer-events:none;
  background:
    repeating-linear-gradient(90deg,transparent 0 149px,rgba(255,255,255,.011) 150px,transparent 151px),
    linear-gradient(90deg,rgba(230,37,114,.022),transparent 30%,transparent 72%,rgba(217,185,110,.018));
  mask-image:linear-gradient(to bottom,#000,transparent 100%);
}

/* ---------- HERO ---------- */
.index-hero{
  position:relative;
  padding-block:68px 38px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
body.page-places-list .index-hero{
  width:min(1480px,calc(100% - 64px));
}
body.page-places-list .index-hero::after{
  content:"D2N / CURATED PLACES";
  position:absolute;
  top:74px;
  inset-inline-end:0;
  color:#4f4946;
  font-size:7px;
  font-weight:900;
  letter-spacing:2.4px;
}
.index-hero .eyebrow{
  color:var(--gold-soft);
  letter-spacing:1.55px;
}
.index-hero h1{
  max-width:1000px;
  margin:15px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(58px,6vw,96px);
  font-weight:700;
  line-height:.91;
  letter-spacing:-3.5px;
  text-wrap:balance;
  background:linear-gradient(to bottom,#fbf8f3 0%,#f6f0e5 50%,#dfc47a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.index-hero p{
  max-width:760px;
  margin:18px 0 0;
  color:#aaa39a;
  font-size:14px;
  line-height:1.72;
}

/* ---------- DIRECTORY WRAPPER ---------- */
body.page-places-list .site-section--index{
  width:min(1480px,calc(100% - 64px));
  padding-top:24px;
  padding-bottom:92px;
}

/* ---------- GRID ---------- */
.places-grid--index{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}
.place-card{
  grid-column:span 3;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.075);
  border-radius:19px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 55%),
    #0c0c0e;
  text-decoration:none;
  box-shadow:0 18px 44px rgba(0,0,0,.18);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}
.place-card:hover{
  transform:translateY(-4px);
  border-color:rgba(230,37,114,.27);
  box-shadow:0 26px 62px rgba(0,0,0,.30);
}
.place-card__media{
  position:relative;
  aspect-ratio:1.06/1;
  overflow:hidden;
  background:#121114;
}
.place-card__media::before{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:
    radial-gradient(circle at 86% 12%,rgba(230,37,114,.10),transparent 30%),
    linear-gradient(90deg,rgba(57,0,24,.08),transparent 54%);
  pointer-events:none;
}
.place-card__media::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.01) 56%,rgba(0,0,0,.42) 100%);
  pointer-events:none;
}
.place-card__media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s ease;
}
.place-card:hover .place-card__media img{
  transform:scale(1.035);
  filter:saturate(1.05);
}
.place-card .ad-badge{
  top:12px;
  inset-inline-start:12px;
  z-index:3;
  padding:6px 8px;
  border:1px solid rgba(217,185,110,.18);
  background:rgba(8,8,9,.70);
  color:var(--gold-soft);
  font-size:6px;
  font-weight:950;
  letter-spacing:1px;
}
.place-card__body{
  position:relative;
  padding:17px 16px 16px;
}
.place-card__body::before{
  content:"";
  position:absolute;
  top:0;
  left:16px;
  width:38px;
  height:1px;
  background:linear-gradient(90deg,var(--pink),var(--gold-soft));
}
.place-category{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--pink-soft);
  font-size:7px;
  font-weight:950;
  letter-spacing:1px;
  text-transform:uppercase;
}
.place-category::before{
  content:"";
  width:12px;
  height:1px;
  background:currentColor;
  opacity:.8;
}
.place-card h2,
.place-card h3{
  margin:8px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  color:#fffaf4;
  font-size:21px;
  font-weight:700;
  line-height:1.17;
  letter-spacing:-.45px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.place-card p{
  margin:8px 0 0;
  color:#9e9790;
  font-size:9px;
  line-height:1.5;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.place-price{
  width:max-content;
  max-width:100%;
  margin-top:13px;
  padding:6px 8px;
  display:block;
  overflow:hidden;
  border:1px solid rgba(217,185,110,.16);
  border-radius:999px;
  background:rgba(217,185,110,.035);
  color:var(--gold-soft);
  font-size:8px;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- LEAD PLACE ---------- */
.place-card:first-child{
  grid-column:span 6;
  grid-row:span 2;
  position:relative;
  min-height:540px;
  border-color:rgba(230,37,114,.13);
}
.place-card:first-child .place-card__media{
  position:absolute;
  inset:0;
  aspect-ratio:auto;
}
.place-card:first-child .place-card__media::after{
  background:
    linear-gradient(180deg,rgba(0,0,0,.01) 10%,rgba(0,0,0,.09) 42%,rgba(0,0,0,.64) 70%,rgba(4,4,5,.98) 100%),
    linear-gradient(90deg,rgba(64,0,27,.11),transparent 57%);
}
.place-card:first-child .place-card__body{
  position:absolute;
  z-index:4;
  inset:auto 0 0;
  padding:36px 30px 28px;
}
.place-card:first-child .place-card__body::before{
  top:17px;
  left:30px;
  width:66px;
}
.place-card:first-child .place-category{
  color:var(--gold-soft);
}
.place-card:first-child h2{
  max-width:820px;
  margin-top:10px;
  color:#fffaf3;
  font-size:clamp(35px,3.2vw,48px);
  line-height:1.02;
  letter-spacing:-1.2px;
  text-shadow:0 6px 24px rgba(0,0,0,.56);
}
.place-card:first-child p{
  max-width:720px;
  color:#c0b8ae;
  font-size:11px;
  line-height:1.58;
  -webkit-line-clamp:2;
}
.place-card:first-child .place-price{
  margin-top:15px;
  background:rgba(10,9,10,.48);
  backdrop-filter:blur(7px);
}

/* ---------- SUPPORT PLACES ---------- */
.place-card:nth-child(2),
.place-card:nth-child(3){
  grid-column:span 3;
}
.place-card:nth-child(2) .place-card__media,
.place-card:nth-child(3) .place-card__media{
  aspect-ratio:1.42/1;
}
.place-card:nth-child(n+4){
  grid-column:span 3;
}

/* One place only: premium full-width visual instead of a lonely small card. */
.places-grid--index > .place-card:only-child{
  grid-column:1 / -1;
  min-height:500px;
}
.places-grid--index > .place-card:only-child .place-card__body{
  max-width:900px;
}

/* ---------- EMPTY ---------- */
body.page-places-list .public-empty{
  min-height:260px;
  border:1px solid rgba(230,37,114,.14);
  border-radius:19px;
  background:
    radial-gradient(circle at 50% 0,rgba(230,37,114,.055),transparent 58%),
    rgba(255,255,255,.008);
  color:#817a74;
  font-size:11px;
  letter-spacing:.2px;
}

/* ---------- SCRIPT SAFE ---------- */
html[lang^="zh"] body.page-places-list .index-hero h1,
html[lang="ja"] body.page-places-list .index-hero h1,
html[lang="ko"] body.page-places-list .index-hero h1,
html[lang="th"] body.page-places-list .index-hero h1,
html[lang="hi"] body.page-places-list .index-hero h1,
html[lang="ar"] body.page-places-list .index-hero h1,
html[lang^="zh"] .place-card h2,
html[lang="ja"] .place-card h2,
html[lang="ko"] .place-card h2,
html[lang="th"] .place-card h2,
html[lang="hi"] .place-card h2,
html[lang="ar"] .place-card h2{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",sans-serif;
}
html[lang^="zh"] body.page-places-list .index-hero h1,
html[lang="ja"] body.page-places-list .index-hero h1,
html[lang="ko"] body.page-places-list .index-hero h1{
  font-size:clamp(48px,4.6vw,74px);
  line-height:1.02;
  letter-spacing:-1.8px;
}
html[lang="th"] body.page-places-list .index-hero h1,
html[lang="hi"] body.page-places-list .index-hero h1,
html[lang="ar"] body.page-places-list .index-hero h1{
  font-size:clamp(45px,4.3vw,70px);
  line-height:1.06;
  letter-spacing:-1.4px;
}
html[lang^="zh"] .place-card:first-child h2,
html[lang="ja"] .place-card:first-child h2,
html[lang="ko"] .place-card:first-child h2,
html[lang="th"] .place-card:first-child h2,
html[lang="hi"] .place-card:first-child h2,
html[lang="ar"] .place-card:first-child h2{
  font-size:clamp(30px,2.6vw,41px);
  line-height:1.08;
}

/* ---------- MEDIUM PC ---------- */
@media(max-width:1220px) and (min-width:821px){
  body.page-places-list .index-hero,
  body.page-places-list .site-section--index{
    width:min(1180px,calc(100% - 40px));
  }
  .place-card{
    grid-column:span 4;
  }
  .place-card:first-child{
    grid-column:span 8;
    min-height:500px;
  }
  .place-card:nth-child(2),
  .place-card:nth-child(3),
  .place-card:nth-child(n+4){
    grid-column:span 4;
  }
  .place-card:first-child h2{
    font-size:39px;
  }
}

/* ---------- SMALL DESKTOP ---------- */
@media(max-width:980px) and (min-width:821px){
  .places-grid--index{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .place-card,
  .place-card:nth-child(n),
  .place-card:first-child{
    grid-column:auto;
    grid-row:auto;
    min-height:0;
  }
  .place-card:first-child{
    grid-column:1 / -1;
    min-height:430px;
  }
  .place-card:first-child h2{
    font-size:35px;
  }
}
