/* ============================================================
   Udaipur Escort Service — Editorial Flat Theme
   Sharp corners (max 4px), no gradients, light backgrounds
   ============================================================ */
:root{
  --brand:#a8124f;
  --brand-2:#7c0a38;
  --brand-deep:#4a0824;
  --blush:#fbeaf0;
  --cream:#f8f4ee;
  --cream-2:#efe6d8;
  --gold:#b9862e;
  --ink:#2c2026;
  --muted:#6f5e67;
  --line:#e6d9df;
  --white:#fff;
  --r:4px;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --body:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ui:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:var(--body);font-weight:400;color:var(--ink);background:#fff;font-size:16.5px;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-2)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.28;color:var(--brand-deep)}
h1{font-size:clamp(1.9rem,3.4vw,2.9rem);margin-bottom:24px;line-height:1.2}
h2{font-size:clamp(1.55rem,2.6vw,2.25rem);margin:0 0 16px}
h3{font-size:clamp(1.25rem,2vw,1.6rem);margin:30px 0 12px;color:var(--brand)}
h4{font-size:clamp(1.08rem,1.6vw,1.28rem);margin:26px 0 10px;color:var(--brand)}
p{margin:0 0 1.15em}
p a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
strong{color:var(--brand-2)}
::selection{background:var(--brand);color:#fff}

.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.wrap{width:min(100% - 40px,960px);margin:0 auto}

/* ---------- Header ---------- */
.site-head{background:#fff;border-bottom:1px solid var(--line);border-top:3px solid var(--brand);position:sticky;top:0;z-index:60}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:13px;padding-bottom:13px}
.brand{font-family:var(--ui);font-weight:800;font-size:clamp(16px,2vw,21px);letter-spacing:.03em;color:var(--ink);display:flex;flex-direction:column;line-height:1.1}
.brand small{color:var(--gold);font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.brand-sub{font-family:var(--ui);font-weight:600;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.nav a{font-family:var(--ui);font-weight:600;font-size:12.5px;color:var(--ink);letter-spacing:.06em;text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--brand);border-bottom-color:var(--brand)}

/* ---------- Full-width banner (header + body se touch karta hua) ---------- */
.banner{padding:0;margin:0;background:#fff;font-size:0;line-height:0}
.banner img{width:100%;height:auto;display:block;border-radius:0;box-shadow:none}

/* ---------- Sections ---------- */
.block{padding:clamp(44px,5.5vw,80px) 0}
.block--cream{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.wrap>h1:first-child,.wrap>h2:first-child,.wrap>h3:first-child{margin-top:0}
.wrap>h2{padding-bottom:4px}
.wrap>h2::after{content:"";display:block;width:56px;height:3px;background:var(--brand);margin-top:12px}
.wrap>h3{border-left:3px solid var(--gold);padding-left:12px;line-height:1.4}

.sec-head{max-width:820px;margin:0 auto clamp(30px,4vw,48px);text-align:center;padding:0 20px}
.sec-head h2{margin-bottom:0}
.sec-head h2::after{content:"";display:block;width:56px;height:3px;background:var(--brand);margin:14px auto 0}
.sec-head p{color:var(--muted);margin:14px 0 0}

/* ---------- Gallery Style A: catalog cards (Latest joined) ---------- */
.grid{display:grid;gap:22px}
.grid-a{grid-template-columns:repeat(4,1fr)}
.grid-b{grid-template-columns:repeat(4,1fr);gap:20px}
.grid-c{grid-template-columns:repeat(3,1fr)}

.card{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.card:hover{border-color:#d9b3c2;box-shadow:0 8px 18px rgba(87,6,42,.07)}
.card-media{position:relative;overflow:hidden;background:var(--cream-2);border-bottom:1px solid var(--line)}
.card-media img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .45s ease}
.card:hover .card-media img{transform:scale(1.04)}
.tag{position:absolute;top:10px;left:10px;background:var(--brand);color:#fff;font-family:var(--ui);font-weight:700;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;padding:5px 9px;border-radius:2px;z-index:2}
.card-cap{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px;background:#fff}
.card-cap strong{font-family:var(--serif);font-size:1.02rem;color:var(--brand-deep)}
.card-cap span{font-family:var(--ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

/* ---------- Gallery Style B: poster overlay (Top performers) ---------- */
.card--b{position:relative;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.card--b img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.card--b figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;background:rgba(46,10,26,.85);padding:13px 14px 12px;text-align:center;transition:background .25s ease}
.card--b:hover figcaption{background:var(--brand-deep)}
.card--b figcaption h3{font-family:var(--ui);font-size:.95rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 4px}
.card--b figcaption p{font-family:var(--ui);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#e9bccf;margin:0}

/* ---------- Gallery Style C: photo frame (VIP escorts) ---------- */
.card--c{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 10px 0;transition:border-color .2s ease,box-shadow .2s ease}
.card--c:hover{border-color:var(--brand);box-shadow:0 8px 18px rgba(87,6,42,.07)}
.card--c img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px;display:block;background:var(--cream-2)}
.card--c .card-cap{display:block;text-align:center;padding:12px 8px 14px;background:transparent;border-top:0}
.card--c .card-cap strong{display:block;font-family:var(--serif);font-size:1.12rem;color:var(--brand-deep);margin-bottom:3px}
.card--c .card-cap span{font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}

/* ---------- Steps ---------- */
.steps{margin:8px 0 26px;padding:0;list-style:none;counter-reset:step}
.steps li{position:relative;padding:4px 0 18px 48px;color:var(--muted);counter-increment:step}
.steps li::before{content:counter(step);position:absolute;left:0;top:2px;width:32px;height:32px;border-radius:var(--r);background:var(--brand);color:#fff;font-family:var(--ui);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.steps li strong{color:var(--brand-deep)}

/* ---------- Tables (editorial pricing) ---------- */
.table-wrap{overflow-x:auto;margin:8px 0 28px;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);background:#fff}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:420px}
.tbl--wide{min-width:640px}
.tbl th,.tbl td{padding:12px 16px;text-align:center;border-bottom:1px solid #efe4e9}
.tbl thead th{background:var(--brand-deep);color:#fff;font-family:var(--ui);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.tbl tbody tr:nth-child(even){background:#faf5f0}
.tbl tbody tr:hover{background:var(--blush)}
.tbl tbody td{color:#41323a}
.tbl tbody td:first-child{font-family:var(--ui);font-weight:600;color:var(--brand-deep);font-size:13px;text-align:left}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl a{font-weight:600}
.on{display:inline-block;background:#e7f4ec;color:#157a43;font-family:var(--ui);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:2px}

/* ---------- Hindi quote ---------- */
.hindi{margin:24px 0 28px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r);padding:20px 24px}
.hindi p{color:var(--brand-deep);margin:0;line-height:2}

/* ---------- Video ---------- */
.video-box{width:min(100%,760px);margin:6px auto 30px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#12060c}
.video-box video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}

/* ---------- FAQ accordion ---------- */
.acc{max-width:820px;margin:10px 0}
.acc-q{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r);color:var(--brand-deep);font-family:var(--ui);font-weight:600;font-size:14px;text-align:left;padding:15px 18px;margin:0 0 10px;cursor:pointer;transition:border-color .2s ease,color .2s ease}
.acc-q::after{content:"+";flex:none;width:24px;height:24px;border-radius:2px;background:var(--blush);color:var(--brand-2);font-size:17px;font-weight:700;line-height:23px;text-align:center;transition:background .2s ease,color .2s ease}
.acc-q:hover{border-color:#d9aebb}
.acc-q.is-open{background:#fff;border-color:var(--brand);border-left:3px solid var(--brand);color:var(--brand)}
.acc-q.is-open::after{content:"\2212";background:var(--brand);color:#fff}
.acc-a{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 4px}
.acc-a p{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r) var(--r);padding:4px 18px 16px;color:var(--muted);margin:0 0 10px;font-size:15px}

/* ---------- Footer ---------- */
.footer{background:#fff;border-top:1px solid var(--line);padding:26px 16px 96px;text-align:center}
.footer p{margin:0;font-family:var(--ui);font-size:13px;letter-spacing:.03em;color:var(--muted)}
.footer a{color:var(--brand);font-weight:700}

/* ---------- Mobile call bar ---------- */
.callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:80;box-shadow:0 -4px 16px rgba(0,0,0,.14)}
.callbar-btn{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff !important;font-family:var(--ui);font-weight:700;font-size:15px;letter-spacing:.04em;padding:17px 8px;text-decoration:none !important}
.callbar-btn svg{width:19px;height:19px;flex:none}
.callbar-call{background:var(--brand)}
.callbar-call:hover{background:var(--brand-2)}
.callbar-wa{background:#128c4a}
.callbar-wa:hover{background:#0d703a}

/* ---------- Age confirmation popup ---------- */
.age-overlay{position:fixed;inset:0;background:rgba(24,10,16,.72);z-index:998;display:none}
#ageModal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:999;display:none;flex-direction:column;align-items:center;background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);max-width:420px;width:calc(100% - 40px);padding:38px 30px 28px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28)}
.age-badge{display:inline-block;background:var(--brand);color:#fff;font-family:var(--ui);font-weight:800;font-size:15px;letter-spacing:.08em;padding:8px 16px;border-radius:var(--r);margin-bottom:16px}
#ageModal h2{font-size:1.35rem;margin:0 0 10px;line-height:1.35}
#ageModal>p{color:var(--muted);font-size:14px;margin-bottom:22px}
.age-actions{display:flex;flex-direction:column;gap:10px;width:100%}
.age-btn{width:100%;border-radius:var(--r);font-family:var(--ui);font-weight:700;font-size:14px;padding:13px;cursor:pointer;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease}
.age-btn--yes{background:var(--brand);color:#fff}
.age-btn--yes:hover{background:var(--brand-2)}
.age-btn--no{background:#fff;color:var(--ink);border-color:var(--line)}
.age-btn--no:hover{border-color:var(--muted)}
body.age-popup-active{overflow:hidden}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .grid-a,.grid-b{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .grid-a,.grid-b{grid-template-columns:repeat(2,1fr)}
  .head-in{justify-content:center}
  .nav{width:100%;justify-content:flex-start;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:2px;flex-wrap:nowrap;gap:18px}
  .nav::-webkit-scrollbar{display:none}
}
@media (max-width:640px){
  body{font-size:15px;line-height:1.75}
  .container{padding:0 14px}
  .wrap{width:100%;padding:0 18px}
  .block{padding:38px 0}
  .grid{gap:14px}
  .grid-a,.grid-b,.grid-c{grid-template-columns:1fr 1fr}
  .card-cap{flex-direction:column;align-items:flex-start;gap:2px;padding:11px 12px}
  .card-cap strong{font-size:.95rem}
  .card-cap span{font-size:10px}
  .tag{top:8px;left:8px;font-size:8.5px;padding:4px 7px}
  .card--b figcaption{padding:11px 8px 10px}
  .card--b figcaption h3{font-size:.8rem;letter-spacing:.1em}
  .card--b figcaption p{font-size:9px}
  .card--c{padding:7px 7px 0}
  .card--c .card-cap strong{font-size:1rem}
  .card--c .card-cap span{font-size:9px}
  .tbl th,.tbl td{padding:11px 13px;font-size:13.5px}
  .tbl,.tbl--wide{min-width:0}
  .footer{padding:20px 14px 86px}
}
@media (max-width:480px){
  .sec-head{padding:0 12px}
  .steps li{padding-left:44px}
}
