:root{
  --bg: #080404;
    --panel:#121217;
    --line:rgba(255,255,255,.08);
    --text:#f3f3f4;
    --muted:rgba(243,243,244,.70);
    --gold:#b38b59;
    --gold2:#d3b07a;
    --shadow:0 16px 40px rgba(0,0,0,.45);
    --radius:18px;
  }
  
  *{margin:0;padding:0;box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;}
  html{scroll-behavior:smooth}
  body
  {background:radial-gradient(1200px 700px at 20% 10%, rgba(150,90,255,.18), transparent 55%),    var(--bg); color:var(--text);}
  a{color:inherit;text-decoration:none}
  
  .muted{color:var(--muted)}
  .text{line-height:1.7; margin-top:10px}
  .small{font-size:13px}
  
  .topbar{
    position:fixed; z-index:50; top:0; left:0; right:0;
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 18px;
    background:rgba(10,10,12,.65);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .brand-mini{font-weight:700; letter-spacing:.6px}
  .top-actions{display:flex; gap:10px; align-items:center}
  .lang-btn{
    border:1px solid var(--line);
    background:rgba(255,255,255,.03);
    color:var(--text);
    padding:8px 10px;
    border-radius:999px;
    cursor:pointer;
  }
  .lang-btn.active{border-color:rgba(179,139,89,.55); box-shadow: 0 0 0 3px rgba(179,139,89,.14) inset}
  .chip{border:1px solid rgba(179,139,89,.35); padding:8px 12px; border-radius:999px; color:var(--gold2);}
  
  .hero{
    min-height:100vh;
    background:
      linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.86)),
      url("https://images.unsplash.com/photo-1522335789203-aabd1fc54bc9?auto=format&fit=crop&w=2000&q=80")
      center/cover no-repeat;
    display:flex;
    padding-top:64px;
  }
  .hero-overlay{width:100%; display:flex; align-items:center; justify-content:center; padding:28px}
  .hero-content{max-width:980px; width:100%; text-align:center}
  
  .badge-pill{
    display:inline-block;
    padding:8px 12px;
    border:1px solid rgba(179,139,89,.45);
    color:var(--gold2);
    border-radius:999px;
    background:rgba(0,0,0,.25);
    letter-spacing:.6px;
    font-size:13px;
  }
  
  .title{font-size: clamp(2.2rem, 5vw, 3.6rem); margin-top:14px; letter-spacing:1px}
  .subtitle{margin-top:10px; color:var(--muted); letter-spacing:.4px}
  .hero-cta{display:flex; gap:12px; justify-content:center; margin-top:22px; flex-wrap:wrap}
  .hero-notes{margin-top:18px; font-size:13px; color:rgba(243,243,244,.62)}
  
  .section{padding:72px 18px; max-width:1080px; margin:0 auto}
  .section-head{margin-bottom:22px}
  .section-head h2{font-size:15px; letter-spacing:2px; text-transform:uppercase; color:rgba(243,243,244,.85)}
  .section-head p{margin-top:10px}
  
  .card{
    background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow: var(--shadow);
    padding:22px;
  }
  
  .grid-2{display:grid; grid-template-columns: 1.15fr .85fr; gap:18px}
  .h3{font-size:20px}
  
  .stats{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}
  .stat{
    flex:1;
    min-width:160px;
    background:rgba(255,255,255,.03);
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px;
  }
  .stat-num{font-size:22px; font-weight:800; color:var(--gold2)}
  .stat-label{margin-top:6px; color:var(--muted); font-size:13px}
  
  .about-side{display:flex; flex-direction:column; gap:12px}
  .about-photo{
    height:220px;
    border-radius:16px;
    border:1px solid var(--line);
    background:
      linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.75)),
      url("https://images.unsplash.com/photo-1515378791036-0648a3ef77b2?auto=format&fit=crop&w=1600&q=80")
      center/cover no-repeat;
  }
  .notice{
    padding:12px;
    border-radius:14px;
    border:1px dashed rgba(179,139,89,.35);
    background: rgba(179,139,89,.07);
    color:rgba(243,243,244,.82);
    font-size:13px;
    line-height:1.6;
  }
  .notice strong{color:var(--gold2)}
  
  .btn{
    display:inline-flex; align-items:center; justify-content:center;
    padding:12px 16px;
    border-radius:999px;
    border:1px solid var(--line);
    background:rgba(255,255,255,.03);
    color:var(--text);
    font-weight:700;
    letter-spacing:.2px;
  }
  .btn:hover{border-color:rgba(179,139,89,.35)}
  .btn.primary{
    background: linear-gradient(135deg, var(--gold), var(--gold2));
    color:#16130e;
    border-color:transparent;
  }
  .btn.ghost{background:rgba(255,255,255,.02)}
  .btn.full{width:100%}
  
  .masonry{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap:12px;
  }
  .shot{
    border-radius:16px;
    border:1px solid var(--line);
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
    background-size:cover;
    background-position:center;
    min-height:200px;
  }
  
  /* Therapist list grid (like your sample layout) */
  .filterbar{
    display:flex; gap:10px; align-items:center;
    margin: 6px 0 18px;
    flex-wrap:wrap;
  }
  .filter-input{
    flex:1; min-width:220px;
    padding:12px 12px;
    border-radius:14px;
    border:1px solid var(--line);
    background:rgba(0,0,0,.35);
    color:var(--text);
    outline:none;
  }
  .filter-select{
    padding:12px 12px;
    border-radius:14px;
    border:1px solid var(--line);
    background:rgba(0,0,0,.35);
    color:var(--text);
    outline:none;
  }
  
  .therapist-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:18px;
  }
  
  @media (max-width: 1200px){
    .therapist-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  }
  @media (max-width: 900px){
    .therapist-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  }
  @media (max-width: 520px){
    .therapist-grid{ grid-template-columns:1fr; }
  }
  .therapist-img{ height:260px; }

  /* Load more (Home) */
  .loadmore-wrap{width:100%;display:flex;justify-content:center;padding:18px 0 28px;}
  .loadmore-wrap.hidden{display:none;}
  .loadmore-btn{min-width:260px;gap:10px;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.02);}
  .loadmore-btn:hover{border-color:rgba(255,255,255,.55);}
  .loadmore-sentinel{height:1px;}


  
  .therapist-card{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
  }
  
  .therapist-img{
    height:300px;
    background-size:cover;
    background-position:center;
    position:relative;
  }
  .therapist-img::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.55));
  }
  
  .therapist-body{padding:16px}
  .therapist-body h3{margin-bottom:6px;font-size:16px}
  .therapist-meta{font-size:13px;color:rgba(255,255,255,.7);margin-bottom:10px}
  
  .badge{
    display:inline-block;
    padding:5px 9px;
    border-radius:999px;
    font-size:12px;
    background:rgba(179,139,89,.15);
    color:var(--gold2);
    border:1px solid rgba(179,139,89,.25);
    margin: 0 6px 6px 0;
  }
  
  .therapist-price{
    margin-top:10px;
    font-weight:800;
    color:var(--gold2);
    letter-spacing:.2px;
  }
  
  .view-btn{
    margin-top:12px;
    display:block;
    text-align:center;
    padding:10px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--gold),var(--gold2));
    color:#111;
    font-weight:800;
  }
  
  /* Services cards */
  .cards{display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:12px}
  .svc{
    background:rgba(255,255,255,.03);
    border:1px solid var(--line);
    border-radius:16px;
    padding:16px;
  }
  .svc h3{font-size:15px}
  .svc-text{margin-top:10px; color:var(--muted); line-height:1.65; font-size:14px}
  .svc-price{margin-top:12px; color:rgba(211,176,122,.95); font-weight:800; letter-spacing:.3px}
  
  /* Contact */
  .contact-card{display:grid; grid-template-columns: 1fr 1fr; gap:16px; align-items:start}
  .buttons{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
  .divider{height:1px;background:var(--line); margin:16px 0}
  .contact-form label{display:block; margin-bottom:12px}
  .contact-form span{display:block; font-size:13px; color:var(--muted); margin-bottom:6px}
  .contact-form input, .contact-form textarea{
    width:100%;
    padding:12px 12px;
    border-radius:14px;
    border:1px solid var(--line);
    background:rgba(0,0,0,.35);
    color:var(--text);
    outline:none;
  }
  .contact-form input:focus, .contact-form textarea:focus{
    border-color:rgba(179,139,89,.45);
    box-shadow: 0 0 0 3px rgba(179,139,89,.14);
  }
  .form-note{margin-top:10px; font-size:12.5px}
  
  /* Footer */
  .footer{
    border-top:1px solid var(--line);
    padding:32px 18px 22px;
    background:rgba(0,0,0,.35);
  }
  .footer-inner{
    max-width:1080px; margin:0 auto;
    display:grid; grid-template-columns: 1fr 1fr; gap:16px;
  }
  .footer-brand{font-weight:900; letter-spacing:.6px; font-size:16px}
  .legal-title{font-weight:800; margin-bottom:8px}
  .legal-text{color:var(--muted); line-height:1.65; font-size:13.5px}
  .footer-bottom{
    max-width:1080px; margin:18px auto 0;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
  }
  .backtop{color:var(--gold2); border-bottom:1px dashed rgba(179,139,89,.35)}
  
  @media (max-width: 920px){
    .grid-2{grid-template-columns:1fr}
    .contact-card{grid-template-columns:1fr}
    .footer-inner{grid-template-columns:1fr}
  }
  /* ===== Profile Page ===== */
.profile-shell{
    display:grid;
    grid-template-columns: 1.15fr .85fr;
    gap:18px;
  }
  
  .profile-cover{
    height:420px;
    border-radius:18px;
    border:1px solid var(--line);
    background-size:cover;
    background-position:center;
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
  }
  
  .profile-gallery{
    margin-top:12px;
    display:grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap:10px;
  }
  
  .profile-shot{
    height:120px;
    border-radius:14px;
    border:1px solid var(--line);
    background-size:cover;
    background-position:center;
    cursor:pointer;
  }
  
  .profile-right{height:fit-content}
  
  .profile-head{margin-bottom:10px}
  .profile-name{font-size:28px; letter-spacing:.4px}
  .profile-meta{margin-top:8px; color:var(--muted); font-size:14px}
  
  .profile-badges{margin:12px 0}
  
  .profile-block{margin-top:14px}
  .profile-label{
    font-size:12px;
    letter-spacing:1.3px;
    text-transform:uppercase;
    color:rgba(243,243,244,.7);
  }
  .profile-text{margin-top:8px; line-height:1.7; color:rgba(243,243,244,.92)}
  
  .profile-price{
    margin-top:16px;
    padding:14px;
    border-radius:16px;
    border:1px solid rgba(179,139,89,.35);
    background: rgba(179,139,89,.08);
    color: var(--gold2);
    font-weight:900;
    letter-spacing:.2px;
    font-size:16px;
  }
  
  @media (max-width: 920px){
    .profile-shell{grid-template-columns:1fr}
    .profile-cover{height:360px}
    .profile-gallery{grid-template-columns: repeat(2, minmax(0, 1fr));}
  }
  /* ===== Lightbox Gallery ===== */

  
  /* Prev/Next buttons */
  .lightbox-nav{
    position:absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 70px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(0,0,0,.35);
    color: rgba(255,255,255,.95);
    cursor:pointer;
    font-size: 34px;
    line-height: 0;
    display:flex;
    align-items:center;
    justify-content:center;
    user-select:none;
  }
  .lightbox-nav.prev{ left: 10px; }
  .lightbox-nav.next{ right: 10px; }
  
  .lightbox-nav:hover{
    border-color: rgba(225,29,72,.45);
    box-shadow: 0 0 0 3px rgba(225,29,72,.12);
  }
  
  .lightbox-nav.is-hidden{ display:none; }
  
  @media (max-width: 640px){
    .lightbox-nav{
      width: 38px;
      height: 58px;
      font-size: 30px;
    }
  }
  
  /* ===== Footer like sample (4 columns, red underline) ===== */
.footer2{
    margin-top: 70px;
    background: rgba(0,0,0,.35);
    border-top: 1px solid rgba(255,255,255,.08);
    padding: 34px 18px 0;
  }
  
  .footer2-inner{
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 26px;
    padding-bottom: 26px;
    border-bottom: 1px solid rgba(255,255,255,.10);
  }
  
  .f2-title{
    font-size: 13px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: rgba(255,255,255,.90);
    margin-bottom: 14px;
    position: relative;
    padding-bottom: 10px;
  }
  
  /* red underline like screenshot */
  .f2-title::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width: 36px;
    height: 2px;
    background: #e11d48; /* red/pink underline */
    border-radius: 2px;
  }
  
  .f2-link{
    display:block;
    font-size: 13px;
    color: rgba(255,255,255,.68);
    padding: 7px 0;
    line-height: 1.4;
  }
  
  .f2-link:hover{ color: rgba(255,255,255,.92); }
  
  .f2-info{
    display:flex;
    align-items:center;
    gap:10px;
    font-size: 13px;
    color: rgba(255,255,255,.72);
    padding: 7px 0;
  }
  
  .f2-ico{
    width: 18px;
    display:inline-flex;
    justify-content:center;
    opacity: .9;
  }
  
  .f2-link-inline{
    color: rgba(255,255,255,.80);
    text-decoration: none;
  }
  .f2-link-inline:hover{ color: rgba(255,255,255,.95); }
  
  .f2-social{
    display:flex;
    gap:10px;
    margin-top: 12px;
    flex-wrap: wrap;
  }
  
  .f2-social-btn{
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display:flex;
    align-items:center;
    justify-content:center;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.03);
    color: rgba(255,255,255,.85);
    font-weight: 800;
    font-size: 12px;
  }
  
  .f2-social-btn:hover{
    border-color: rgba(225,29,72,.55);
    box-shadow: 0 0 0 3px rgba(225,29,72,.14);
  }
  
  .footer2-bottom{
    max-width: 1180px;
    margin: 0 auto;
    padding: 16px 0 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 12px;
    flex-wrap: wrap;
  }
  
  .footer2-bottom-links{
    display:flex;
    gap: 16px;
    flex-wrap: wrap;
  }
  
  .footer2-bottom-links a{
    font-size: 13px;
    color: rgba(255,255,255,.62);
  }
  
  .footer2-bottom-links a:hover{
    color: rgba(255,255,255,.90);
  }
  
  .footer2-copy{
    font-size: 13px;
    color: rgba(255,255,255,.52);
  }
  
  /* responsive */
  @media (max-width: 980px){
    .footer2-inner{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  }
  @media (max-width: 520px){
    .footer2-inner{ grid-template-columns: 1fr; }
  }
  /* ===== Profile Services ===== */
.p-services{
    max-width: 1100px;
    margin: 22px auto 0;
    padding: 0 18px 18px;
  }
  
  .p-services h2{
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 800;
    color: rgba(255,255,255,.92);
  }
  
  .p-services-grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }
  
  .p-service-item{
    border: 1px solid rgba(225,29,72,.35);
    background: rgba(225,29,72,.08);
    color: rgba(255,255,255,.88);
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.25;
  }
  
  @media (max-width: 900px){
    .p-services-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 520px){
    .p-services-grid{ grid-template-columns: 1fr; }
  }
  /* ============================
   Services Panel (SG Mei Mei style)
============================ */
.svcPanel{
    margin-top: 18px;
    border-radius: 4px;
    overflow: hidden;
    background: #2b2b2b;           /* nền panel xám đậm */
    box-shadow: 0 12px 40px rgba(0,0,0,.45);
  }
  
  .svcPanel__head{
    padding: 10px 14px;
    background: #3a3a3a;           /* header xám hơn */
    border-bottom: 1px solid rgba(255,255,255,.06);
  }
  
  .svcPanel__head h2{
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #fff;
  }
  
  .svcPanel__body{
    padding: 12px 12px 16px;
  }
  
  /* 3 cột giống ảnh */
  .svcPanel__grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 12px;               /* spacing y như list */
  }
  
  /* item dạng pill dài + viền hồng */
  .svcItem{
    padding: 8px 10px;
    border-radius: 4px;
    background: #2f2f2f;
    border: 1px solid rgba(255, 0, 102, 0.45);
    color: rgba(255, 70, 140, 0.95);
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;      /* dài thì ... giống ảnh */
  }
  
  /* responsive giống kiểu list */
  @media (max-width: 980px){
    .svcPanel__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 560px){
    .svcPanel__grid{ grid-template-columns: 1fr; }
    .svcItem{ white-space: normal; } /* mobile cho xuống dòng */
  }
  /* =========================
   PROFILE RIGHT (INFO CARD)
========================= */
.profile-right{
    background: rgba(18,18,18,.55);
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 16px;
    padding: 18px 18px 16px;
    box-shadow: 0 18px 50px rgba(0,0,0,.45);
    backdrop-filter: blur(10px);
  }
  
  .profile-right h1,
  #pName{
    margin: 0 0 6px;
    font-size: 34px;
    line-height: 1.1;
    letter-spacing: .2px;
  }
  
  #pMeta{
    margin: 0 0 12px;
    font-size: 14px;
    color: rgba(255,255,255,.72);
  }
  
  /* badges */
  #pBadges{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
  }
  
  .badge{
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1;
    color: rgba(255,255,255,.88);
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(206, 157, 92, .45);
  }
  
  /* sections */
  .p-block{
    margin-top: 12px;
  }
  
  .p-label{
    font-size: 11px;
    letter-spacing: .14em;
    font-weight: 700;
    color: rgba(255,255,255,.55);
    margin: 0 0 6px;
    text-transform: uppercase;
  }
  
  .p-value{
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255,255,255,.9);
  }
  
  /* price */
  .p-price,
  #pPrice{
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(206, 157, 92, .35);
    font-weight: 700;
    font-size: 14px;
    color: rgba(255,255,255,.92);
  }
  
  /* buttons row */
  .p-actions{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 12px;
  }
  
  .p-actions .btn{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 40px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
    color: rgba(255,255,255,.92);
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(255,255,255,.10);
    transition: transform .12s ease, border-color .12s ease, background .12s ease;
  }
  
  .p-actions .btn:hover{
    transform: translateY(-1px);
    border-color: rgba(206, 157, 92, .55);
    background: rgba(0,0,0,.35);
  }
  
  /* legal / note */
  .p-note,
  #legalText{
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: 12px;
    line-height: 1.5;
    color: rgba(255,255,255,.55);
  }
  
  /* mobile */
  @media (max-width: 980px){
    .p-actions{ grid-template-columns: 1fr; }
    .profile-right{ border-radius: 14px; }
  }
  /* =========================
   PROFILE LAYOUT (PRO)
========================= */
.profile-shell{
    display:grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 18px;
    align-items:start;
  }
  @media (max-width: 980px){
    .profile-shell{ grid-template-columns: 1fr; }
  }
  
  /* LEFT */
  .profile-cover{
    width:100%;
    aspect-ratio: 16 / 10;
    border-radius: 18px;
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 18px 60px rgba(0,0,0,.45);
  }
  
  .profile-gallery{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 14px;
  }
  .profile-shot{
    height: 78px;
    border-radius: 12px;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.08);
    transition: transform .12s ease, border-color .12s ease;
  }
  .profile-shot:hover{
    transform: translateY(-1px);
    border-color: rgba(206,157,92,.55);
  }
  
  /* RIGHT INFO CARD */
  .profile-right{
    background: rgba(18,18,18,.55);
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 16px;
    padding: 18px 18px 16px;
    box-shadow: 0 18px 50px rgba(0,0,0,.45);
    backdrop-filter: blur(10px);
    position: sticky;
    top: 92px;
  }
  @media (max-width: 980px){
    .profile-right{ position: static; }
  }
  
  #pName{
    margin: 0 0 6px;
    font-size: 34px;
    line-height: 1.1;
  }
  #pMeta{
    margin: 0 0 12px;
    font-size: 14px;
    color: rgba(255,255,255,.72);
  }
  
  #pBadges{
    display:flex;
    flex-wrap:wrap;
    gap: 8px;
    margin: 0 0 14px;
  }
  
  .badge{
    display:inline-flex;
    align-items:center;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1;
    color: rgba(255,255,255,.9);
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(206,157,92,.45);
  }
  
  .p-block{ margin-top: 12px; }
  .p-label{
    font-size: 11px;
    letter-spacing: .14em;
    font-weight: 800;
    color: rgba(255,255,255,.55);
    margin: 0 0 6px;
    text-transform: uppercase;
  }
  .p-value{
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255,255,255,.9);
  }
  
  .p-price{
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(206,157,92,.35);
    font-weight: 800;
    font-size: 14px;
  }
  
  .p-actions{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 12px;
  }
  @media (max-width: 980px){
    .p-actions{ grid-template-columns: 1fr; }
  }
  .p-actions .btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    height: 40px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 13px;
    text-decoration:none;
    color: rgba(255,255,255,.92);
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(255,255,255,.10);
    transition: transform .12s ease, border-color .12s ease, background .12s ease;
  }
  .p-actions .btn:hover{
    transform: translateY(-1px);
    border-color: rgba(206,157,92,.55);
    background: rgba(0,0,0,.35);
  }
  
  .p-note{
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: 12px;
    line-height: 1.5;
    color: rgba(255,255,255,.55);
  }
  
  /* =========================
     SERVICES PANEL (PROFILE)
     Dark block like your sample
  ========================= */
  .svcPanel{
    margin-top: 14px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(30,30,30,.65);
  }
  .svcPanel__head{
    background: rgba(70,70,70,.65);
    padding: 10px 12px;
  }
  .svcPanel__head h2{
    margin: 0;
    font-size: 16px;
  }
  .svcPanel__body{
    padding: 12px;
  }
  
  .svcPanel__grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }
  @media (max-width: 820px){
    .svcPanel__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 520px){
    .svcPanel__grid{ grid-template-columns: 1fr; }
  }
  
  .svcPill{
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 12px;
    color: rgb(255, 70, 128);
    background: rgba(120, 30, 60, .35);
    border: 1px solid rgba(255, 70, 128, .35);
  }
  
  /* =========================
     LIGHTBOX
  ========================= */
  .lightbox{
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
  }
  .lightbox.is-open{ display:block; }
  
  .lightbox__backdrop{
    position:absolute;
    inset:0;
    background: rgba(0,0,0,.75);
  }
  
  .lightbox__panel{
    position: absolute;
    inset: 6% 8%;
    background: rgba(18,18,18,.92);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    box-shadow: 0 30px 90px rgba(0,0,0,.55);
    overflow: hidden;
  }
  @media (max-width: 820px){
    .lightbox__panel{ inset: 7% 4%; }
  }
  
  .lightbox__close{
    position:absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.35);
    color: #fff;
    cursor:pointer;
  }
  
  .lightbox__header{
    display:flex;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.9);
  }
  .lightbox__title{ font-weight: 800; }
  .lightbox__count{ color: rgba(255,255,255,.6); }
  
  .lightbox__img{
    width: 100%;
    height: calc(100% - 92px);
    object-fit: contain;
    display:block;
    background: rgba(0,0,0,.35);
  }
  
  .lightbox__caption{
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px 14px;
    font-size: 12px;
    color: rgba(255,255,255,.7);
    background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,0));
  }
  
  .lightbox__nav{
    position:absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 64px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.35);
    color: #fff;
    font-size: 34px;
    cursor:pointer;
  }
  .lightbox__prev{ left: 10px; }
  .lightbox__next{ right: 10px; }
  /* ======================
   FAQ ACCORDION
====================== */
.faq {
    max-width: 820px;
    margin: 0 auto;
    padding: 40px 20px;
  }
  
  .faq-title {
    text-align: center;
    font-size: 32px;
    margin-bottom: 6px;
  }
  
  .faq-sub {
    text-align: center;
    font-size: 14px;
    color: rgba(255,255,255,.6);
    margin-bottom: 26px;
  }
  
  .faq-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  
  .faq-item {
    background: rgba(255,255,255,.06);
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
  }
  
  .faq-q {
    width: 100%;
    background: none;
    border: none;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
  }
  
  .faq-num {
    background: #ff2f7d;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0;
  }
  
  .faq-arrow {
    margin-left: auto;
    transition: transform .25s ease;
  }
  
  .faq-item.active .faq-arrow {
    transform: rotate(180deg);
  }
  
  .faq-a {
    max-height: 0;
    overflow: hidden;
    padding: 0 18px;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255,255,255,.8);
    transition: max-height .3s ease, padding .3s ease;
  }
  
  .faq-item.active .faq-a {
    max-height: 300px;
    padding: 0 18px 16px;
  }
  /* ===== Pricing ===== */
