
/* Gwags.NG brand assets */
.brand-logo{display:block;width:auto;object-fit:contain}
.splash-logo{width:min(430px,82vw);height:auto;filter:drop-shadow(0 16px 30px rgba(0,0,0,.20))}
.brand-button{min-width:0}
.brand-logo-light{width:205px;height:54px}
.brand-logo-dark{display:none;width:205px;height:54px}
html.dark .brand-logo-light{display:none}
html.dark .brand-logo-dark{display:block}
.subnav-logo{width:150px;height:38px;object-fit:contain;margin-left:auto}
.subnav-logo-dark{display:none}
html.dark .subnav-logo-light{display:none}
html.dark .subnav-logo-dark{display:block}
@media(max-width:480px){.brand-logo-light,.brand-logo-dark{width:155px;height:43px}.splash-logo{width:min(330px,84vw)}.subnav-logo{width:120px;height:32px}}

:root{--purple:#8B5CF6;--purple-dark:#4C1D95;--purple-deep:#24104F;--purple-soft:#EDE9FE;--bg:#0D0718;--surface:#171025;--surface-2:#211536;--ink:#F8F5FF;--muted:#B8AEC8;--white:#fff;--border:rgba(255,255,255,.11);--shadow:0 14px 36px rgba(0,0,0,.24);--gradient:linear-gradient(145deg,#180A33 0%,#4C1D95 52%,#7C3AED 100%)}
html.light{--bg:#F8F7FC;--surface:#fff;--surface-2:#F7F2FF;--ink:#18151F;--muted:#777181;--white:#fff;--border:#EDE8F4;--shadow:0 10px 28px rgba(76,29,149,.08);--gradient:linear-gradient(145deg,#F4EEFF 0%,#E9DDFF 55%,#F8F7FC 100%)}
html.dark{--bg:#0D0718;--surface:#171025;--surface-2:#211536;--ink:#F8F5FF;--muted:#B8AEC8;--white:#fff;--border:rgba(255,255,255,.11);--shadow:0 14px 36px rgba(0,0,0,.24);--gradient:linear-gradient(145deg,#180A33 0%,#4C1D95 52%,#7C3AED 100%)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);transition:background .25s ease,color .25s ease}button{font:inherit}body{overflow-x:hidden}
.splash{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#180A33,#4C1D95 55%,#7C3AED);color:#fff}.splash-center{width:min(330px,82vw);display:flex;flex-direction:column;align-items:center;justify-content:center}.splash-brand{width:100%;display:flex;align-items:center;justify-content:center;animation:brandIn .7s ease both}.splash-logo{width:100%;height:auto;display:block}.splash-loader{width:100%;height:5px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden;margin-top:24px}.splash-loader span{display:block;height:100%;width:35%;background:#fff;border-radius:inherit;animation:load 2.8s ease forwards}.splash-trademark{position:absolute;bottom:26px;left:18px;right:18px;text-align:center;color:rgba(255,255,255,.72);font-size:11px;letter-spacing:.1px}.splash-trademark strong{color:#fff;font-weight:700}.app{min-height:100vh;max-width:1400px;margin:auto;padding:0 6px 16px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar .brand-logo{flex:0 0 auto}.brand-button{border:0;background:none;padding:8px 0;display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:800;font-size:18px;cursor:pointer}.mini-logo{width:34px;height:34px;border-radius:10px;font-size:16px;background:var(--purple);color:#fff}.theme-toggle{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:0;border-radius:50%;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s ease,background .18s ease,border-color .18s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:var(--purple)}
/* Theme icons: visibility controlled exclusively by JS hidden attribute */
.view{display:none}.view.active{display:block}.hero-copy{padding:22px 4px 20px;text-align:center}.eyebrow{display:flex;align-items:center;justify-content:center;margin:0 auto 14px;padding:8px 28px;border:1px solid var(--purple);border-radius:999px;color:var(--purple);font-size:11px;font-weight:800;letter-spacing:1.5px;width:fit-content;max-width:100%;box-shadow:0 0 18px -4px rgba(139,92,246,.55),0 0 6px -2px rgba(139,92,246,.3)}.hero-copy h1{font-size:clamp(30px,7vw,52px);line-height:1.05;letter-spacing:-1.8px;margin:0 auto 12px;max-width:760px;text-align:center}.gwagwalada-word{font-size:1.12em;font-weight:900;color:var(--purple)}html.dark .gwagwalada-word{color:#C4B5FD}.hero-copy>p:last-child{margin:0 auto;color:var(--muted);font-size:15px;line-height:1.6;max-width:580px}.category-grid{display:grid;gap:12px;margin-top:14px}.category-card{width:100%;min-height:82px;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:20px;padding:14px 15px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;text-align:left;gap:12px;box-shadow:var(--shadow);cursor:pointer;transition:.18s ease;position:relative;overflow:hidden}.category-card:hover{transform:translateY(-2px);border-color:#8B5CF6;box-shadow:0 14px 32px -10px rgba(139,92,246,.45)}.category-card:active{transform:scale(.985)}.category-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;font-size:19px;box-shadow:0 8px 18px -6px rgba(139,92,246,.6);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.category-card:hover .category-icon{transform:scale(1.08) rotate(-4deg)}.category-card strong{display:block;font-size:15px;line-height:1.25}.category-card small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.arrow{color:var(--purple);font-size:22px;font-weight:600}.category-count{position:absolute;top:12px;right:14px;background:var(--purple-soft);color:var(--purple-dark);font-size:10.5px;font-weight:800;letter-spacing:.2px;padding:3px 9px;border-radius:999px;line-height:1.5}html.dark .category-count{background:rgba(139,92,246,.2);color:#E9D5FF}.category-count[hidden]{display:none}
/* Promo card — distinctive amber/gold gradient treatment */
.category-card--promo{border-color:rgba(251,191,36,.4);background:linear-gradient(135deg,var(--surface) 0%,rgba(251,191,36,.08) 100%)}
.category-card--promo .category-icon{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 8px 18px -6px rgba(245,158,11,.55)}
.category-card--promo .arrow{color:#d97706}
.category-card--promo:hover{border-color:#f59e0b;box-shadow:0 14px 32px -10px rgba(245,158,11,.4)}
.category-card--promo:hover .category-icon{background:linear-gradient(135deg,#fbbf24,#f59e0b)}
html.dark .category-card--promo{background:linear-gradient(135deg,var(--surface) 0%,rgba(245,158,11,.1) 100%);border-color:rgba(245,158,11,.25)}
html.dark .category-card--promo .arrow{color:#fbbf24}
/* Promo detail page */
.promo-tag{background:#FEF3C7;color:#92400E;font-weight:800;font-size:12px}
html.dark .promo-tag{background:rgba(251,191,36,.18);color:#FCD34D}
.promo-detail-hero{position:relative}
.promo-hero-badge{position:absolute;top:14px;right:14px;background:#f59e0b;color:#fff;font-size:13px;font-weight:900;padding:6px 14px;border-radius:999px;letter-spacing:.04em;box-shadow:0 4px 12px rgba(245,158,11,.4)}
.promo-linked-cat{font-size:13px;color:var(--muted);margin:6px 0 12px;display:flex;align-items:center;gap:6px}
.promo-linked-cat strong{color:var(--purple)}
.promo-meta-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:18px 0}
.promo-meta-item{background:var(--surface-2,var(--surface));border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.promo-meta-item span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.promo-meta-item strong{display:block;font-size:14px;font-weight:800;color:var(--ink)}.listing-head{display:flex;align-items:center;gap:12px;padding:18px 0 12px}.listing-head h2{font-size:25px;letter-spacing:-.7px;margin:0}.back-button{width:42px;height:42px;border:1px solid var(--border);background:var(--surface);border-radius:13px;color:var(--purple);font-size:20px;cursor:pointer}.status{font-size:13px;color:var(--muted);margin:4px 0 14px}.listing-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:12px}.listing-card{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.listing-card h3{margin:0 0 7px;font-size:16px}.listing-card p{margin:0 0 7px;color:var(--muted);font-size:13px;line-height:1.5}.tag{display:inline-block;background:var(--purple-soft);color:var(--purple-dark);font-size:11px;font-weight:700;padding:5px 8px;border-radius:999px;margin-top:5px}.tag-rating{background:#FEF3C7;color:#92400E;font-weight:800}html.dark .tag-rating{background:rgba(251,191,36,.18);color:#FCD34D}.contact-block{position:relative;margin-top:20px}.contact-toggle{width:100%;cursor:pointer;border:0;font:inherit}.contact-toggle[aria-disabled="true"]{opacity:.55;cursor:not-allowed}.contact-options{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 36px rgba(37,18,63,.18);overflow:hidden;z-index:20}.contact-option{display:flex;align-items:center;gap:12px;padding:13px 15px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--border)}.contact-option:last-child{border-bottom:0}.contact-option:hover{background:var(--purple-soft)}.contact-option-icon{width:34px;height:34px;border-radius:10px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:15px;flex-shrink:0}.contact-option strong{display:block;font-size:13px}.contact-option span{display:block;font-size:12px;color:var(--muted)}.contact-empty{padding:13px 15px;font-size:12px;color:var(--muted);margin:0}.empty{padding:30px 10px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:18px}footer.site-footer{text-align:center;padding:32px 20px 24px;border-top:1px solid var(--border)}.site-footer-brand{color:var(--muted);font-size:12px;margin-bottom:12px}.site-footer-brand strong{color:var(--ink)}.site-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-bottom:12px}.site-footer-links a{font-size:12px;color:var(--muted);text-decoration:none;font-weight:600;transition:color .18s}.site-footer-links a:hover{color:var(--purple)}.site-footer-copy{font-size:11px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#21162f;color:#fff;padding:11px 15px;border-radius:12px;font-size:13px;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes brandIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes load{from{transform:translateX(-120%)}to{transform:translateX(300%)}}@media(min-width:700px){.app{padding:0 10px 24px}.topbar{height:82px}.hero-copy{padding-top:45px;max-width:900px;margin-left:auto;margin-right:auto;text-align:center}.search-bar-wrap{width:100%;max-width:780px;margin-left:auto;margin-right:auto;margin-bottom:72px}.category-grid{grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:14px}.category-card{min-height:130px;padding:18px 20px}.category-card:last-child{grid-column:auto}.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.listing-card{padding:20px}}
@media(min-width:1100px){.listing-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:480px){.splash-center{width:min(300px,84vw)}.splash-brand{gap:11px}.logo-mark{width:64px;height:64px;font-size:32px;border-radius:17px}.brand{font-size:34px}.theme-toggle{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition:none!important}}
/* Business detail page */
.listing-card{padding:0;overflow:hidden}.listing-image-wrap{position:relative;display:block;overflow:hidden}.listing-image{display:block;width:100%;height:180px;object-fit:cover;background:var(--purple-soft)}.listing-promo-badge{position:absolute;top:10px;left:10px;background:#f59e0b;color:#fff;font-size:11px;font-weight:900;padding:4px 10px;border-radius:999px;letter-spacing:.04em;pointer-events:none;box-shadow:0 3px 10px rgba(245,158,11,.45)}.listing-content{padding:16px}.listing-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.listing-title-row h3{margin:0}.listing-location{font-weight:500;color:var(--ink)!important;margin-top:8px!important}.price-label{display:block;color:var(--purple-dark);font-size:13px;margin:10px 0}.view-button{width:100%;margin-top:10px;border:0;border-radius:12px;padding:12px 14px;background:var(--purple);color:#fff;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.view-button:hover,.detail-cta:hover{background:var(--purple-dark)}.detail-head{display:flex;align-items:center;gap:12px;padding:18px 0 12px;font-size:14px;font-weight:700}.detail-card{background:#fff;border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);max-width:760px;margin:0 auto}.detail-hero{position:relative;height:260px;background:var(--purple-soft)}.detail-hero img{width:100%;height:100%;object-fit:cover;display:block}.detail-back-float{position:absolute;left:14px;top:14px;width:42px;height:42px;border:0;border-radius:13px;background:rgba(255,255,255,.94);color:var(--purple);font-size:20px;box-shadow:0 5px 18px rgba(0,0,0,.12);cursor:pointer}.detail-body{padding:20px}.detail-title-row h1{font-size:28px;line-height:1.1;letter-spacing:-1px;margin:9px 0 0}.detail-price{display:inline-block;margin-top:13px;background:var(--purple-soft);color:var(--purple-dark);font-weight:800;padding:8px 11px;border-radius:10px;font-size:13px}.detail-description{color:var(--muted);font-size:14px;line-height:1.65;margin:15px 0 20px}.info-list{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.info-row{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:0}.info-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:var(--purple-soft);color:var(--purple);font-weight:800}.info-row strong{font-size:12px;display:block;margin-bottom:4px}.info-row p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.info-row a{color:var(--purple);font-weight:700;text-decoration:none}.hours-line{display:block;margin:2px 0}.hours-line b{display:inline-block;min-width:70px;color:var(--ink)}.detail-cta{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:15px 17px;border-radius:14px;background:var(--purple);color:#fff;text-decoration:none;font-weight:800}.detail-cta span{font-size:20px}@media(min-width:700px){.detail-hero{height:360px}.detail-body{padding:28px}.detail-title-row h1{font-size:34px}}

/* Hotel booking flow */
.page{max-width:1100px;margin:0 auto;padding:18px 18px 50px}.subnav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0 22px}.subnav a{color:var(--purple);text-decoration:none;font-weight:800}.hero-copy{padding:18px 0 28px}.hero-copy h1{font-size:clamp(2rem,7vw,3.6rem);line-height:1.05;margin:8px 0;text-align:center}.hero-copy p{color:var(--muted);max-width:680px}.eyebrow{font-size:.75rem;font-weight:900;letter-spacing:.14em;color:var(--purple)!important}.listing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.hotel-card,.room-card,.panel{background:#fff;border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.hotel-card img,.room-card img{width:100%;height:190px;object-fit:cover}.card-body{padding:17px}.card-body h3{margin:0 0 7px}.muted{color:var(--muted)}.price{font-weight:900;color:var(--purple-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:0;border-radius:14px;background:var(--purple);color:#fff;text-decoration:none;font-weight:800;cursor:pointer}.btn.secondary{background:var(--purple-soft);color:var(--purple-dark)}.btn.full{width:100%}.detail-cover{width:100%;max-height:440px;object-fit:cover;border-radius:24px}.detail{display:grid;gap:22px}.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.room-card img{height:180px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:7px 10px;border-radius:999px;background:var(--purple-soft);color:var(--purple-dark);font-size:.82rem}.checkout{max-width:700px;margin:20px auto}.panel{padding:20px}.form-grid{display:grid;gap:14px}.form-grid label{font-weight:750}.form-grid input,.form-grid select{width:100%;box-sizing:border-box;margin-top:7px;padding:13px;border:1px solid var(--border);border-radius:12px;font:inherit}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px solid var(--border);border-radius:16px;padding:15px;background:#fff;cursor:pointer}.choice:hover{border-color:var(--purple)}.notice{padding:14px;border-radius:14px;background:#fff7df;color:#705600}.success{background:#ecfdf3;color:#116332}.confirmation{max-width:650px;margin:40px auto}.confirmation .panel{text-align:center}.reference{font-size:1.4rem;font-weight:900;color:var(--purple)}.loading{text-align:center;padding:40px;color:var(--muted)}
@media(max-width:560px){.choice-grid{grid-template-columns:1fr}.page{padding-left:14px;padding-right:14px}.hotel-card img{height:175px}}
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:18px 0 20px}.flow-steps span{font-size:11px;font-weight:800;text-align:center;padding:9px 5px;border-radius:10px;background:#f3f1f7;color:#8a8592}.flow-steps .done{background:#ede9fe;color:#5b21b6}.flow-steps .current{background:var(--purple);color:#fff}.flow-note{font-size:12px;color:var(--muted);text-align:center;margin:10px 0 0}.hotel-actions{margin-top:18px}@media(max-width:560px){.flow-steps{grid-template-columns:1fr 1fr}.flow-steps span{font-size:10px}}

/* Hotel booking inside the business-details page */
.hotel-room-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.hotel-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}
.hotel-section-heading h2{margin:4px 0 0;font-size:22px;line-height:1.15}
.room-count{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
.menu-eyebrow{font-size:10px;padding:5px 10px;letter-spacing:.12em}
.business-room-list{display:grid;gap:14px}
.business-room-card{border:1px solid var(--border);border-radius:18px;overflow:hidden;background:#fff}
.business-room-card>img{display:block;width:100%;height:190px;object-fit:cover;background:var(--purple-soft)}
.business-room-content{padding:15px;display:grid;gap:15px}
.business-room-content h3{margin:0 0 6px;font-size:18px}
.business-room-content p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.55}
.room-rate{border-top:1px solid var(--border);padding-top:13px;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:7px}
.room-rate strong{color:var(--purple-dark);font-size:18px}.room-rate>span{font-size:12px;color:var(--muted)}
.room-select-button{grid-column:1/-1;margin-top:8px;border:0;border-radius:12px;padding:12px 14px;background:var(--purple);color:#fff;font:inherit;font-weight:800;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.room-select-button:hover{background:var(--purple-dark)}
.room-empty{padding:18px;border:1px dashed var(--border);border-radius:16px;background:#faf9fd;color:var(--muted)}
 .hotel-booking-panel{margin-top:24px;padding:22px;border:1px solid #ddd5f7;border-radius:20px;background:#faf9ff;scroll-margin-top:18px}
/* Reservation form polish */
.hotel-booking-panel .form-grid{gap:18px}
.hotel-booking-panel .form-grid label{display:block;font-size:13px;font-weight:850;line-height:1.3;color:#18151F}
.hotel-booking-panel .form-grid input,.hotel-booking-panel .form-grid select{margin-top:8px;min-height:48px;padding:13px 14px;border:1.5px solid #D8D1E5;border-radius:13px;background:#fff;color:#18151F;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.hotel-booking-panel .form-grid input::placeholder{color:#9A94A4}
.hotel-booking-panel .form-grid input:focus,.hotel-booking-panel .form-grid select:focus{border-color:#8B5CF6;box-shadow:0 0 0 3px rgba(139,92,246,.13)}
.hotel-booking-panel .form-grid input.touched:invalid,.hotel-booking-panel .form-grid select.touched:invalid{border-color:#D92D20;background:#FFF8F7;box-shadow:0 0 0 3px rgba(217,45,32,.08)}
.hotel-booking-panel .form-grid input.touched:valid,.hotel-booking-panel .form-grid select.touched:valid{border-color:#37A169}
.hotel-booking-panel .field-error{display:none;margin:6px 0 0;color:#B42318;font-size:11px;font-weight:700;line-height:1.4}
.hotel-booking-panel .field-error.show{display:block}
.hotel-booking-panel .choice-grid{gap:14px}
.hotel-booking-panel .booking-summary{margin-top:2px;padding:15px 16px;border:1px solid #E2D9F2;border-radius:14px;background:#F5F0FF;color:#3D3548;display:flex;align-items:center;justify-content:space-between;gap:12px}
.hotel-booking-panel .booking-summary strong{color:#4C1D95;font-size:14px;text-align:right}
.hotel-booking-panel .form-note{margin:0;color:#6B6473;font-size:12px;line-height:1.5}

.hotel-booking-panel .hotel-section-heading{align-items:flex-start}.selected-room-price{color:var(--purple-dark);white-space:nowrap}
.booking-summary{display:flex;justify-content:space-between;gap:12px;padding:14px;border-radius:14px;background:#fff;border:1px solid var(--border);font-size:13px}.booking-summary strong{color:var(--purple-dark);text-align:right}
.booking-actions{margin-top:2px}.hotel-booking-success{background:#fff}.booking-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.booking-confirm-grid>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:#faf9fd}.booking-confirm-grid span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.booking-confirm-grid strong{font-size:13px;line-height:1.4}
@media(min-width:700px){.business-room-card{display:grid;grid-template-columns:240px 1fr}.business-room-card>img{height:100%;min-height:230px}.business-room-content{grid-template-rows:auto auto}.hotel-booking-panel{padding:26px}}
@media(max-width:560px){.hotel-section-heading{align-items:flex-start}.booking-confirm-grid{grid-template-columns:1fr}.booking-summary{display:grid}.booking-summary strong{text-align:left}.selected-room-price{font-size:13px}.business-room-card>img{height:175px}}

/* Apartment detail + reservation flow */
.apartment-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 4px}
.apartment-thumb{border:2px solid transparent;padding:0;border-radius:12px;overflow:hidden;background:#fff;cursor:pointer;aspect-ratio:1.25}
.apartment-thumb.active{border-color:var(--purple)}
.apartment-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.apartment-details-section,.apartment-info-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.apartment-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.apartment-spec-grid>div{padding:14px 10px;border:1px solid var(--border);border-radius:14px;background:#faf9fd;text-align:center}
.apartment-spec-grid strong{display:block;font-size:18px;color:var(--purple-dark);line-height:1.1}
.apartment-spec-grid span{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.apartment-chips .chip{background:#f4efff}
.apartment-rules{margin:0;padding:0 0 0 20px;color:var(--muted);font-size:13px;line-height:1.65}
.apartment-rules li{padding:4px 0}
.secondary-detail-cta{background:var(--purple-soft);color:var(--purple-dark);margin-top:10px}
.secondary-detail-cta:hover{background:#e8ddff}
.apartment-booking-panel{background:#faf9ff}
@media(max-width:560px){.apartment-spec-grid{grid-template-columns:1fr 1fr}.apartment-gallery{grid-template-columns:repeat(3,1fr)}.apartment-thumb{border-radius:10px}}

/* Business detail readability + section hierarchy refinements */
.detail-card{color:#18151F;background:var(--surface)}
.detail-card h1,.detail-card h2,.detail-card h3,.detail-card strong{color:#18151F}
.detail-card .detail-description,.detail-card .info-row p,.detail-card .apartment-rules,.detail-card .business-room-content p{color:#3F3A46}
.detail-card .hotel-room-section{margin-top:32px;padding:26px 0 4px;border-top:2px solid rgba(109,40,217,.24);background:linear-gradient(to bottom,rgba(139,92,246,.045),transparent 150px)}
.detail-card .hotel-room-section .hotel-section-heading{padding:0 2px 4px}
.detail-card .hotel-room-section .hotel-section-heading h2{color:#18151F;font-size:24px}
.detail-card .hotel-room-section .eyebrow,.detail-card .apartment-info-section .eyebrow,.detail-card .apartment-details-section .eyebrow{color:var(--purple-dark)!important}
.detail-card .business-room-card{background:var(--surface);color:#18151F}
.detail-card .business-room-card p{color:#3F3A46}
.detail-card .business-room-card .chip{color:var(--purple-dark)}
.detail-card .hotel-booking-panel,.detail-card .apartment-booking-panel{color:#18151F;background:#FBFAFF;border-color:#D9CDF3}
.detail-card .hotel-booking-panel h2,.detail-card .apartment-booking-panel h2{color:#18151F}
.detail-card .hotel-booking-panel .muted,.detail-card .apartment-booking-panel .muted{color:#4A4452}
.detail-card .hotel-booking-panel label,.detail-card .apartment-booking-panel label{color:#18151F}
.detail-card .hotel-booking-panel input,.detail-card .hotel-booking-panel select,.detail-card .apartment-booking-panel input,.detail-card .apartment-booking-panel select{color:#18151F;background:#fff}
.detail-card .hotel-booking-panel .flow-note,.detail-card .apartment-booking-panel .flow-note{color:#5B5562}
.detail-card .apartment-reserve-button,.detail-card .secondary-detail-cta{width:100%;box-sizing:border-box}
.detail-card .apartment-reserve-button{margin-top:20px}
.detail-card .secondary-detail-cta{margin-top:10px}
.detail-card .apartment-spec-grid>div{color:#18151F}
.detail-card .apartment-spec-grid span{color:#4A4452}

@media(max-width:560px){
  .detail-card .hotel-room-section{padding-top:22px}
  .detail-card .hotel-room-section .hotel-section-heading h2{font-size:21px}
}

/* Authentication + apartment ratings */
.topbar-actions{display:flex;align-items:center;gap:8px}.auth-button{border:1px solid rgba(139,92,246,.35);background:var(--surface);color:var(--purple);padding:9px 13px;border-radius:11px;font-weight:800;font-size:12px;cursor:pointer}.auth-button:hover{border-color:var(--purple);background:var(--purple-soft)}
.auth-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px}.auth-modal[hidden]{display:none}.auth-backdrop{position:absolute;inset:0;background:rgba(10,5,20,.72);backdrop-filter:blur(4px)}.auth-dialog{position:relative;width:min(440px,100%);background:#fff;color:#18151F;border:1px solid #E2D7F3;border-radius:22px;padding:25px;box-shadow:0 24px 70px rgba(0,0,0,.3)}.auth-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:0;border-radius:10px;background:#F4F0FA;color:#4C1D95;font-size:23px;cursor:pointer}.auth-dialog h2{margin:0 35px 8px 0;font-size:32px;line-height:1.15}.auth-dialog .eyebrow{font-size:14px;letter-spacing:.08em;font-weight:900;margin-bottom:8px}.auth-dialog .muted{color:#625A6B;font-size:15px;line-height:1.55;margin:0 0 22px}.auth-form{display:grid;gap:16px}.auth-form label{font-size:14px;font-weight:800;color:#18151F;display:grid;gap:8px}.auth-form input{width:100%;border:1px solid #D8CEE6;border-radius:12px;padding:14px;background:#fff;color:#18151F;outline:none;font-size:15px;box-sizing:border-box}.password-field{position:relative;display:block}.password-field input{padding-right:50px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:#6B5A7E;display:grid;place-items:center;cursor:pointer}.password-toggle:hover{background:#F4F0FA;color:#4C1D95}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-form input:focus{border-color:#8B5CF6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}.auth-error,.auth-success{font-size:14px;line-height:1.45;margin:0;color:#B42318}.auth-success{color:#18794E}.auth-switch{border:0;background:none;color:#4C1D95;font-size:14px;font-weight:800;margin-top:18px;cursor:pointer;text-align:center}.auth-switch u{color:#4C1D95;text-underline-offset:2px}.auth-switch .auth-switch-prefix{color:#9C93A8;font-weight:500;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}
.apartment-reviews-section{margin-top:32px;padding-top:28px;border-top:2px solid rgba(109,40,217,.18)}.reviews-content{margin-top:15px}.rating-summary{display:flex;align-items:center;gap:14px;padding:16px;background:#F8F5FD;border:1px solid #E3D9F0;border-radius:16px}.rating-score{font-size:32px;font-weight:900;color:#18151F;line-height:1}.rating-stars{display:flex;gap:2px;letter-spacing:1px}.star{font-size:16px;color:#D7CFDF}.star.filled{color:#F2B01E}.rating-summary strong{font-size:12px;color:#18151F}.rating-summary p{margin:3px 0 0;color:#6B6473;font-size:11px}.signed-out-review,.review-note{margin-top:12px;padding:15px;background:#fff;border:1px dashed #D8CCE8;border-radius:14px}.signed-out-review strong{font-size:13px}.signed-out-review p,.review-note{font-size:12px;color:#625A6B;line-height:1.5}.signed-out-review p{margin:5px 0 12px}.review-list{display:grid;gap:10px;margin-top:14px}.review-item{padding:15px;border:1px solid #E4DCEC;border-radius:15px;background:#fff}.review-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.review-top time{font-size:10px;color:#7A7284}.review-item p{margin:9px 0 7px;color:#403A47;font-size:13px;line-height:1.6}.review-item small{color:#7A7284;font-size:10px}.review-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.review-meta>span:first-child{color:#7A7284;font-size:10px}.verified-stay-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#ECFDF3;color:#087443;font-size:10px;font-weight:800;letter-spacing:.01em;border:1px solid #B7E4C7}.verified-stay-badge::before{content:'✓';font-weight:900}.review-eligibility-note{background:#F8F5FD;border-style:solid;border-color:#DCCEF0}.review-eligibility-note strong{color:#4C1D95}.review-eligibility-note p{margin:5px 0 0}.reviews-empty,.reviews-loading{padding:15px;color:#6B6473;background:#FAF8FD;border-radius:14px;font-size:12px}.review-form{padding:17px;background:#FAF8FD;border:1px solid #E2D8EE;border-radius:16px}.review-rating-label{display:flex;justify-content:space-between;align-items:center;gap:10px}.review-rating-label strong{font-size:13px}.review-rating-label span,.label-hint{font-size:10px;color:#777080;font-weight:500}.star-picker{display:flex;gap:5px;margin:9px 0 16px}.rating-star-button{border:0;background:none;color:#D8CFDF;font-size:29px;line-height:1;padding:2px;cursor:pointer;transition:.15s}.rating-star-button:hover,.rating-star-button.selected{color:#F2B01E;transform:translateY(-1px)}.review-form label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#18151F}.review-form textarea{resize:vertical;min-height:120px;border:1px solid #D7CCE5;border-radius:12px;padding:12px;font:inherit;font-size:13px;color:#18151F;background:#fff;outline:none}.review-form textarea:focus{border-color:#8B5CF6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}.review-form-error{margin:8px 0 0}.review-form-actions{display:flex;gap:8px;margin-top:14px}.review-form-actions .btn{flex:1}.secondary-review-button{background:#EEE8F8!important;color:#4C1D95!important}.field-error.show{display:block!important}.field-error.review-form-error{display:none}
@media(max-width:480px){.topbar-actions{gap:6px}.auth-button{padding:8px 10px}.auth-dialog{padding:22px 18px}.rating-summary{align-items:flex-start}.review-form-actions{flex-direction:column}}

/* Business details: full-width alignment + dark-mode readability */
.detail-card{width:100%;max-width:none;box-sizing:border-box}
.detail-head{padding-left:0;padding-right:0}
.detail-body{padding:18px}
@media(min-width:700px){.detail-body{padding:24px}}

html.dark .detail-card{background:var(--surface);color:var(--ink);border-color:rgba(255,255,255,.10)}
html.dark .detail-card h1,
html.dark .detail-card h2,
html.dark .detail-card h3,
html.dark .detail-card strong,
html.dark .detail-card .detail-title-row h1,
html.dark .detail-card .hotel-room-section .hotel-section-heading h2,
html.dark .detail-card .apartment-spec-grid>div{color:var(--ink)!important}
html.dark .detail-card .detail-description,
html.dark .detail-card .info-row p,
html.dark .detail-card .apartment-rules,
html.dark .detail-card .business-room-content p,
html.dark .detail-card .apartment-spec-grid span{color:var(--muted)!important}
html.dark .detail-card .info-list,
html.dark .detail-card .info-row{border-color:rgba(255,255,255,.10)}
html.dark .detail-card .hotel-room-section{border-top-color:rgba(167,139,250,.35);background:linear-gradient(to bottom,rgba(139,92,246,.10),transparent 150px)}
html.dark .detail-card .business-room-card{background:var(--surface-2);color:var(--ink);border-color:rgba(255,255,255,.10)}
html.dark .detail-card .business-room-card p{color:var(--muted)}
html.dark .detail-card .hotel-booking-panel,
html.dark .detail-card .apartment-booking-panel{background:var(--surface-2);color:var(--ink);border-color:rgba(167,139,250,.28)}
html.dark .detail-card .hotel-booking-panel h2,
html.dark .detail-card .apartment-booking-panel h2,
html.dark .detail-card .hotel-booking-panel label,
html.dark .detail-card .apartment-booking-panel label{color:var(--ink)!important}
html.dark .detail-card .hotel-booking-panel .muted,
html.dark .detail-card .apartment-booking-panel .muted,
html.dark .detail-card .hotel-booking-panel .flow-note,
html.dark .detail-card .apartment-booking-panel .flow-note{color:var(--muted)!important}
html.dark .detail-card .hotel-booking-panel input,
html.dark .detail-card .hotel-booking-panel select,
html.dark .detail-card .apartment-booking-panel input,
html.dark .detail-card .apartment-booking-panel select{background:#fff;color:#18151F;border-color:#D9CDF3}
html.dark .detail-card .apartment-reviews-section{border-top-color:rgba(167,139,250,.28)}
html.dark .detail-card .rating-summary,
html.dark .detail-card .signed-out-review,
html.dark .detail-card .review-note,
html.dark .detail-card .review-form,
html.dark .detail-card .reviews-empty,
html.dark .detail-card .reviews-loading{background:var(--surface-2);border-color:rgba(255,255,255,.10)}
html.dark .detail-card .rating-score,
html.dark .detail-card .rating-summary strong,
html.dark .detail-card .signed-out-review strong,
html.dark .detail-card .review-rating-label strong,
html.dark .detail-card .review-form label{color:var(--ink)!important}
html.dark .detail-card .rating-summary p,
html.dark .detail-card .signed-out-review p,
html.dark .detail-card .review-note,
html.dark .detail-card .review-item p,
html.dark .detail-card .review-item time,
html.dark .detail-card .review-item small,
html.dark .detail-card .reviews-empty,
html.dark .detail-card .reviews-loading,
html.dark .detail-card .label-hint{color:var(--muted)!important}
html.dark .detail-card .review-item{background:var(--surface);border-color:rgba(255,255,255,.10)}
html.dark .detail-card .review-form textarea{background:#fff;color:#18151F;border-color:#D9CDF3}
html.dark .detail-card .review-eligibility-note strong{color:#C4B5FD!important}

/* Business details: lock card and navigation to the same content rail at every viewport */
#detailView{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  box-sizing:border-box;
}
#detailView .detail-head,
#detailView .detail-card{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
#detailView .detail-head{
  padding-left:0;
  padding-right:0;
}
#detailView .detail-card{
  margin-top:0;
}
@media(max-width:699px){
  #detailView .detail-head{padding-top:14px;padding-bottom:10px}
  #detailView .detail-card{border-radius:18px}
}
@media(max-width:380px){
  #detailView .detail-head{gap:10px}
  #detailView .back-button{flex:0 0 42px}
}


/* Hotel business-details information icons + reservation mobile alignment */
.hotel-business-info .info-icon-lg{width:46px;height:46px;flex:0 0 46px;border-radius:14px;}
.hotel-business-info .info-icon-lg svg{width:25px;height:25px;display:block;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;}
.hotel-business-info .info-row strong{font-size:13px;font-weight:900;}
.hotel-business-info .info-row p{font-size:13px;}
.hotel-business-info .info-row{gap:14px;padding:16px 0;}

.hotel-booking-panel .choice-grid input[type="date"],
.apartment-booking-panel .choice-grid input[type="date"]{
  width:100%;
  min-width:0;
  height:48px;
  min-height:48px;
  box-sizing:border-box;
  display:block;
}

html.dark .detail-card .hotel-booking-panel .booking-summary{
  background:#2B1C40;
  border-color:rgba(196,181,253,.28);
  color:#F8F5FF;
}
html.dark .detail-card .hotel-booking-panel .booking-summary span{color:#DDD4E9!important;}
html.dark .detail-card .hotel-booking-panel .booking-summary strong,
html.dark .detail-card .apartment-booking-panel .booking-summary strong,
html.dark .detail-card .selected-room-price{color:#E9D5FF!important;}

@media(max-width:560px){
  .hotel-booking-panel .choice-grid,
  .apartment-booking-panel .choice-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .hotel-booking-panel .choice-grid > label,
  .apartment-booking-panel .choice-grid > label{min-width:0;}
  .hotel-booking-panel .choice-grid input[type="date"],
  .apartment-booking-panel .choice-grid input[type="date"]{
    width:100%;
  }
}

@media(max-width:380px){
  .hotel-business-info .info-icon-lg{width:43px;height:43px;flex-basis:43px;}
  .hotel-business-info .info-icon-lg svg{width:23px;height:23px;}
  .hotel-business-info .info-row{gap:12px;}
}

/* Authentication modal — spacious, touch-friendly mobile layout */
.auth-dialog{
  width:min(460px,100%);
  padding:32px;
  border-radius:24px;
}
.auth-dialog h2{font-size:34px;line-height:1.12;margin-bottom:10px}
.auth-dialog .eyebrow{font-size:15px;margin-bottom:10px}
.auth-dialog .muted{font-size:16px;line-height:1.6;margin-bottom:26px}
.auth-form{gap:20px}
.auth-form label{font-size:15px;gap:9px}
.auth-form input{height:52px;min-height:52px;padding:14px 15px;font-size:16px;border-radius:14px}
.password-field input{padding-right:54px}
.password-toggle{width:40px;height:40px;right:6px}
.password-toggle svg{width:21px;height:21px}
.auth-error,.auth-success{font-size:15px}
.auth-switch{font-size:15px;line-height:1.5;margin-top:22px;padding:4px 8px;min-height:44px}
#authSubmit{min-height:52px;font-size:16px;border-radius:14px}

@media(max-width:560px){
  .auth-modal{padding:10px;align-items:center;overflow-y:auto}
  .auth-dialog{
    width:100%;
    max-height:calc(100dvh - 20px);
    overflow-y:auto;
    padding:30px 22px 24px;
    border-radius:22px;
    -webkit-overflow-scrolling:touch;
  }
  .auth-close{right:12px;top:12px;width:40px;height:40px;border-radius:12px;font-size:25px}
  .auth-dialog h2{font-size:30px;margin-right:42px}
  .auth-dialog .eyebrow{font-size:14px;padding-right:42px}
  .auth-dialog .muted{font-size:15px;line-height:1.55;margin-bottom:24px;padding-right:4px}
  .auth-form{gap:18px}
  .auth-form label{font-size:15px;gap:8px}
  .auth-form input{height:54px;min-height:54px;font-size:16px;padding:14px 15px;border-radius:14px}
  .password-toggle{width:42px;height:42px;right:5px}
  .password-toggle svg{width:22px;height:22px}
  #authSubmit{height:54px;min-height:54px;font-size:16px;margin-top:2px}
  .auth-switch{width:100%;font-size:15px;margin-top:18px;padding:7px 10px;min-height:46px}
}

@media(max-width:380px){
  .auth-modal{padding:7px}
  .auth-dialog{max-height:calc(100dvh - 14px);padding:27px 18px 21px;border-radius:20px}
  .auth-dialog h2{font-size:28px}
  .auth-dialog .muted{font-size:14px;margin-bottom:21px}
  .auth-form{gap:16px}
  .auth-form input{height:52px;min-height:52px}
}


/* Auth mobile keyboard + focus polish */
.auth-dialog{overscroll-behavior:contain}
.auth-form label{scroll-margin-top:24px}
.auth-form input{font-size:16px;line-height:1.2;touch-action:manipulation}
.auth-form input:focus{scroll-margin-top:32px}
.auth-form input::placeholder{opacity:.7}
@media(max-width:560px){
  .auth-dialog{padding-bottom:max(24px,env(safe-area-inset-bottom));}
  .auth-form{padding-bottom:8px}
  .auth-form input{font-size:16px;}
}

/* Apartment review visibility and mobile UX */
.apartment-review-quick-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 4px;padding:12px 14px;background:#F8F5FD;border:1px solid #E3D9F0;border-radius:14px}.review-quick-link{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:10px;background:#4C1D95;color:#fff!important;text-decoration:none;font-size:13px;font-weight:900}.review-quick-arrow{font-size:12px;opacity:.8}.review-quick-note{font-size:11px;color:#6B6473}.review-eligibility-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.review-eligibility-steps span{padding:8px 9px;background:#fff;border:1px solid #E2D8EE;border-radius:9px;font-size:10px;font-weight:800;color:#4C1D95;line-height:1.35}.reviews-empty{display:grid;gap:3px}.reviews-empty strong{font-size:12px;color:#4C1D95}.reviews-empty span{font-size:11px}@media(max-width:480px){.apartment-review-quick-actions{align-items:stretch;flex-direction:column;gap:8px}.review-quick-link{justify-content:center;min-height:44px}.review-quick-note{text-align:center}.review-eligibility-steps{grid-template-columns:1fr}.review-eligibility-steps span{font-size:11px}}html.dark .detail-card .apartment-review-quick-actions{background:#211536;border-color:rgba(167,139,250,.28)}html.dark .detail-card .review-quick-note{color:#B8AEC8}html.dark .detail-card .review-eligibility-steps span{background:#2B1C40;border-color:rgba(196,181,253,.24);color:#E9D5FF}html.dark .detail-card .reviews-empty strong{color:#E9D5FF}

/* Account + activity center */
.account-button{border:1px solid rgba(139,92,246,.35);background:var(--purple);color:#fff;padding:9px 13px;border-radius:11px;font-weight:800;font-size:12px;cursor:pointer;box-shadow:var(--shadow)}
.account-button:hover{background:#7C3AED;border-color:#7C3AED}
.account-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(12,6,22,.68);backdrop-filter:blur(8px)}
.account-modal[hidden]{display:none}
.account-dialog{position:relative;width:min(560px,100%);max-height:min(760px,calc(100dvh - 28px));overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:24px;padding:30px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.account-dialog h2{font-size:31px;line-height:1.1;margin:0 42px 18px 0;letter-spacing:-.8px}
.account-identity{display:flex;align-items:center;gap:12px;padding:14px;background:var(--purple-soft);border:1px solid rgba(139,92,246,.18);border-radius:16px;margin-bottom:14px}
.account-avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--purple);color:#fff;font-weight:900;font-size:19px}
.account-identity strong,.account-identity span{display:block}.account-identity strong{font-size:14px;word-break:break-word}.account-identity span{font-size:11px;color:var(--muted);margin-top:3px}
.account-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.account-action{min-height:44px;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:12px;font-weight:800;font-size:12px;cursor:pointer}.account-action.active{background:var(--purple);border-color:var(--purple);color:#fff}
.account-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 10px}.account-panel-head h3{margin:0;font-size:20px}.account-refresh{border:1px solid var(--border);background:var(--surface);color:var(--purple);padding:8px 10px;border-radius:10px;font-weight:800;font-size:11px;cursor:pointer}.account-status{font-size:11px;color:var(--muted);margin-bottom:10px}.account-activity-list{display:grid;gap:10px}.account-activity-card{display:grid;grid-template-columns:42px 1fr;gap:11px;padding:13px;border:1px solid var(--border);background:var(--surface);border-radius:15px}.activity-icon{width:42px;height:42px;border-radius:12px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:18px;font-weight:900}.activity-main{min-width:0}.activity-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.activity-type{font-size:9px;color:var(--purple);font-weight:900;text-transform:uppercase;letter-spacing:.8px}.activity-top h4{margin:3px 0 0;font-size:13px;line-height:1.3}.activity-status{font-size:9px;font-weight:800;color:#6B21A8;background:#F3E8FF;border:1px solid #E9D5FF;padding:4px 7px;border-radius:999px;white-space:nowrap}.account-activity-card p{margin:6px 0;color:var(--muted);font-size:11px;line-height:1.45}.activity-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:9px;color:var(--muted)}.activity-meta strong{margin-left:auto;color:var(--ink);font-size:11px}.account-empty{text-align:center;padding:28px 15px;border:1px dashed var(--border);border-radius:16px}.account-empty-icon{width:46px;height:46px;margin:0 auto 10px;border-radius:14px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:21px}.account-empty strong{font-size:14px}.account-empty p{margin:7px auto 16px;color:var(--muted);font-size:12px;line-height:1.55;max-width:360px}.account-profile-card{padding:18px;background:var(--purple-soft);border:1px solid rgba(139,92,246,.18);border-radius:16px}.account-profile-card strong{display:block;font-size:14px;word-break:break-word;margin-top:5px}.account-profile-card p{margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.account-signout{margin-top:16px}
html.dark .account-dialog{background:var(--surface);color:var(--ink)}
html.dark .account-activity-card,html.dark .account-refresh,html.dark .account-action{background:var(--surface-2);border-color:rgba(255,255,255,.10);color:var(--ink)}
html.dark .account-action.active{background:var(--purple);color:#fff;border-color:var(--purple)}
html.dark .activity-status{background:#2E1744;color:#E9D5FF;border-color:rgba(196,181,253,.24)}
html.dark .activity-meta strong{color:var(--ink)}
@media(max-width:560px){.account-modal{padding:8px;align-items:center}.account-dialog{width:100%;max-height:calc(100dvh - 16px);padding:26px 18px 20px;border-radius:21px}.account-dialog h2{font-size:28px}.account-button{padding:8px 10px}.account-activity-card{grid-template-columns:38px 1fr;padding:12px}.activity-icon{width:38px;height:38px}.activity-top{display:block}.activity-status{display:inline-flex;margin-top:7px}.activity-meta strong{margin-left:0}.account-panel-head{align-items:flex-end}}

/* Business presence + address map */
.presence-badge-row{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.presence-badge,.location-type-badge{display:inline-flex;align-items:center;min-height:30px;padding:6px 11px;border-radius:999px;background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.24);color:#7C3AED;font-size:12px;font-weight:800;letter-spacing:.01em}
html.dark .presence-badge,html.dark .location-type-badge{color:#D9C7FF;background:rgba(139,92,246,.16);border-color:rgba(196,181,253,.24)}
.location-map-section{margin-top:20px;padding:18px;border:1px solid rgba(124,58,237,.16);border-radius:18px;background:rgba(139,92,246,.035)}
html.dark .location-map-section{background:#1B112A;border-color:rgba(196,181,253,.16)}
.location-map-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}
.location-map-heading h2{margin:3px 0 0;font-size:18px}.detail-card .location-map-heading .eyebrow,.detail-card .hotel-section-heading .eyebrow{display:block;justify-content:flex-start;margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-align:left;width:fit-content}
.location-map-toggle{width:100%;min-height:50px;border:1px solid rgba(124,58,237,.24);border-radius:14px;background:#fff;color:#4C1D95;display:flex;align-items:center;gap:10px;padding:10px 13px;font:inherit;font-size:14px;font-weight:850;cursor:pointer;text-align:left}
html.dark .location-map-toggle{background:#241536;color:#F8F5FF;border-color:rgba(196,181,253,.22)}
.location-map-toggle-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(139,92,246,.12);flex:0 0 34px}
.location-map-toggle-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.location-map-chevron{margin-left:auto;font-size:17px;font-weight:900}
.location-map-panel{margin-top:12px;overflow:hidden;border-radius:15px;border:1px solid rgba(124,58,237,.16);background:#fff}
html.dark .location-map-panel{background:#120B1D;border-color:rgba(196,181,253,.18)}
.location-map-address{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;font-size:13px}
.location-map-address strong{font-weight:750;line-height:1.45}
.location-map-address a{color:#7C3AED;font-weight:800;white-space:nowrap;text-decoration:none}
html.dark .location-map-address a{color:#C4B5FD}
.location-map-frame{height:280px;background:#eee}
.location-map-frame iframe{display:block;width:100%;height:100%;border:0}
@media(max-width:560px){
  .location-map-section{padding:15px;margin-top:16px;border-radius:16px}
  .location-map-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .location-map-heading h2{font-size:17px}
  .location-map-address{align-items:flex-start;flex-direction:column}
  .location-map-address a{white-space:normal}
  .location-map-frame{height:250px}
}

.review-action-card{margin-top:12px;padding:16px;background:#fff;border:1px solid #DCCEF0;border-radius:16px;box-shadow:0 4px 14px rgba(76,29,149,.06)}.review-action-heading{display:flex;align-items:center;gap:10px}.review-action-heading>div{display:grid;gap:2px}.review-action-heading strong{font-size:14px;color:#18151F}.review-action-status{font-size:10px;color:#6B6473;font-weight:700}.review-action-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#EDE9FE;color:#4C1D95;font-size:18px;font-weight:900}.review-action-card>p{margin:10px 0;color:#625A6B;font-size:12px;line-height:1.55}.review-action-card .btn{margin-top:12px}.review-locked-button,.review-locked-button:disabled{opacity:.7;cursor:not-allowed;background:#EEE8F8!important;color:#6B6473!important}.review-post-card{border-color:rgba(139,92,246,.45)}.review-post-card .review-action-icon{background:#4C1D95;color:#fff}.review-post-card .review-action-status{color:#087443}.review-update-card .review-action-icon{background:#ECFDF3;color:#087443}.review-update-card .review-action-status{color:#087443}html.dark .detail-card .review-action-card{background:var(--surface-2);border-color:rgba(196,181,253,.24);box-shadow:none}html.dark .detail-card .review-action-heading strong{color:var(--ink)}html.dark .detail-card .review-action-status,html.dark .detail-card .review-action-card>p{color:var(--muted)}html.dark .detail-card .review-action-icon{background:#2B1C40;color:#E9D5FF}.detail-card .review-post-card .review-action-icon{background:#4C1D95;color:#fff}.detail-card .review-locked-button,.detail-card .review-locked-button:disabled{background:#2B1C40!important;color:#B8AEC8!important}

/* v3 brand/theme refinements */
.brand-button{margin-left:4px}
.theme-toggle .theme-icon{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .theme-icon-moon{fill:currentColor;stroke:none}
.theme-toggle .theme-icon[hidden]{display:none !important}
.get-listed-button{height:36px;padding:0 15px;border-radius:999px;border:1.5px solid var(--purple);background:transparent;color:var(--purple);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .18s,color .18s}
.get-listed-button:hover{background:var(--purple);color:#fff}
@media(max-width:700px){.brand-button{margin-left:4px}}

/* ================================================
   SEARCH BAR — Gwags.NG directory search
   ================================================ */

.search-bar-wrap{
  background:var(--surface-2);
  border:1px solid var(--border);
  border-radius:24px;
  padding:16px;
  margin-bottom:28px;
  box-shadow:var(--shadow);
  position:relative;
}

/* ---- Inputs row ---- */
.search-inputs-row{
  display:flex;
  gap:10px;
  align-items:stretch;
}

/* Text search */
.search-input-wrap{
  flex:1 1 0;
  min-width:0;
  position:relative;
}
.search-input-icon{
  position:absolute;
  left:15px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  font-size:14px;
  pointer-events:none;
}
.search-input{
  width:100%;
  height:52px;
  padding:0 14px 0 40px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-size:14px;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
  box-sizing:border-box;
  -webkit-appearance:none;
}
.search-input::placeholder{color:var(--muted);}
.search-input:focus{
  border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(139,92,246,.15);
}
/* Remove native clear button on Safari/Chrome */
.search-input::-webkit-search-cancel-button{display:none;}

/* Autocomplete suggestions dropdown */
.search-suggestions{
  position:absolute;
  left:0;right:0;
  top:calc(100% + 6px);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 16px 36px rgba(0,0,0,.28);
  z-index:50;
  overflow:hidden;
  max-height:260px;
  overflow-y:auto;
}
.search-suggestions[hidden]{display:none;}
.search-suggestion-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 15px;
  cursor:pointer;
  color:var(--ink);
  font-size:14px;
  border-bottom:1px solid var(--border);
  transition:background .12s ease;
}
.search-suggestion-item:last-child{border-bottom:0;}
.search-suggestion-item:hover,.search-suggestion-item.focused{
  background:rgba(139,92,246,.10);
}
.search-suggestion-icon{
  width:32px;height:32px;border-radius:9px;
  display:grid;place-items:center;
  background:rgba(139,92,246,.12);
  color:var(--purple);
  font-size:13px;
  flex-shrink:0;
}
.search-suggestion-name{font-weight:600;}
.search-suggestion-meta{font-size:12px;color:var(--muted);}
.search-suggestion-empty{
  padding:14px 15px;font-size:13px;color:var(--muted);text-align:center;
}

/* Location picker */
.search-location-wrap{
  position:relative;
  flex:0 0 220px;
}
.search-location-btn{
  width:100%;height:52px;
  display:flex;align-items:center;gap:9px;
  padding:0 14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--ink);
  font:inherit;font-size:14px;font-weight:600;
  cursor:pointer;
  white-space:nowrap;
  transition:border-color .15s ease,box-shadow .15s ease;
  text-align:left;
}
.search-location-btn:hover,.search-location-btn[aria-expanded="true"]{
  border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(139,92,246,.15);
}
.search-location-btn i:first-child{color:var(--purple);font-size:14px;flex-shrink:0;}
.search-location-btn span{flex:1;overflow:hidden;text-overflow:ellipsis;}
.search-location-chevron{margin-left:auto;font-size:11px;color:var(--muted);transition:transform .2s ease;}
.search-location-btn[aria-expanded="true"] .search-location-chevron{transform:rotate(180deg);}

.search-location-dropdown{
  position:absolute;
  left:0;right:0;
  top:calc(100% + 6px);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 16px 36px rgba(0,0,0,.28);
  z-index:50;
  overflow:hidden;
}
.search-location-dropdown[hidden]{display:none;}
.search-location-scroll{max-height:280px;overflow-y:auto;}
.search-location-option{
  display:flex;align-items:center;gap:9px;
  padding:11px 15px;
  cursor:pointer;color:var(--ink);
  font-size:13px;font-weight:600;
  border-bottom:1px solid var(--border);
  transition:background .12s ease;
}
.search-location-option:last-child{border-bottom:0;}
.search-location-option:hover,.search-location-option.selected{
  background:rgba(139,92,246,.10);
}
.search-location-option.selected{color:var(--purple);}
.search-location-check{margin-left:auto;color:var(--purple);font-size:13px;}
.search-location-group-header{
  padding:8px 15px 4px;
  font-size:10.5px;font-weight:800;letter-spacing:.09em;
  color:var(--muted);text-transform:uppercase;
  border-bottom:1px solid var(--border);
  background:rgba(139,92,246,.04);
}

/* Search button */
.search-go-btn{
  flex:0 0 auto;
  height:52px;
  padding:0 22px;
  border:0;border-radius:14px;
  background:var(--purple);color:#fff;
  font:inherit;font-size:14px;font-weight:800;
  cursor:pointer;
  display:flex;align-items:center;gap:8px;
  white-space:nowrap;
  transition:background .15s ease,transform .12s ease,box-shadow .15s ease;
  box-shadow:0 8px 20px -6px rgba(139,92,246,.55);
}
.search-go-btn:hover{
  background:var(--purple-dark);
  transform:translateY(-1px);
  box-shadow:0 12px 24px -8px rgba(139,92,246,.65);
}
.search-go-btn:active{transform:scale(.97);}

/* Popular row */
.search-popular{
  display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;
  margin-top:12px;
  font-size:12.5px;
}
.search-popular-label{color:var(--muted);font-weight:600;margin-right:2px;}
.search-popular-item{
  border:0;background:transparent;color:var(--ink);
  font:inherit;font-size:12.5px;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
  padding:0;
  transition:color .12s ease;
}
.search-popular-item:hover{color:var(--purple);}
.search-popular-dot{color:var(--muted);}

@media(max-width:699px){
  /* 1. Smaller hero subtitle on mobile */
  .hero-copy>p:last-child{font-size:12.5px;}
  /* 2. Smaller Popular label on mobile */
  .search-popular-label{font-size:11px;}
  .search-popular-item{font-size:11px;}
}

/* ---- Search Results View ---- */
#searchView .listing-head{padding:14px 0 8px;}
#searchView .listing-head h2{font-size:22px;}

/* ================================================
   Responsive search bar
   ================================================ */
@media(max-width:700px){
  .search-bar-wrap{padding:12px;}
  .search-inputs-row{flex-wrap:wrap;gap:8px;}
  .search-input-wrap{flex:1 1 100%;}
  .search-location-wrap{flex:1 1 calc(50% - 4px);}
  .search-go-btn{flex:1 1 calc(50% - 4px);justify-content:center;}
}
@media(max-width:420px){
  .search-location-wrap{flex:1 1 100%;}
  .search-go-btn{flex:1 1 100%;}
}


/* v10 apartment/gallery/contact refinements */
.listing-image-clickable{cursor:pointer;transition:filter .18s ease,transform .18s ease}
.listing-card:hover .listing-image-clickable{filter:brightness(.97)}
.apartment-details-section .hotel-section-heading,
.apartment-info-section .hotel-section-heading{padding-left:0;padding-right:0}
.apartment-spec-grid,.apartment-chips{width:100%}
html.dark .detail-card .apartment-spec-grid>div{background:var(--surface-2);border-color:rgba(255,255,255,.11);color:var(--ink)}
html.dark .detail-card .apartment-spec-grid strong{color:#E9D5FF!important}
html.dark .detail-card .apartment-spec-grid span{color:var(--muted)!important}
html.dark .detail-card .apartment-chips .chip{background:#2B1C40;color:#E9D5FF;border:1px solid rgba(196,181,253,.16)}
html.dark .detail-card .apartment-rules{color:var(--muted)!important}
.apartment-hero img{cursor:zoom-in}
.image-lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,4,16,.94);display:flex;align-items:center;justify-content:center;padding:28px;backdrop-filter:blur(8px)}
.image-lightbox[hidden]{display:none}
.image-lightbox-stage{width:min(1100px,92vw);height:min(82vh,760px);display:flex;align-items:center;justify-content:center}
.image-lightbox-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.image-lightbox-close,.image-lightbox-prev,.image-lightbox-next{position:absolute;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}
.image-lightbox-close{top:18px;right:18px;width:44px;height:44px;border-radius:14px;font-size:28px;line-height:1}
.image-lightbox-prev,.image-lightbox-next{top:50%;transform:translateY(-50%);width:48px;height:56px;border-radius:16px;font-size:38px;line-height:1}
.image-lightbox-prev{left:18px}.image-lightbox-next{right:18px}
.image-lightbox-close:hover,.image-lightbox-prev:hover,.image-lightbox-next:hover{background:rgba(139,92,246,.35);border-color:#A78BFA}
@media(max-width:560px){.image-lightbox{padding:18px}.image-lightbox-stage{width:94vw;height:76vh}.image-lightbox-prev,.image-lightbox-next{width:40px;height:48px;font-size:30px}.image-lightbox-prev{left:8px}.image-lightbox-next{right:8px}.image-lightbox-close{top:10px;right:10px}}


/* v10 dark-mode readability, premium property info icons and image lightbox */
html.dark .detail-card .apartment-details-section,
html.dark .detail-card .apartment-info-section{border-top-color:rgba(196,181,253,.20)}
html.dark .detail-card .apartment-spec-grid>div{background:var(--surface-2)!important;color:var(--ink)!important}
html.dark .detail-card .apartment-spec-grid strong{color:#E9D5FF!important}
html.dark .detail-card .apartment-spec-grid span{color:#B8AEC8!important}
html.dark .detail-card .apartment-chips .chip{background:#2B1C40!important;color:#E9D5FF!important;border-color:rgba(196,181,253,.18)}
html.dark .detail-card .business-room-card{background:var(--surface-2)!important;color:var(--ink)!important}
html.dark .detail-card .business-room-content h3,
html.dark .detail-card .business-room-content strong{color:var(--ink)!important}
html.dark .detail-card .business-room-content p,
html.dark .detail-card .room-rate>span{color:var(--muted)!important}
html.dark .detail-card .room-rate{border-top-color:rgba(255,255,255,.10)}
html.dark .detail-card .room-rate strong{color:#E9D5FF!important}
html.dark .detail-card .room-empty{background:var(--surface-2);border-color:rgba(255,255,255,.12);color:var(--muted)}
.apartment-business-info .info-icon-lg{width:46px;height:46px;flex:0 0 46px;border-radius:14px}
.apartment-business-info .info-icon-lg svg{width:25px;height:25px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.apartment-business-info .info-row{gap:14px;padding:16px 0}
@media(max-width:380px){.apartment-business-info .info-icon-lg{width:43px;height:43px;flex-basis:43px}.apartment-business-info .info-icon-lg svg{width:23px;height:23px}.apartment-business-info .info-row{gap:12px}}


/* v11 layout refinements */
@media(min-width:700px){
  /* Shorten the Business Details container without changing the mobile layout. */
  #detailView .detail-card{width:70%;max-width:none;margin-left:auto;margin-right:auto;}
}

/* Shorter room-selection CTA. */
.room-select-button{width:35%;justify-self:end;}

/* Wider section tags with centered text. */
.detail-card .section-tag{display:flex!important;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;padding:8px 18px!important;margin-left:0!important;margin-right:0!important;}
.detail-card .location-tag{min-width:130px;}
.detail-card .rooms-rates-tag{min-width:170px;}
.detail-card .reservation-tag{min-width:135px;}

/* Theme control: show exactly one switch icon at a time. */
.theme-toggle .theme-icon{display:none!important;visibility:hidden!important;}
html.light .theme-toggle .theme-icon-moon{display:block!important;visibility:visible!important;}
html.dark .theme-toggle .theme-icon-sun{display:block!important;visibility:visible!important;}

/* Apartment section tags: wider pills with centered text. */
.detail-card .apartment-details-tag{min-width:190px;}
.detail-card .amenities-tag{min-width:130px;}
.detail-card .house-rules-tag{min-width:155px;}
.detail-card .guest-reviews-tag{min-width:175px;}
.detail-card .apartment-details-tag,
.detail-card .amenities-tag,
.detail-card .house-rules-tag,
.detail-card .guest-reviews-tag{display:flex!important;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;}

@media(max-width:699px){
  .room-select-button{width:100%;justify-self:stretch;}
  .detail-card .location-tag{min-width:130px;}
  .detail-card .rooms-rates-tag{min-width:170px;}
  .detail-card .reservation-tag{min-width:135px;}
}

/* Change 2: Shortlet listing — max 4 cards per row on desktop */
@media(min-width:700px){
  .listing-grid[data-category="shortlet"]{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(min-width:700px) and (max-width:1000px){
  .listing-grid[data-category="shortlet"]{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Change 3: Inline contact row — phone, email, hours on same row */
.contact-inline-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:stretch;
  padding:4px 0;
  border:none;
  background:none;
}
.contact-inline-row::before{display:none}

.contact-inline-btn{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--ink);
  text-decoration:none;
  flex:1 1 140px;
  min-width:0;
  transition:border-color .15s,background .15s,transform .12s;
}
.contact-inline-btn:hover{
  border-color:var(--purple);
  background:var(--purple-soft);
  transform:translateY(-1px);
}
.contact-inline-call:hover{border-color:#22c55e;background:rgba(34,197,94,.08);}
.contact-inline-email:hover{border-color:#3b82f6;background:rgba(59,130,246,.08);}

.contact-inline-hours{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  flex:1 1 160px;
  min-width:0;
}

.contact-inline-icon{
  width:32px;height:32px;
  border-radius:9px;
  background:var(--purple-soft);
  color:var(--purple);
  display:grid;place-items:center;
  flex-shrink:0;
}
.contact-inline-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-inline-call .contact-inline-icon{background:rgba(34,197,94,.12);color:#16a34a}
.contact-inline-email .contact-inline-icon{background:rgba(59,130,246,.12);color:#2563eb}

.contact-inline-btn span:last-child,
.contact-inline-hours span:last-child{
  display:flex;flex-direction:column;gap:1px;min-width:0;
}
.contact-inline-btn strong,
.contact-inline-hours strong{
  display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);
}
.contact-inline-btn small,
.contact-inline-hours small{
  display:block;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Dark mode adjustments */
html.dark .contact-inline-btn,
html.dark .contact-inline-hours{background:rgba(255,255,255,.04);}

@media(max-width:560px){
  .contact-inline-btn,.contact-inline-hours{flex:1 1 100%;}
}

/* v15.1 — precise home heading + reservation form alignment */
/* Keep the headline visually centred in the hero while giving it a small optical shift to the right. */
#homeView .hero-copy h1{
  position:relative;
  left:18px;
  width:calc(100% - 36px);
  margin-left:auto;
  margin-right:auto;
}

/* Reservation: make both date controls identical, full-width and consistently sized. */
.hotel-booking-panel .choice-grid,
.apartment-booking-panel .choice-grid{
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
}
.hotel-booking-panel .choice-grid > label,
.apartment-booking-panel .choice-grid > label{
  width:100%;
  min-width:0;
  display:block;
}
.hotel-booking-panel .choice-grid input[type="date"],
.apartment-booking-panel .choice-grid input[type="date"]{
  display:block;
  width:100% !important;
  min-width:0 !important;
  max-width:none;
  height:52px !important;
  min-height:52px !important;
  margin-top:8px;
  padding:0 12px !important;
  box-sizing:border-box !important;
  font:inherit;
  font-size:14px;
  line-height:52px;
  border:1.5px solid #D8D1E5;
  border-radius:13px;
  background:#fff;
  color:#18151F;
  -webkit-appearance:none;
  appearance:none;
}
.hotel-booking-panel .choice-grid input[type="date"]::-webkit-date-and-time-value,
.apartment-booking-panel .choice-grid input[type="date"]::-webkit-date-and-time-value{
  text-align:left;
}
.hotel-booking-panel .choice-grid input[type="date"]::-webkit-calendar-picker-indicator,
.apartment-booking-panel .choice-grid input[type="date"]::-webkit-calendar-picker-indicator{
  margin-left:auto;
  padding:4px;
  cursor:pointer;
}

/* Reservation label/pill: larger touch area and true vertical/horizontal centering. */
.detail-card .reservation-tag{
  width:180px !important;
  min-width:180px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 18px !important;
  margin:0 0 12px 0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  line-height:1 !important;
}

@media(max-width:699px){
  #homeView .hero-copy h1{
    left:8px;
    width:calc(100% - 16px);
  }
  .hotel-booking-panel .choice-grid,
  .apartment-booking-panel .choice-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
  }
  .hotel-booking-panel .choice-grid input[type="date"],
  .apartment-booking-panel .choice-grid input[type="date"]{
    height:52px !important;
    min-height:52px !important;
  }
  .detail-card .reservation-tag{
    width:180px !important;
    min-width:180px !important;
    height:42px !important;
    min-height:42px !important;
  }
}

@media(max-width:380px){
  #homeView .hero-copy h1{left:5px;width:calc(100% - 10px)}
  .hotel-booking-panel .choice-grid,
  .apartment-booking-panel .choice-grid{gap:8px}
  .hotel-booking-panel .choice-grid input[type="date"],
  .apartment-booking-panel .choice-grid input[type="date"]{
    padding-left:9px !important;
    padding-right:7px !important;
    font-size:13px;
  }
}


/* Get Listed: moved from the top navigation to the bottom of the home/app content. */
.get-listed-bottom{display:flex;justify-content:center;align-items:center;width:100%;padding:28px 0 10px;}
.get-listed-bottom .get-listed-button{min-width:150px;height:44px;padding:0 24px;}
@media(max-width:699px){
  .get-listed-bottom{padding:20px 0 8px;}
  .get-listed-bottom .get-listed-button{width:100%;background:var(--purple);color:#fff;border-color:var(--purple);}
}

/* Restaurant menu and business-detail refinements */
.restaurant-menu-section .eyebrow{
  width:180px; min-width:180px; height:42px;
  box-sizing:border-box; display:flex !important;
  align-items:center; justify-content:center; text-align:center;
  margin:0;
}
.restaurant-menu-section{
  margin-left:18px;
  margin-right:18px;
  padding:24px 0 0;
  box-sizing:border-box;
}
.restaurant-menu-section .rooms{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  padding:8px 0 4px;
  box-sizing:border-box;
}
.restaurant-menu-section .room-card{overflow:hidden;min-width:0;display:flex;flex-direction:row;align-items:stretch;}
.restaurant-menu-section .room-card .food-card-img{width:90px;min-width:90px;height:90px;object-fit:cover;flex-shrink:0;border-radius:0;}
.restaurant-menu-section .room-card .food-card-body{padding:10px 14px;flex:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0;}
.restaurant-menu-section .room-card .food-card-body h3{margin:0 0 3px;font-size:14px;line-height:1.25;}
.restaurant-menu-section .room-card .food-card-body p:not(.price){font-size:11px;line-height:1.4;color:var(--muted);margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.restaurant-menu-section .room-card .price{font-size:13px;margin:0;}
html.dark .detail-card .restaurant-menu-section .room-card{background:var(--surface-2);color:var(--ink);border-color:rgba(255,255,255,.10);}
html.dark .detail-card .restaurant-menu-section .room-card .food-card-body h3{color:var(--ink);}
html.dark .detail-card .restaurant-menu-section .room-card .food-card-body p:not(.price){color:var(--muted);}
html.dark .detail-card .restaurant-menu-section .room-card .price{color:#E9D5FF;}
.restaurant-contact-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  width:100%;
  margin-top:6px;
}
.restaurant-contact-row .contact-inline-btn,
.restaurant-contact-row .contact-inline-hours{
  width:100%; min-width:0; box-sizing:border-box;
}
.contact-inline-whatsapp:hover{border-color:#22c55e;background:rgba(34,197,94,.08);}
.contact-inline-whatsapp .contact-inline-icon{background:rgba(34,197,94,.12);color:#16a34a;font-size:10px;font-weight:900;letter-spacing:-.3px;}
.contact-inline-disabled{opacity:.72;cursor:default;}
.contact-inline-disabled:hover{transform:none;border-color:var(--border);background:var(--surface);}
@media(min-width:1100px){
  .listing-grid[data-category="restaurant"]{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(min-width:700px) and (max-width:1099px){
  .restaurant-menu-section{margin-left:28px;margin-right:28px;}
}
@media(max-width:1099px){
  /* restaurant-menu-section is single-column */
  .restaurant-contact-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:699px){
  .restaurant-menu-section{margin-left:18px;margin-right:18px;padding-top:18px;}
  /* restaurant-menu-section is single-column */
  .restaurant-menu-section .eyebrow{width:180px;min-width:180px;}
  .restaurant-contact-row{grid-template-columns:1fr;}
}


/* v15.2 — unified Business Details contact system across Hotel, Shortlet/Apartment,
   Food & Restaurant, Events, and Hangout. Every category uses the same markup,
   icons, spacing, typography, colours and responsive behaviour. */
.business-details-info{
  width:100%;
  box-sizing:border-box;
  margin-top:4px;
}
.business-details-info .business-address-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 0;
  min-height:74px;
  box-sizing:border-box;
}
.business-details-info .business-details-icon{
  width:46px;
  height:46px;
  flex:0 0 46px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:var(--purple-soft);
  color:var(--purple);
}
.business-details-info .business-details-icon svg{
  width:25px;
  height:25px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.business-details-info .business-address-row strong,
.business-details-info .business-address-row p{
  margin-left:0;
}
.business-details-info .business-address-row strong{
  display:block;
  margin-bottom:4px;
  font-size:13px;
  line-height:1.2;
  font-weight:900;
  color:var(--ink);
}
.business-details-info .business-address-row p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.business-contact-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  width:100%;
  padding:4px 0 16px;
  box-sizing:border-box;
}
.business-contact-grid .contact-inline-btn,
.business-contact-grid .contact-inline-hours{
  width:100%;
  min-width:0;
  min-height:66px;
  box-sizing:border-box;
  margin:0;
  flex:none;
}
.business-contact-grid .contact-inline-btn,
.business-contact-grid .contact-inline-hours{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--ink);
  text-decoration:none;
}
.business-contact-grid .contact-inline-btn:hover{
  border-color:var(--purple);
  background:var(--purple-soft);
  transform:translateY(-1px);
}
.business-contact-grid .contact-inline-call:hover{border-color:#22c55e;background:rgba(34,197,94,.08);}
.business-contact-grid .contact-inline-email:hover{border-color:#3b82f6;background:rgba(59,130,246,.08);}
.business-contact-grid .contact-inline-whatsapp:hover{border-color:#22c55e;background:rgba(34,197,94,.08);}
.business-contact-grid .contact-inline-icon{
  width:32px;
  height:32px;
  flex:0 0 32px;
  border-radius:9px;
  background:var(--purple-soft);
  color:var(--purple);
  display:grid;
  place-items:center;
  box-sizing:border-box;
}
.business-contact-grid .contact-inline-icon svg{
  width:16px;
  height:16px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.business-contact-grid .contact-inline-call .contact-inline-icon{background:rgba(34,197,94,.12);color:#16a34a;}
.business-contact-grid .contact-inline-email .contact-inline-icon{background:rgba(59,130,246,.12);color:#2563eb;}
.business-contact-grid .contact-inline-whatsapp .contact-inline-icon{background:rgba(34,197,94,.12);color:#16a34a;}
.business-contact-grid .whatsapp-mark{
  font-size:10px;
  font-weight:900;
  letter-spacing:-.3px;
}
.business-contact-grid .contact-inline-btn > span:last-child,
.business-contact-grid .contact-inline-hours > span:last-child{
  display:flex;
  flex-direction:column;
  gap:1px;
  min-width:0;
  overflow:hidden;
}
.business-contact-grid .contact-inline-btn strong,
.business-contact-grid .contact-inline-hours strong{
  display:block;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--muted);
}
.business-contact-grid .contact-inline-btn small,
.business-contact-grid .contact-inline-hours small{
  display:block;
  font-size:13px;
  line-height:1.35;
  font-weight:600;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.business-contact-grid .contact-inline-disabled{
  opacity:.72;
  cursor:default;
}
.business-contact-grid .contact-inline-disabled:hover{
  transform:none;
  border-color:var(--border);
  background:var(--surface);
}
html.dark .business-details-info .business-address-row strong,
html.dark .business-contact-grid .contact-inline-btn small,
html.dark .business-contact-grid .contact-inline-hours small{color:var(--ink)!important;}
html.dark .business-details-info .business-address-row p,
html.dark .business-contact-grid .contact-inline-btn strong,
html.dark .business-contact-grid .contact-inline-hours strong{color:var(--muted)!important;}
html.dark .business-contact-grid .contact-inline-btn,
html.dark .business-contact-grid .contact-inline-hours{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.10);}

@media(max-width:900px){
  .business-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .business-details-info .business-address-row{gap:12px;padding:15px 0;}
  .business-details-info .business-details-icon{width:43px;height:43px;flex-basis:43px;border-radius:13px;}
  .business-details-info .business-details-icon svg{width:23px;height:23px;}
  .business-contact-grid{grid-template-columns:1fr;gap:9px;padding-bottom:14px;}
  .business-contact-grid .contact-inline-btn,
  .business-contact-grid .contact-inline-hours{min-height:62px;}
}


/* Restaurant ordering */
.restaurant-order-hint{margin:0 0 4px;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:7px}
.restaurant-food-card .restaurant-food-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.restaurant-food-card .restaurant-food-bottom .price{margin:0}
.restaurant-add-button{height:28px;padding:0 10px;font-size:11px;white-space:nowrap}
.restaurant-cart-fab{position:fixed;right:24px;bottom:24px;z-index:1500;border:1px solid rgba(255,255,255,.12);background:#4C1D95;color:#fff;border-radius:999px;min-height:52px;padding:0 16px;display:flex;align-items:center;gap:9px;box-shadow:0 16px 40px rgba(0,0,0,.25);cursor:pointer;font:inherit;font-weight:700}
.restaurant-cart-fab b{min-width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#4C1D95;font-size:12px}
.restaurant-cart-fab strong{font-size:13px}
.restaurant-modal{position:fixed;inset:0;z-index:1600}
.restaurant-modal-backdrop{position:absolute;inset:0;background:rgba(10,6,18,.62);backdrop-filter:blur(3px)}
.restaurant-modal-dialog{position:relative;margin:6vh auto 0;width:min(680px,calc(100% - 28px));max-height:88vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.35);padding:22px}
.restaurant-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}
.restaurant-modal-head h2{margin:4px 0 0}
.restaurant-cart-items{display:grid;gap:10px}
.cart-item{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:14px}
.cart-item img{width:58px;height:58px;border-radius:10px;object-fit:cover}
.cart-item-main{min-width:0;display:grid;gap:4px}.cart-item-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-main span{font-size:12px;color:var(--muted)}
.cart-qty{display:flex;align-items:center;gap:9px}.cart-qty button{width:27px;height:27px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:8px;cursor:pointer;font-size:17px;line-height:1}
.cart-item-total{font-size:13px}
.restaurant-cart-summary{display:flex;justify-content:space-between;border-top:1px solid var(--border);margin-top:16px;padding-top:15px;font-size:16px}
.restaurant-checkout-button{margin-top:14px}
.restaurant-checkout-summary{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;margin-bottom:16px}
.restaurant-checkout-summary span{color:var(--muted);font-size:13px}
.restaurant-order-form label{min-width:0}
.restaurant-payment-note{margin:0;padding:11px 13px;border-radius:12px;background:rgba(139,92,246,.08);color:var(--muted);font-size:12px}
html.dark .restaurant-modal-dialog{background:var(--surface-1,var(--surface));border-color:rgba(255,255,255,.12)}
html.dark .restaurant-cart-fab{background:#7C3AED}
@media(max-width:1099px){
  /* restaurant-menu-section is single-column */
}
@media(max-width:699px){
  /* restaurant-menu-section is single-column */
  .restaurant-cart-fab{right:14px;bottom:14px;min-height:48px;padding:0 13px}
  .restaurant-modal-dialog{margin:3vh auto 0;max-height:92vh;padding:17px;border-radius:18px}
  .restaurant-checkout-summary{align-items:flex-start;flex-direction:column;gap:4px}
  .cart-item{grid-template-columns:50px 1fr}.cart-item img{width:50px;height:50px}.cart-item-total{grid-column:2}
}
.event-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.event-info-grid>div{padding:15px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--surface,#fff)}.event-info-grid span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.65;margin-bottom:5px}.event-info-grid strong{display:block}.event-ticket-section{margin-top:28px}.event-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.event-ticket-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line,#e5e7eb);border-radius:16px;background:var(--surface,#fff)}.event-ticket-card h3{margin:0}.event-ticket-card p{margin:6px 0 0;opacity:.72}.event-ticket-card>strong{font-size:20px}.event-buy-button{margin-top:auto}.event-free-box{margin-top:28px;padding:20px;border:1px solid var(--line,#e5e7eb);border-radius:16px}.event-free-box p{opacity:.7}@media(max-width:800px){.event-info-grid{grid-template-columns:1fr 1fr}.event-ticket-grid{grid-template-columns:1fr}}@media(max-width:520px){.event-info-grid{grid-template-columns:1fr}}


/* v15.6 Events presentation refinements */
.event-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.event-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.event-ticket-card{padding:14px;gap:9px;}
.event-ticket-card h3{font-size:16px;}
.event-ticket-card p{font-size:12px;line-height:1.45;}
.event-ticket-card>strong{font-size:18px;}
.event-ticket-section .hotel-section-heading .eyebrow,
#eventRegistrationPanel .hotel-section-heading .eyebrow{width:260px;min-width:260px;text-align:center;justify-content:center;padding-left:12px;padding-right:12px;}
#eventRegistrationPanel .hotel-section-heading .eyebrow{width:235px;min-width:235px;}
#eventCheckoutForm textarea[name="notes"]{min-height:112px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-1,var(--surface,#fff));font:inherit;color:var(--ink);resize:vertical;}
@media(max-width:800px){
  .event-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .event-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .event-ticket-section .hotel-section-heading .eyebrow{width:235px;min-width:235px;}
  #eventRegistrationPanel .hotel-section-heading .eyebrow{width:215px;min-width:215px;}
}
@media(max-width:560px){
  .event-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
  .event-info-grid>div{padding:11px 8px;}
  .event-info-grid span{font-size:9px;letter-spacing:.04em;}
  .event-info-grid strong{font-size:12px;line-height:1.3;}
  .event-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  .event-ticket-card{padding:12px 10px;}
  .event-ticket-card h3{font-size:14px;}
  .event-ticket-card>strong{font-size:16px;}
  .event-ticket-section .hotel-section-heading .eyebrow{width:205px;min-width:205px;}
  #eventRegistrationPanel .hotel-section-heading .eyebrow{width:195px;min-width:195px;}
}


/* v15.6.1 final event layout */
.event-ticket-section .hotel-section-heading h2{font-size:18px;}
#eventRegistrationPanel .hotel-section-heading h2{font-size:18px;}
.event-ticket-section .hotel-section-heading .eyebrow,
#eventRegistrationPanel .hotel-section-heading .eyebrow{height:34px;display:flex;align-items:center;justify-content:center;white-space:nowrap;}
#eventCheckoutForm label{color:var(--ink,#18151F);}
#eventCheckoutForm textarea[name="notes"]{box-sizing:border-box;width:100%;display:block;}
@media(max-width:560px){
  .event-ticket-section .hotel-section-heading .eyebrow{width:210px;min-width:210px;}
  #eventRegistrationPanel .hotel-section-heading .eyebrow{width:200px;min-width:200px;}
  .event-ticket-section .hotel-section-heading h2,#eventRegistrationPanel .hotel-section-heading h2{font-size:16px;}
}


/* v15.7 event mobile refinements + light-mode default */
.event-ticket-type{font-size:13px!important;font-weight:500!important;color:var(--purple,#7C3AED)!important;margin:0!important;}
@media(max-width:560px){
  .event-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .event-info-grid>div{min-width:0;}
  .event-info-grid>div:nth-child(1){grid-column:1 / -1;}
  .event-info-grid>div:nth-child(2){grid-column:1;}
  .event-info-grid>div:nth-child(3){grid-column:2;}
  .event-info-grid>div:nth-child(4){grid-column:1;}
  .event-info-grid>div:nth-child(5){grid-column:2;}
  .event-ticket-section .hotel-section-heading .eyebrow{width:260px;min-width:260px;}
  .event-ticket-card .event-buy-button{min-height:40px;height:40px;padding:8px 12px;}
  .event-unit{display:none;}
  .event-ticket-type{font-size:12px!important;font-weight:400!important;}
}


/* v15.8 mobile category layout */
@media(max-width:699px){
  .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .category-card{min-height:82px;padding:12px 10px;grid-template-columns:38px 1fr auto;gap:7px;border-radius:17px;}
  .category-icon{width:38px;height:38px;border-radius:11px;font-size:16px;}
  .category-card strong{font-size:13px;line-height:1.18;}
  .category-card small{font-size:10.5px;line-height:1.25;margin-top:3px;}
  .arrow{font-size:18px;}
}


/* v15.9 mobile search/category refinements */
@media(max-width:699px){
  /* Hide the area selector inside the search container on mobile only. */
  .search-location-wrap{display:none!important;}
  /* Keep the category count badge slightly higher and further right. */
  .category-count{top:8px;right:8px;}
  .category-card{padding-right:8px;}
  .search-popular-label{font-size:12.5px;}
}

/* ================================================================
   People category — appended without modifying existing styles
   ================================================================ */
#listingGrid[data-category="people"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
/* Change 5: smaller listing h2 on mobile for Connect */
#listingView .listing-head h2{font-size:22px}
@media(min-width:700px){#listingView .listing-head h2{font-size:25px}}
/* Change 6: 4 columns for People on desktop */
@media(min-width:900px){#listingGrid[data-category="people"]{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}
.people-listing-card{padding:10px!important}
.people-card-main{width:100%;min-height:112px;display:grid;grid-template-columns:92px minmax(0,1fr) 22px;gap:13px;align-items:center;border:0;background:transparent;color:inherit;text-align:left;padding:0;cursor:pointer;font:inherit}
.people-avatar{width:92px;height:92px;display:block;object-fit:cover;border-radius:14px;background:var(--purple-soft);border:1px solid var(--border)}
.people-listing-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
.people-listing-copy>strong{font-size:16px;line-height:1.25}
.people-tagline{font-size:12px;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.people-area{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}
.people-area i{color:var(--purple);font-size:11px}
.people-skills{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.people-skills em,.skill-pill{font-style:normal;font-size:10px;font-weight:700;line-height:1;padding:6px 8px;border-radius:999px;background:var(--purple-soft);color:var(--purple-dark)}
html.dark .people-skills em,html.dark .skill-pill{color:#DDD6FE;background:rgba(139,92,246,.18)}
.people-card-arrow{color:var(--purple);font-size:20px;justify-self:end}
.people-self-listing{margin-top:22px;padding:20px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.people-self-head h2{margin:3px 0 5px;font-size:22px}
.people-self-head p{margin:0;color:var(--muted);font-size:13px}
.people-self-form{margin-top:18px}
.people-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.people-form-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:var(--ink)}
.people-form-grid .wide{grid-column:1/-1}
.people-form-grid input,.people-form-grid select{width:100%;height:44px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:12px;padding:0 12px;font:inherit;font-weight:400;outline:none}
.people-form-grid input:focus,.people-form-grid select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.people-upload-field input[type=file]{height:auto;padding:11px}
.people-upload-field>span{font-size:11px;font-weight:500;color:var(--muted)}
.people-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;font-weight:500!important;line-height:1.45;font-size:12px!important;padding-top:14px!important}
.people-consent input{width:18px;height:18px;min-width:18px;margin:1px 0 0}
.people-self-form .form-actions{margin-top:16px;display:flex;}
.add-my-profile-btn{margin-left:auto;height:36px;padding:0 16px;border-radius:999px;border:1.5px solid var(--purple);background:var(--purple);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .18s,opacity .18s;}
.add-my-profile-btn:hover{opacity:.85;}
.people-filter-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px 0 16px;}
.people-filter-field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:140px;}
.people-filter-field label{font-size:11px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.06em;}
.people-filter-field label i{color:var(--purple);font-size:10px;}
.people-filter-field select{height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink);padding:0 32px 0 12px;font:inherit;font-size:13px;font-weight:500;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%239C93A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 8l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px;cursor:pointer;}
.people-filter-field select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(139,92,246,.12);}
.people-filter-clear{height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .18s,color .18s;align-self:flex-end;}
.people-filter-clear:hover{border-color:var(--purple);color:var(--purple);}
.people-filter-clear[hidden]{display:none;}
.people-contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.people-contact-actions .btn{flex:1 1 150px;text-align:center;text-decoration:none}
.people-contact-whatsapp{background:#25D366!important;border-color:#25D366!important;color:#fff!important}
.people-detail-tagline{font-size:17px;line-height:1.55;color:var(--muted);margin:0 0 20px}
.people-detail-section{margin-top:24px}
.people-skills-detail{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.people-area-detail{display:flex;align-items:center;gap:10px;margin-top:12px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);font-weight:700}
.people-area-detail i{color:var(--purple)}
.people-detail-media{position:relative;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}
.people-detail-media img,.people-detail-media video{width:100%;height:100%;object-fit:cover;display:block}
.people-media-hint{position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;padding:8px 10px;border-radius:10px;font-size:11px;font-weight:700}
.people-media-section{margin-top:26px}
.people-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.people-media-thumb{position:relative;padding:0;border:0;border-radius:13px;overflow:hidden;aspect-ratio:1/1;background:var(--surface-2);cursor:zoom-in}
.people-media-thumb img,.people-media-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.video-badge{position:absolute;left:8px;bottom:8px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.68);color:#fff;font-size:11px}
.people-lightbox-stage{width:min(94vw,1100px);height:min(82vh,780px);display:grid;place-items:center}
.people-lightbox-stage img,.people-lightbox-stage video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px}
.people-lightbox .image-lightbox-prev,.people-lightbox .image-lightbox-next{display:grid;place-items:center}

@media(max-width:700px){
  #listingGrid[data-category="people"]{grid-template-columns:1fr;gap:12px}
  .people-card-main{grid-template-columns:82px minmax(0,1fr) 18px;gap:11px;min-height:96px}
  .people-avatar{width:82px;height:82px;border-radius:13px}
  .people-listing-copy>strong{font-size:15px}
  .people-self-listing{padding:16px}
  .people-form-grid{grid-template-columns:1fr}
  .people-form-grid .wide{grid-column:auto}
  .people-contact-actions .btn{flex-basis:100%}
  .people-media-grid{gap:7px}
}

/* 1. Dark mode is the default — :root carries dark vars, html.light overrides */
:root{--purple:#8B5CF6;--purple-dark:#4C1D95;--purple-deep:#24104F;--purple-soft:#EDE9FE;--bg:#0D0718;--surface:#171025;--surface-2:#211536;--ink:#F8F5FF;--muted:#B8AEC8;--white:#fff;--border:rgba(255,255,255,.11);--shadow:0 14px 36px rgba(0,0,0,.24);--gradient:linear-gradient(145deg,#180A33 0%,#4C1D95 52%,#7C3AED 100%)}
html.light{--bg:#F8F7FC;--surface:#fff;--surface-2:#F7F2FF;--ink:#18151F;--muted:#777181;--white:#fff;--border:#EDE8F4;--shadow:0 10px 28px rgba(76,29,149,.08);--gradient:linear-gradient(145deg,#F4EEFF 0%,#E9DDFF 55%,#F8F7FC 100%)}
html.dark{--bg:#0D0718;--surface:#171025;--surface-2:#211536;--ink:#F8F5FF;--muted:#B8AEC8;--white:#fff;--border:rgba(255,255,255,.11);--shadow:0 14px 36px rgba(0,0,0,.24);--gradient:linear-gradient(145deg,#180A33 0%,#4C1D95 52%,#7C3AED 100%)}

/* Change 3: Larger eyebrow tags in People detail — SKILLS, AREA, MEDIA */
.people-detail-section .eyebrow,
.people-media-section .eyebrow{
  padding:10px 32px;
  font-size:12px;
  letter-spacing:1.6px;
  min-width:120px;
  justify-content:center;
}

/* Change 8: Skill picker in self-listing form */
.people-skill-picker{margin-top:6px;}
.skill-options{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);min-height:60px;}
.skill-option-btn{padding:8px 14px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s;}
.skill-option-btn:hover{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark);}
.skill-option-btn.selected{border-color:var(--purple);background:var(--purple);color:#fff;}

/* Change 9: Purpose filter field */
.people-purpose-tag{background:#EFF6FF;color:#1D4ED8;font-size:10px;font-weight:800;padding:5px 10px;border-radius:999px;display:inline-block;margin-left:6px;vertical-align:middle;}
html.dark .people-purpose-tag{background:rgba(59,130,246,.18);color:#93C5FD;}

/* Consent disclaimer link styling */
.people-consent a{color:var(--purple);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.people-consent a:hover{color:var(--purple-dark);}

/* ── Filter bar: 3 filters on one row, no wrapping ───────────────────────── */
.people-filter-bar{flex-wrap:nowrap!important;align-items:flex-end;gap:10px;}
.people-filter-field{flex:1 1 0;min-width:0;}
.people-filter-field select{width:100%;}
.people-filter-clear{flex:0 0 auto;}
@media(max-width:560px){
  .people-filter-bar{flex-wrap:nowrap!important;gap:6px;}
  .people-filter-field select{font-size:12px;padding:0 24px 0 8px;}
  .people-filter-clear{padding:0 10px;font-size:11px;}
}

/* ── Skill picker: collapse to ~3 rows, view-more toggle inside container ─────────────────── */
.skill-options-grid{
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 12px 4px;
  background:var(--surface);
}
.skill-options-collapsed{
  max-height:130px;  /* ~3 rows of pills */
  overflow:hidden;
}
.skill-view-more{
  display:flex;align-items:center;justify-content:center;gap:5px;
  width:100%;
  margin:8px 0 4px;
  border:0;background:none;
  color:var(--purple);font:inherit;font-size:12px;font-weight:700;
  cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px;
}
.skill-view-more:hover{color:var(--purple-dark);}
.skill-view-more-arrow{font-style:normal;}