.profile-pricing {
  margin-top: 20px;
}

.pricing-box {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 14px 16px;
  white-space: pre-wrap;   /* GIỮ XUỐNG DÒNG */
  line-height: 1.6;
  font-size: 14px;
  color: #f5f5f5;
}
.flag-sg{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px; /* vì bạn muốn nằm sau chữ */
}

.flag-sg-svg{
  width: 18px;
  height: 18px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
  transform: translateY(1px);
}
/* Clickable therapist card */
.therapist-card.open-profile{
  cursor: pointer;
}

.therapist-card.open-profile *{
  cursor: pointer;
}
/* ===== Profile CTA buttons (WhatsApp / Telegram big style) ===== */
.cta-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 14px;
}

.cta-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  border-radius: 6px;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
  transition: transform .15s ease, filter .15s ease, opacity .15s ease;
}

.cta-btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.cta-wa{ background: #1aa260; }   /* WhatsApp green */
.cta-tg{ background: #0b84c6; }   /* Telegram blue */

.cta-note{
  margin-top: 12px;
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  text-align: center;
}
/* ===== Base ===== */
*{ box-sizing: border-box; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 600px at 20% 0%, rgba(212,175,119,0.14), transparent 60%),
    radial-gradient(900px 500px at 90% 10%, rgba(255,255,255,0.06), transparent 60%),
    #0b0b0b;
  color: rgba(255,255,255,0.92);
}

a{ color: inherit; }

.page{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 18px 40px;
}

/* ===== Header ===== */
.site-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(10,10,10,0.60);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.header-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.brand-title{
  font-weight: 800;
  letter-spacing: 0.2px;
}
.flag-sg{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.flag-sg-svg{
  width: 18px;
  height: 18px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
  transform: translateY(1px);
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.pill{
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(212,175,119,0.28);
  background: rgba(0,0,0,0.35);
  color: rgba(255,255,255,0.9);
  font-size: 12px;
  cursor: pointer;
  text-decoration: none;
}
.pill-gold{
  background: rgba(212,175,119,0.15);
  border-color: rgba(212,175,119,0.45);
}

/* ===== Search strip (like your sample) ===== */
.search-strip{
  margin: 18px 0 12px;
  border: 1px solid rgba(255,255,255,0.07);
  background: rgba(18,18,18,0.65);
  box-shadow: 0 18px 60px rgba(0,0,0,0.55);
  border-radius: 14px;
  padding: 14px;
}

.search-row{
  display: grid;
  grid-template-columns: 180px 260px 110px 140px 1fr 44px 150px;
  gap: 10px;
  align-items: center;
}

.ss-field{
  position: relative;
}
.ss-field .ss-ico{
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.7;
  font-size: 14px;
  pointer-events: none;
}
.ss-select{
  padding-left: 30px !important;
}

.ss-input{
  height: 42px;
  border-radius: 8px;
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.92);
  padding: 0 12px;
  outline: none;
}

.ss-input:focus{
  border-color: rgba(212,175,119,0.45);
  box-shadow: 0 0 0 3px rgba(212,175,119,0.12);
}

.ss-plus{
  height: 42px;
  width: 44px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  color: rgba(255,255,255,0.92);
  font-weight: 900;
  cursor: pointer;
}

.ss-search{
  height: 42px;
  border-radius: 8px;
  border: 1px solid rgba(212,175,119,0.55);
  background: rgba(212,175,119,0.20);
  color: rgba(255,255,255,0.95);
  font-weight: 900;
  letter-spacing: 0.3px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.ss-search:hover{
  transform: translateY(-1px);
  background: rgba(212,175,119,0.28);
  border-color: rgba(212,175,119,0.70);
}

.search-adv{
  margin-top: 10px;
}
.hidden{ display: none !important; }

/* keep old inputs hidden */
#searchInput, #locationSelect{ display:none !important; }

/* ===== Therapist cards ===== */
.section{ margin-top: 16px; }
.section-title{ margin: 0 0 10px; font-size: 16px; opacity: 0.9; }

.therapist-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.therapist-card{
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(18,18,18,0.72);
  box-shadow: 0 18px 60px rgba(0,0,0,0.55);
  border-radius: 14px;
  overflow: hidden;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  cursor: pointer;
}
.therapist-card:hover{
  transform: translateY(-3px);
  border-color: rgba(212,175,119,0.25);
  box-shadow: 0 24px 80px rgba(0,0,0,0.65);
}

.therapist-img{
  height: 280px;
  background-size: cover;
  background-position: center;
}

.therapist-body{
  padding: 12px;
}
.therapist-body h3{
  margin: 0;
  font-size: 15px;
  font-weight: 800;
}
.therapist-meta{
  margin-top: 6px;
  font-size: 12px;
  color: rgba(255,255,255,0.65);
}
.badge{
  display: inline-block;
  margin-top: 10px;
  font-size: 11px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(212,175,119,0.35);
  background: rgba(0,0,0,0.35);
  color: rgba(255,255,255,0.9);
}

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(212,175,119,0.35);
  background: rgba(0,0,0,0.35);
  color: rgba(255,255,255,0.95);
  cursor: pointer;
}
.btn.primary{
  background: rgba(212,175,119,0.18);
  border-color: rgba(212,175,119,0.55);
}

/* ===== Gallery ===== */
.masonry{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.shot{
  height: 160px;
  border-radius: 12px;
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255,255,255,0.06);
  cursor: pointer;
}

/* ===== FAQ ===== */
.faq{
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 12px;
  overflow: hidden;
}
.faq-item{
  padding: 12px;
  border-top: 1px solid rgba(255,255,255,0.06);
  cursor: pointer;
}
.faq-item:first-child{ border-top: none; }
.faq-q{ font-weight: 800; }
.faq-a{ margin-top: 8px; color: rgba(255,255,255,0.65); display:none; }
.faq-item.active .faq-a{ display:block; }

/* ===== Lightbox ===== */
.lightbox{ display:none; }
.lightbox.is-open{ display:block; }
.lightbox-backdrop{
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.65);
}
.lightbox-card{
  position: fixed;
  inset: 60px 18px auto 18px;
  max-width: 900px;
  margin: 0 auto;
  border-radius: 14px;
  background: rgba(18,18,18,0.95);
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 24px 80px rgba(0,0,0,0.65);
  padding: 12px;
}
.lightbox-top{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.lightbox-title{ font-weight: 900; }
.lightbox-right{ display:flex; align-items:center; gap: 10px; }
.lightbox-x{
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  color:#fff;
  border-radius: 10px;
  padding: 6px 10px;
  cursor:pointer;
}
.lightbox-img{
  width: 100%;
  max-height: 60vh;
  object-fit: contain;
  border-radius: 10px;
  background: #000;
}
.lightbox-cap{
  margin-top: 8px;
  color: rgba(255,255,255,0.65);
  font-size: 12px;
}
.lightbox-nav{
  margin-top: 10px;
  display:flex;
  justify-content: space-between;
}
.lightbox-nav button{
  width: 48%;
  height: 38px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.35);
  color:#fff;
  cursor:pointer;
}

/* ===== Responsive ===== */
@media (max-width: 1100px){
  .therapist-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); }
  .masonry{ grid-template-columns: repeat(3, minmax(0,1fr)); }
  .search-row{
    grid-template-columns: 1fr 1fr;
  }
  #uiService{ grid-column: 1 / -1; }
  #uiSearchBtn{ grid-column: 1 / -1; }
  #uiPlus{ display:none; }
}
@media (max-width: 720px){
  .therapist-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .masonry{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
/* =========================
   MOBILE FIX — PROFILE PAGE
   Make profile look clean on phones
========================= */

@media (max-width: 720px) {
  /* top spacing if you have fixed topbar */
  main.section {
    padding-top: 76px !important;
  }

  /* Make any profile layout become 1 column */
  .profile-grid,
  .profile-layout,
  .profile-container,
  .profile-main,
  .profile-wrap,
  .p-grid,
  .p-layout,
  .p-wrap {
    display: block !important;
  }

  /* If your profile uses CSS grid somewhere */
  .profile-grid,
  .profile-layout,
  .profile-container,
  .profile-main,
  .p-grid,
  .p-layout {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* If your profile uses flex row somewhere */
  .profile-row,
  .profile-cols,
  .p-row,
  .p-cols {
    flex-direction: column !important;
    gap: 14px !important;
  }

  /* Cover image: keep nice ratio on mobile */
  #pCover {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    border-radius: 16px !important;
    background-position: center !important;
    background-size: cover !important;
  }

  /* Gallery thumbnails: 3 columns on mobile */
  #pGallery {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  /* Works with your div thumbnail style (.profile-shot) */
  .profile-shot {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    border-radius: 12px !important;
    background-position: center !important;
    background-size: cover !important;
  }

  /* Services: keep the pink box chips clean & not too tall */
  #pServicesGrid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  /* Your service item class (you used svcItem) */
  .svcItem {
    font-size: 12px !important;
    padding: 10px 10px !important;
    border-radius: 10px !important;
    line-height: 1.25 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Right info card should be full width */
  .p-card,
  .profile-card,
  .right-card,
  .p-right,
  .profile-right {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Buttons row: 2 buttons per row on mobile */
  .p-actions,
  .profile-actions,
  .action-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  /* Topbar wrap on small screens */
  .topbar {
    padding: 12px 12px !important;
  }
}

/* Extra small phones */
@media (max-width: 420px) {
  #pGallery { grid-template-columns: repeat(2, 1fr) !important; }
  #pServicesGrid { grid-template-columns: 1fr !important; }
  .p-actions, .profile-actions, .action-row { grid-template-columns: 1fr !important; }
}
/* ===== Footer CTA replace social icons ===== */
.footer-cta-clean {
  display: flex;
  gap: 14px;
  align-items: center;
}

.footer-btn {
  min-width: 130px;
  padding: 10px 14px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .5px;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  color: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}

.footer-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}

.footer-btn.whatsapp {
  background: #1fa855;
}

.footer-btn.telegram {
  background: #0a8fd8;
}

/* Mobile wrap */
@media (max-width: 600px) {
  .footer-cta-clean {
    flex-wrap: wrap;
  }
}
/* =========================
   Profile layout upgrade (reduce empty sides, add glow, sticky right, related + quick)
========================= */

body.page-profile{
  overflow-x:hidden;
}
body.page-profile::before,
body.page-profile::after{
  content:"";
  position:fixed;
  inset:-20%;
  pointer-events:none;
  z-index:-1;
  opacity:.75;
}
body.page-profile::before{
  background:
    radial-gradient(800px 520px at 18% 35%, rgba(206,157,92,.16), transparent 60%),
    radial-gradient(760px 520px at 82% 25%, rgba(255,60,150,.10), transparent 62%),
    radial-gradient(900px 700px at 50% 120%, rgba(0,160,255,.08), transparent 60%);
}
body.page-profile::after{
  background:
    radial-gradient(1200px 900px at 50% 50%, rgba(0,0,0,.35), rgba(0,0,0,.82) 70%, rgba(0,0,0,.92) 100%);
  opacity:.65;
}

/* widen only on profile page */
body.page-profile .section{
  max-width: 1360px;
}
@media (min-width: 1600px){
  body.page-profile .section{ max-width: 1440px; }
}

/* stick right column on desktop */
@media (min-width: 980px){
  body.page-profile .profile-right{
    position: sticky;
    top: 92px;
    align-self: start;
  }
}

/* Quick booking box */
.p-quick{
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(206, 157, 92, .35);
  background: rgba(0,0,0,.22);
  color: rgba(255,255,255,.92);
  line-height: 1.55;
  font-size: 14px;
}
.p-quick .q-row{
  display:flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px dashed rgba(255,255,255,.10);
}
.p-quick .q-row:last-child{ border-bottom: 0; }
.p-quick .q-k{
  color: rgba(255,255,255,.58);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 11px;
  white-space: nowrap;
}
.p-quick .q-v{
  color: rgba(255,255,255,.92);
  text-align: right;
}

/* Girl info grid */
.p-info-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
@media (max-width: 520px){
  .p-info-grid{ grid-template-columns: 1fr; }
}
.p-info-item{
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.p-info-k{
  font-size: 11px;
  letter-spacing: .12em;
  font-weight: 800;
  color: rgba(255,255,255,.55);
  text-transform: uppercase;
}
.p-info-v{
  margin-top: 6px;
  font-size: 14px;
  color: rgba(255,255,255,.92);
  line-height: 1.45;
  word-break: break-word;
}

/* Related profiles panel */
.relPanel{
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
  overflow:hidden;
}
.relPanel__head{
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}
.relPanel__head h2{
  margin:0;
  font-size: 14px;
  letter-spacing: .02em;
}
.relPanel__body{ padding: 12px; }

.related-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
@media (max-width: 980px){
  .related-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px){
  .related-grid{ grid-template-columns: 1fr; }
}

.related-card{
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  overflow:hidden;
  cursor:pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.related-card:hover{
  transform: translateY(-2px);
  border-color: rgba(206,157,92,.55);
  background: rgba(255,255,255,.05);
}
.related-img{
  height: 120px;
  background-size: cover;
  background-position: center;
}
.related-body{
  padding: 10px 10px 12px;
}
.related-name{
  font-weight: 800;
  font-size: 13px;
  line-height: 1.25;
}
.related-meta{
  margin-top: 6px;
  font-size: 12px;
  color: rgba(255,255,255,.62);
}
.related-btn{
  margin-top: 10px;
  width: 100%;
  display:flex;
  justify-content:center;
  align-items:center;
  height: 34px;
  border-radius: 10px;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(206,157,92,.12);
  border: 1px solid rgba(206,157,92,.35);
  color: rgba(255,255,255,.92);
}
.lightbox__video{
  width: 100%;
  max-height: 80vh;
  border-radius: 12px;
  display: none;
  background: #000;
}

.profile-shot.is-video{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.profile-shot .play-badge{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  color: #fff;
}
/* Make profile cover show play badge when it's video */
.profile-cover.is-video{
  position: relative;
  background-size: cover;
  background-position: center;
}

.profile-cover .cover-play{
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 18px;
  font-weight: 900;
  color: #fff;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(4px);
}
.profile-cover:hover .cover-play{
  transform: scale(1.03);
}
html { scroll-behavior: smooth; }
/* =========================
   PROFILE: Cover separated + Gallery bigger + show full image
========================= */

/* 1) Cover: tách riêng, cao hơn, nhìn như 1 hero card */
.page-profile .profile-cover{
  height: 520px;               /* bạn có thể tăng 560-620 nếu muốn */
  border-radius: 18px;
  margin-bottom: 16px;
  background-size: contain !important;   /* ✅ thấy full ảnh */
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-color: rgba(255,255,255,0.03); /* nền nhẹ để ảnh không “lọt thỏm” */
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,0.08);
}

/* Nếu cover là video poster cũng dùng contain để thấy trọn */
.page-profile .profile-cover.is-video{
  background-size: contain !important;
}

/* 2) Gallery grid: tile to hơn */
.page-profile .profile-gallery{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); /* 4 cột để tile to */
  gap: 12px;
  margin-bottom: 20px;
}

/* Responsive */
@media (max-width: 1100px){
  .page-profile .profile-gallery{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px){
  .page-profile .profile-gallery{ grid-template-columns: repeat(2, 1fr); }
}

/* 3) Gallery tile: cao hơn + show full ảnh (contain) */
.page-profile .profile-shot{
  height: 150px;               /* tăng lên 160-190 nếu muốn to hơn */
  border-radius: 14px;
  background-size: contain !important;   /* ✅ thấy full ảnh */
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-color: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
}

/* Badge play cho video nhìn rõ hơn */
.page-profile .profile-shot.is-video .play-badge{
  transform: scale(1.15);
  opacity: .95;
}
/* ===== Profile: Cover separated (nicer card look) ===== */
.cover-card{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 55px rgba(0,0,0,.55);
  margin-bottom: 16px;
}

/* ===== Gallery card wrapper ===== */
.gallery-card{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.20);
  box-shadow: 0 18px 55px rgba(0,0,0,.45);
  padding: 14px;
  margin-bottom: 18px;
}

/* ===== Tabs (Photo / Videos) ===== */
.gallery-tabs{
  display:flex;
  gap: 14px;
  align-items:center;
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding-bottom: 10px;
  margin-bottom: 14px;
}

.g-tab{
  background: transparent;
  border: none;
  color: rgba(255,255,255,.78);
  font-weight: 600;
  padding: 10px 2px;
  cursor:pointer;
  position: relative;
}

.g-tab.active{
  color: #fff;
}

.g-tab.active::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom: -10px;
  height: 2px;
  background: #caa65a; /* tone vàng nhẹ */
  border-radius: 2px;
}

/* ===== Bigger gallery thumbnails + show full image ===== */
.profile-gallery-grid{
  display:grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

/* mỗi tile: cho nhìn “toàn bộ ảnh” => contain */
.profile-shot{
  border-radius: 14px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.06);
  background-color: rgba(255,255,255,.04);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; /* quan trọng: nhìn full ảnh */
  aspect-ratio: 4 / 3;      /* bự hơn và cân đối */
}

/* video tile vẫn giữ play badge */
.profile-shot.is-video{
  position: relative;
}
.profile-shot .play-badge{
  position:absolute;
  left: 12px;
  bottom: 10px;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 14px;
}

/* helper */
.hidden{ display:none !important; }
/* ===== FIX: Close button che counter ===== */
.lightbox__header{
  position: relative;
  padding-right: 56px; /* chừa chỗ cho nút X */
}

/* số ảnh */
.lightbox__count{
  position: absolute;
  right: 16px;
  top: 14px;
  font-size: 14px;
  opacity: .85;
}

/* nút đóng */
.lightbox__close{
  position: absolute;
  right: 14px;
  top: -40px; /* đẩy X lên cao hơn counter */
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.6);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  z-index: 5;
}

.lightbox__close:hover{
  background: rgba(0,0,0,.85);
}
/* ===== About Us section ===== */
.about { margin-top: 22px; }

.about-shell{
  max-width: 1060px;
  margin: 0 auto;
  padding: 18px 18px 10px;
  border-radius: 18px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 14px 40px rgba(0,0,0,0.45);
}

.about-head { margin-bottom: 14px; }
.about-sub{
  margin: 8px 0 0;
  color: rgba(255,255,255,0.72);
  line-height: 1.45;
  font-size: 14px;
}

.about-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.about-card{
  border-radius: 16px;
  background: rgba(0,0,0,0.30);
  border: 1px solid rgba(255,255,255,0.06);
  padding: 14px 14px 12px;
}

.about-ico{
  font-size: 18px;
  margin-bottom: 10px;
  opacity: 0.95;
}

.about-card-title{
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
}

.about-card-text{
  font-size: 13px;
  color: rgba(255,255,255,0.70);
  line-height: 1.45;
}

.about-cta{
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

@media (max-width: 980px){
  .about-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .about-grid{ grid-template-columns: 1fr; }
  .about-cta{ justify-content: center; }
}
.cta-wc{
  background:#1AAD19;
  color:#fff;
}
.cta-wc:hover{
  filter:brightness(1.05);
}

/* WeChat QR modal */
.wechatModal{position:fixed;inset:0;z-index:9999;display:none}
.wechatModal.show{display:block}
.wechatModal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.wechatModal__panel{position:relative;max-width:360px;margin:10vh auto 0;background:#0f0f0f;
  border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px}
.wechatModal__close{position:absolute;right:10px;top:10px;background:transparent;border:0;color:#fff;
  font-size:18px;cursor:pointer}
.wechatModal__title{color:#fff;font-weight:800;margin:0 0 10px}
.wechatModal__img{width:100%;height:auto;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#000}
.wechatModal__hint{color:rgba(255,255,255,.7);font-size:12px;margin-top:8px}
.therapist-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}
/* ===== 18+ Age Gate ===== */
.age-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
}

.age-modal.show{ display:block; }

.age-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.75);
  backdrop-filter: blur(4px);
}

.age-box{
  position:relative;
  max-width:420px;
  margin:15vh auto 0;
  background:#111;
  color:#fff;
  border-radius:14px;
  padding:24px;
  text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}

.age-box h2{
  margin:0 0 10px;
  font-size:22px;
}

.age-box p{
  font-size:14px;
  opacity:.85;
  line-height:1.5;
}

.age-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  margin-top:18px;
}

.age-yes{
  background:#caa15a;
  color:#000;
  font-weight:700;
}

.age-no{
  background:transparent;
  border:1px solid rgba(255,255,255,.4);
  color:#fff;
}
body:before, body:after{
  content:"";
  position:fixed;
  width:520px;height:520px;
  top:140px;
  filter: blur(80px);
  opacity:.18;
  pointer-events:none;
  z-index:-1;
}
body:before{ left:-220px; background: #d0a060; }
body:after{ right:-220px; background: #5aa6ff; top:260px; opacity:.12; }
