
/* ============ source <style> block #1 ============ */

/* tokens moved to yassir-tokens.css */

/* ── Redesign Handoff · Motion system (data-reveal) ──────────────────────── */
[data-reveal]{ opacity:0; transform:translateY(40px) scale(.98);
  transition: opacity .9s var(--ease-apple), transform .9s var(--ease-apple); }
[data-reveal].in{ opacity:1; transform:translateY(0) scale(1); }
[data-reveal][data-reveal-dir="down"]{ transform:translateY(-28px); }
[data-reveal][data-reveal-dir="down"].in{ transform:translateY(0); }
[data-reveal][data-reveal-dir="scale"]{ transform:scale(.92); }
[data-reveal][data-reveal-dir="scale"].in{ transform:scale(1); }
[data-reveal][data-reveal-dir="right"]{ transform:translateX(-40px); }
[data-reveal][data-reveal-dir="right"].in{ transform:translateX(0); }
[data-reveal][data-reveal-dir="left"]{ transform:translateX(40px); }
[data-reveal][data-reveal-dir="left"].in{ transform:translateX(0); }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ── Redesign Handoff · Text flippers (hero signatures) ─────────────────── */
/* City flipper — rotates Syrian city names in hero headline every 2.8s */
.city-flip{display:inline-block;color:var(--gold);transform-origin:50% 100%;will-change:transform,opacity;perspective:600px}
.city-flip .city-flip-word{display:inline-block;animation:cityFlipIn 700ms var(--ease-pop) both}
@keyframes cityFlipIn{
  from{opacity:0;transform:translateY(20px) rotateX(-40deg)}
  to{opacity:1;transform:translateY(0) rotateX(0)}
}
/* Mood flipper — split-flap style; finale class gets gold emphasis */
.mood-flip{display:inline-block;position:relative;perspective:500px;min-width:6ch}
.mood-flip .mood-flip-word{display:inline-block;animation:moodFlipIn 600ms var(--ease-pop) both;transform-origin:50% 50%}
.mood-flip.finale .mood-flip-word{color:var(--gold)}
@keyframes moodFlipIn{
  0%{opacity:0;transform:rotateX(-90deg)}
  55%{opacity:1}
  100%{opacity:1;transform:rotateX(0)}
}
@media (prefers-reduced-motion: reduce){
  .city-flip .city-flip-word,
  .mood-flip .mood-flip-word{animation:none !important}
}

/* ── Redesign Handoff · Component atoms ──────────────────────────────────── */
/* Buttons */
.b-primary{background:var(--navy);color:var(--gold);padding:12px 22px;border-radius:100px;font-weight:800;font-size:13.5px;display:inline-flex;align-items:center;gap:8px;transition:transform .25s var(--ease-apple), box-shadow .25s var(--ease-apple), background-color .2s}
.b-primary:hover{background:var(--navy-dk);transform:translateY(-1px);box-shadow:0 10px 24px rgba(26,45,90,.3)}
.b-gold{background:var(--gold);color:var(--navy);padding:12px 22px;border-radius:100px;font-weight:800;font-size:13.5px;display:inline-flex;align-items:center;gap:8px;transition:background-color .2s, transform .25s var(--ease-apple)}
.b-gold:hover{background:var(--gold-dk);transform:translateY(-1px)}
.b-ghost{background:#fff;color:var(--ink);border:1px solid var(--line-2);padding:11px 20px;border-radius:100px;font-weight:700;font-size:13px;transition:border-color .2s}
.b-ghost:hover{border-color:var(--navy)}
.b-link{color:var(--navy);font-weight:700;font-size:13px;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px}

/* Chips */
.chip-t{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:100px;font-size:11.5px;font-weight:700;background:var(--paper);color:var(--ink);border:1px solid var(--line-2);transition:all .2s var(--ease-apple)}
.chip-t.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip-s{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:700}
.chip-s.navy{background:var(--navy);color:var(--gold)}
.chip-s.gold{background:var(--gold);color:var(--navy)}
.chip-s.ghost{background:var(--bg-2);color:var(--muted);border:1px solid var(--line-2)}
.chip-s.success{background:rgba(22,163,74,.1);color:var(--success)}
.chip-s.danger{background:rgba(220,38,38,.1);color:var(--danger)}
.chip-s.warn{background:rgba(217,119,6,.1);color:var(--warn)}
.chip-s.info{background:rgba(37,99,235,.1);color:var(--info)}

/* Property card */
.card-prop{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);transition:transform .6s var(--ease-pop), box-shadow .6s var(--ease-pop)}
.card-prop:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card-prop .thumb{aspect-ratio:1/1;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--navy-lt),var(--navy-dk))}
.card-prop .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-pop)}
.card-prop:hover .thumb img{transform:scale(1.04)}
.card-prop .thumb .heart{position:absolute;top:10px;left:10px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.95);display:grid;place-items:center;font-size:14px;transition:transform .3s var(--ease-pop)}
.card-prop .thumb .heart:hover{transform:scale(1.1)}
.card-prop .thumb .ctag{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.5);color:#fff;backdrop-filter:blur(8px);padding:4px 9px;border-radius:100px;font-size:10px;font-weight:700}
.card-prop .info{padding:12px 14px 14px}
.card-prop .info h6{font-size:13.5px;font-weight:700;color:var(--ink)}
.card-prop .info .rating{font-size:12px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:3px}
.card-prop .info .sub{font-size:12px;color:var(--muted);margin-top:2px}
.card-prop .info .price{font-size:13.5px;color:var(--ink);margin-top:6px}

/* Inputs */
.u-input{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:14px;font-family:inherit;font-size:14px;font-weight:600;background:#fff;color:var(--ink);outline:none;transition:border-color .2s, box-shadow .2s}
.u-input:focus{border-color:var(--navy);box-shadow:0 0 0 4px rgba(26,45,90,.1)}
.u-input::placeholder{color:var(--muted-2)}
.u-label{display:block;font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.05em}

/* Search pill */
.search-pill{background:#fff;border:1px solid var(--line-2);border-radius:100px;display:flex;align-items:center;box-shadow:var(--shadow);height:64px;padding:0 6px}
.search-pill .col{flex:1;padding:0 18px;height:100%;display:flex;flex-direction:column;justify-content:center;border-inline-end:1px solid var(--line);cursor:pointer;border-radius:100px;transition:background .2s;min-width:0}
.search-pill .col:hover{background:var(--bg-2)}
.search-pill .col:last-of-type{border-inline-end:none}
.search-pill .col small{font-size:10px;font-weight:700;color:var(--muted);display:block;margin-bottom:2px;text-transform:uppercase;letter-spacing:0.04em}
.search-pill .col b{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-pill button{background:var(--navy);color:var(--gold);padding:0 18px;height:50px;border-radius:100px;font-size:13px;font-weight:800;flex-shrink:0;transition:background-color .2s}
.search-pill button:hover{background:var(--navy-dk)}

/* Modal shell */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:1000;padding:20px}
.modal-box{background:#fff;border-radius:28px;width:min(460px,100%);overflow:hidden;box-shadow:var(--shadow-lg)}
.modal-box .mh{background:linear-gradient(160deg,var(--navy-lt),var(--navy-dk));color:#fff;padding:22px 22px 18px;position:relative;display:flex;align-items:center;gap:12px}
.modal-box .mh .mk{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-weight:900;color:var(--gold);font-size:12px;flex-shrink:0}
.modal-box .mh h3{font-size:15px;font-weight:800;letter-spacing:-0.01em}
.modal-box .mh p{font-size:12px;color:rgba(255,255,255,.75);margin-top:2px}
.modal-box .mh .x{position:absolute;inset-inline-start:12px;top:12px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;font-size:14px;border:none;cursor:pointer}
.modal-box .mb{padding:20px 22px}
.modal-box .mf{padding:14px 22px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);text-align:center}

/* Utility colors */
.u-navy{color:var(--navy)!important}
.u-gold{color:var(--gold)!important}
.u-muted{color:var(--muted)!important}
.u-ink{color:var(--ink)!important}
.u-paper-bg{background:var(--paper)!important}

/* ── Redesign Handoff · HomePage (Yassir Syria Home) ────────────────────── */
.yh-page{background:var(--bg-2);color:var(--ink);min-height:100vh}
.yh-section-title{font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-0.02em;color:var(--ink);margin-bottom:6px}
.yh-section-sub{color:var(--muted);font-size:14px}

/* Hero */
.yh-hero{background:var(--paper);padding:56px 28px 140px;position:relative;overflow:hidden}
.yh-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 15%, rgba(245,197,24,.14), transparent 55%), radial-gradient(circle at 15% 85%, rgba(26,45,90,.08), transparent 55%);pointer-events:none}
.yh-hero-inner{position:relative;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.yh-hero-copy{min-width:0}
.yh-hero-kicker{display:inline-block;font-size:12px;font-weight:700;color:var(--navy);background:rgba(245,197,24,.22);border-radius:100px;padding:5px 12px;letter-spacing:0.04em;margin-bottom:16px}
.yh-hero-title{font-size:clamp(34px,4.2vw,56px);font-weight:900;line-height:1.18;letter-spacing:-0.03em;color:var(--ink)}
.yh-hero-title .city-flip{color:var(--gold)}
.yh-hero-brand{color:var(--gold)}
.yh-hero-sub{margin-top:14px;color:var(--muted);font-size:15.5px;line-height:1.65;max-width:520px}

/* Phone frame reel */
.yh-hero-reel{display:grid;place-items:center}
.yh-phone{position:relative;width:230px;aspect-ratio:9/18;border-radius:38px;background:#0a0d18;padding:10px;box-shadow:0 30px 60px rgba(15,29,64,.3), 0 0 0 1px rgba(255,255,255,.06) inset}
.yh-phone-notch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:74px;height:18px;background:#0a0d18;border-radius:100px;z-index:2}
.yh-phone-video{width:100%;height:100%;border-radius:28px;object-fit:cover;display:block;background:linear-gradient(160deg,var(--navy-lt),var(--navy-dk))}
.yh-phone-badge{position:absolute;bottom:16px;inset-inline-end:-14px;background:var(--gold);color:var(--navy);font-family:var(--mono, monospace);font-size:10px;font-weight:800;padding:4px 10px;border-radius:100px;letter-spacing:0.08em;box-shadow:0 6px 16px rgba(0,0,0,.15)}

/* Search pill — overlaps hero/mood boundary */
.yh-searchpill-wrap{position:relative;max-width:820px;margin:0 auto;padding:0 20px;transform:translateY(calc(50% + 20px));z-index:3}
.yh-searchpill{height:72px;padding:0 6px;box-shadow:0 20px 50px rgba(15,29,64,.15), 0 6px 20px rgba(0,0,0,.05)}
.yh-pill-input{width:100%;border:none;outline:none;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ink);padding:0;cursor:pointer}
.yh-pill-input::placeholder{color:var(--muted-2, #9a9a9a)}
.yh-pill-stepper{display:flex;align-items:center;gap:8px}
.yh-pill-stepper button{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--ink);font-size:14px;line-height:1;display:grid;place-items:center;cursor:pointer}
.yh-pill-stepper button:hover{border-color:var(--navy);color:var(--navy)}
.yh-pill-stepper b{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap}
.yh-search-ic{font-size:14px;margin-inline-end:4px}

/* Mood section (headline flipper + 6 tiles) */
.yh-moods{max-width:1100px;margin:0 auto;padding:140px 28px 56px;text-align:center}
.yh-mood-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:28px}
.yh-mood-tile{background:var(--paper);border:1px solid transparent;border-radius:16px;padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:transform .3s var(--ease-pop), border-color .2s, box-shadow .3s var(--ease-pop)}
.yh-mood-tile:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:var(--shadow)}
.yh-mood-icon{font-size:30px;line-height:1}
.yh-mood-label{font-size:12.5px;font-weight:700;color:var(--ink)}

/* Featured grid */
.yh-featured{max-width:1100px;margin:0 auto;padding:20px 28px 56px}
.yh-featured-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;gap:16px}
.yh-featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.yh-card{cursor:pointer;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);transition:transform .6s var(--ease-pop), box-shadow .6s var(--ease-pop)}
.yh-card .thumb{aspect-ratio:1.05/1;display:block;position:relative}
.yh-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease-pop)}
.yh-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(15,29,64,.12)}
.yh-card:hover .thumb img{transform:scale(1.04)}
.yh-card-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:rgba(245,197,24,.7);font-family:var(--mono, monospace);font-size:11px}
.yh-skeleton{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);padding:0 0 14px}
.yh-skeleton-thumb{aspect-ratio:1.05/1;background:linear-gradient(90deg,#eee 0%,#f5f5f5 50%,#eee 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.yh-skeleton-line{height:12px;margin:12px 14px 0;border-radius:6px;background:linear-gradient(90deg,#eee 0%,#f5f5f5 50%,#eee 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;width:70%}
.yh-skeleton-line.short{width:40%}

/* Syria map preview */
.yh-map-section{max-width:1100px;margin:0 auto;padding:20px 28px 56px;text-align:center}
.yh-map{position:relative;margin-top:28px;aspect-ratio:16/9;max-height:480px;border-radius:24px;overflow:hidden;background:linear-gradient(160deg,#E8EAEF 0%, #F5F1E4 55%, #E3E7EC 100%);border:1px solid var(--line)}
.yh-map-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%, rgba(245,197,24,.22) 0%, transparent 55%), radial-gradient(ellipse at 30% 30%, rgba(26,45,90,.12) 0%, transparent 40%);pointer-events:none}
.yh-map-pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;cursor:pointer}
[dir="rtl"] .yh-map-pin{transform:translate(50%,-50%)}
.yh-map-pin .yh-map-price{background:var(--navy);color:var(--gold);padding:5px 12px;border-radius:100px;font-size:12px;font-weight:800;box-shadow:0 6px 16px rgba(15,29,64,.25);transition:transform .3s var(--ease-pop), box-shadow .3s var(--ease-pop)}
.yh-map-pin:hover .yh-map-price{transform:scale(1.08);box-shadow:0 10px 24px rgba(15,29,64,.35)}
.yh-map-pin .yh-map-name{font-size:11px;font-weight:700;color:var(--navy);background:rgba(255,255,255,.9);padding:2px 8px;border-radius:100px;border:1px solid rgba(26,45,90,.12)}

/* Host CTA banner */
.yh-host-cta{max-width:1100px;margin:0 auto 80px;padding:0 28px}
.yh-host-cta-inner{background:linear-gradient(160deg,var(--navy-lt),var(--navy-dk));border-radius:24px;padding:38px 40px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;position:relative;overflow:hidden}
.yh-host-cta-inner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 25%, rgba(245,197,24,.2), transparent 55%);pointer-events:none}
.yh-host-cta-inner > *{position:relative;z-index:1}
.yh-host-kicker{font-size:11px;font-weight:700;color:var(--gold);letter-spacing:0.14em;text-transform:uppercase;margin-bottom:10px}
.yh-host-cta-inner h2{font-size:clamp(22px,2.4vw,32px);font-weight:800;letter-spacing:-0.02em;line-height:1.25}
.yh-host-cta-inner p{margin-top:10px;color:rgba(255,255,255,.82);font-size:14px;max-width:520px;line-height:1.6}

/* Responsive */
@media (max-width: 900px){
  .yh-hero{padding:44px 20px 120px}
  .yh-hero-inner{grid-template-columns:1fr;gap:28px;text-align:center}
  .yh-hero-copy{text-align:start}
  .yh-hero-sub{margin-inline:auto}
  .yh-phone{width:190px}
  .yh-searchpill{height:auto;flex-direction:column;padding:10px;border-radius:24px;gap:6px}
  .yh-searchpill .col{border-inline-end:none;border-bottom:1px solid var(--line);width:100%;padding:10px 14px}
  .yh-searchpill .col:last-of-type{border-bottom:none}
  .yh-searchpill button{width:100%;height:48px;margin-top:6px}
  .yh-mood-grid{grid-template-columns:repeat(3,1fr)}
  .yh-featured-grid{grid-template-columns:repeat(2,1fr)}
  .yh-map{aspect-ratio:4/5}
  .yh-host-cta-inner{flex-direction:column;align-items:flex-start;padding:28px}
}
@media (max-width: 520px){
  .yh-mood-grid{grid-template-columns:repeat(2,1fr)}
  .yh-featured-grid{grid-template-columns:1fr}
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'Cairo', 'Tajawal', 'Inter', sans-serif;
  background: var(--gray-50);
  color: var(--gray-900);
  overflow-x: hidden;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  transition: background-color var(--motion-base) var(--ease-standard), color var(--motion-fast) var(--ease-standard);
}

[dir="ltr"] body { font-family: 'Inter', 'Inter Tight', -apple-system, 'Segoe UI', sans-serif; }

html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

::selection { background: var(--gold-300); color: var(--blue-900); }

a { text-decoration: none; color: inherit; }

button { cursor: pointer; border: none; font-family: inherit; }

input, select, textarea { font-family: inherit; }

img { max-width: 100%; display: block; }

.page-shell {
  opacity: 1;
  transition: opacity var(--motion-base) var(--ease-standard), filter var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);
}

.page-shell.is-transitioning {
  opacity: 0.14;
  filter: blur(1px);
  transform: translateY(2px);
  pointer-events: none;
}

.surface-card {
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-premium);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
}

.surface-frosted {
  background: var(--surface-frosted);
  border: 1px solid rgba(255,255,255,0.52);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  backdrop-filter: saturate(140%) blur(18px);
  -webkit-backdrop-filter: saturate(140%) blur(18px);
}

.surface-floating-panel {
  background: var(--surface-card-strong);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  backdrop-filter: saturate(140%) blur(16px);
  -webkit-backdrop-filter: saturate(140%) blur(16px);
}

.action-destructive {
  color: var(--red-500);
  border-color: rgba(239, 68, 68, 0.35);
}

.state-success {
  color: var(--green-500);
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.25);
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--gray-100); }
::-webkit-scrollbar-thumb { background: var(--blue-500); border-radius: 4px; }

/* Animations */
@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes spinSlow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes patternMove { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }
@keyframes heroSlowMove { 0% { transform: scale(1.02) translateY(0); } 100% { transform: scale(1.08) translateY(-10px); } }

.fade-in { animation: fadeIn 0.6s ease forwards; }
.slide-up { animation: slideUp 0.5s ease forwards; }
.page-enter { animation: pageEnter 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
@keyframes pageEnter { from { opacity: 0; transform: translateY(24px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes ripple { to { transform: scale(4); opacity: 0; } }
@keyframes cardEntrance { from { opacity: 0; transform: translateY(30px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes gentleBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes statusPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.6; } }
.card-enter { animation: cardEntrance 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }
.status-pulse { animation: statusPulse 2s ease-in-out infinite; }
.btn-bounce:active { transform: scale(0.95); }
.hover-lift { transition: transform var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard); }
.hover-lift:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.11); }
@keyframes welcomeOverlayAnim { 0% { opacity: 0; } 8% { opacity: 1; } 75% { opacity: 1; } 100% { opacity: 0; pointer-events: none; } }
@keyframes welcomeEmojiFloat { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-12px) scale(1.1); } }
@keyframes welcomeProgress { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } }
@keyframes skeleton-shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes skeleton-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }
@keyframes shareGlow {
  0%, 100% { box-shadow: 0 8px 20px rgba(37, 99, 235, 0.28); transform: translateY(0); }
  50% { box-shadow: 0 12px 26px rgba(37, 99, 235, 0.4); transform: translateY(-1px); }
}
@keyframes logoLuxPulse {
  0%, 100% { box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.55) inset; }
  50% { box-shadow: 0 10px 28px rgba(29, 78, 216, 0.16), 0 0 0 1px rgba(255, 255, 255, 0.7) inset; }
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 220ms;
  animation-timing-function: var(--ease-decelerate);
}

::view-transition-old(root) { filter: saturate(0.98); }
::view-transition-new(root) { filter: saturate(1.02); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  :root {
    --motion-fast: 1ms;
    --motion-base: 1ms;
    --motion-slow: 1ms;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .page-shell,
  .page-shell.is-transitioning {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
  .hover-lift:hover {
    transform: none !important;
  }
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none !important;
  }
}

/* Islamic Geometric Pattern (CSS-generated) */
.islamic-pattern {
  position: absolute;
  inset: 0;
  opacity: 0.06;
  background-image:
    linear-gradient(30deg, var(--gold-500) 12%, transparent 12.5%, transparent 87%, var(--gold-500) 87.5%, var(--gold-500)),
    linear-gradient(150deg, var(--gold-500) 12%, transparent 12.5%, transparent 87%, var(--gold-500) 87.5%, var(--gold-500)),
    linear-gradient(30deg, var(--gold-500) 12%, transparent 12.5%, transparent 87%, var(--gold-500) 87.5%, var(--gold-500)),
    linear-gradient(150deg, var(--gold-500) 12%, transparent 12.5%, transparent 87%, var(--gold-500) 87.5%, var(--gold-500)),
    linear-gradient(60deg, var(--gold-300) 25%, transparent 25.5%, transparent 75%, var(--gold-300) 75%, var(--gold-300)),
    linear-gradient(60deg, var(--gold-300) 25%, transparent 25.5%, transparent 75%, var(--gold-300) 75%, var(--gold-300));
  background-size: 60px 104px;
  background-position: 0 0, 0 0, 30px 52px, 30px 52px, 0 0, 30px 52px;
  animation: patternMove 20s linear infinite;
  pointer-events: none;
}

/* === NAVBAR === */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  transition: box-shadow var(--transition);
  height: 80px;
}
.navbar.scrolled { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
.navbar-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 48px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav-logo {
  display: flex;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
  padding: 6px 10px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(245,248,255,0.9));
  border: 1px solid rgba(148, 163, 184, 0.24);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.55) inset;
  transition: transform var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);
}
.nav-logo:hover { transform: translateY(-1px); filter: brightness(1.03); }
.nav-logo img, .nav-logo video { height: 52px; border-radius: 10px; pointer-events: none; }
.nav-search-bar {
  display: flex;
  align-items: center;
  border: 1px solid var(--gray-300);
  border-radius: 40px;
  padding: 8px 8px 8px 24px;
  gap: 12px;
  transition: all 0.3s ease;
  background: var(--white);
  flex-shrink: 0;
}
.nav-search-bar.expanded {
  flex: 1;
  max-width: 520px;
  border-color: var(--navy-900, #1a2d5a);
  box-shadow: 0 0 0 3px rgba(245, 197, 24, 0.18);
}
[dir="ltr"] .nav-search-bar { padding: 8px 8px 8px 24px; }
[dir="rtl"] .nav-search-bar { padding: 8px 24px 8px 8px; }
.nav-search-bar input {
  border: none;
  background: none;
  outline: none;
  font-size: 15px;
  color: var(--gray-800);
  min-width: 0;
}
.nav-search-bar input::placeholder { color: var(--gray-400); }
.nav-search-bar.compact-text {
  color: var(--gray-600);
  font-size: 15px;
}
.nav-search-btn {
  background: var(--gold-500, #F5C518);
  color: var(--navy-900, #1a2d5a);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--transition);
  cursor: pointer;
}
.nav-search-btn:hover { background: var(--gold-400); transform: scale(1.05); }
.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.nav-icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  position: relative;
  color: var(--gray-800);
}
.nav-icon-btn:hover { background: var(--gray-100); }
.nav-icon-btn svg { width: 20px; height: 20px; }
/* Currency control: same row height as nav-icon-btn, icon + code (currency-only modal). */
.nav-currency-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  min-width: 40px;
  padding: 0 10px 0 8px;
  border-radius: 20px;
  border: none;
  background: transparent;
  color: var(--gray-800);
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
  font-family: inherit;
}
.nav-currency-chip:hover { background: var(--gray-100); }
.nav-currency-chip svg { width: 20px; height: 20px; flex-shrink: 0; }
.nav-currency-chip-code {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--gray-900);
}
[dir="rtl"] .nav-currency-chip { padding: 0 8px 0 10px; }
.locale-modal-head {
  padding: 20px 52px 12px 24px;
  border-bottom: 1px solid var(--gray-200);
}
[dir="rtl"] .locale-modal-head {
  padding: 20px 24px 12px 52px;
}
.locale-modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: var(--gray-900);
  letter-spacing: -0.02em;
}
.badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #e74c3c;
  color: white;
  font-size: 10px;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.user-menu-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 5px 5px 12px;
  border: 1px solid var(--gray-300);
  border-radius: 24px;
  background: var(--white);
  transition: var(--transition);
  cursor: pointer;
  overflow: visible;
}
[dir="ltr"] .user-menu-btn { padding: 5px 12px 5px 5px; }
[dir="rtl"] .user-menu-btn { padding: 5px 5px 5px 12px; }
.user-menu-btn:hover { box-shadow: var(--shadow-md); }
.user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--blue-800);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.lang-currency-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.lang-currency-modal-content {
  background: var(--white);
  border-radius: var(--radius);
  width: 90%;
  max-width: 480px;
  box-shadow: var(--shadow-lg);
  position: relative;
}
.modal-close-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  color: var(--gray-600);
}
[dir="rtl"] .modal-close-btn { right: auto; left: 16px; }
.modal-tabs {
  display: flex;
  border-bottom: 1px solid var(--gray-200);
}
.modal-tab {
  flex: 1;
  padding: 16px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  color: var(--gray-600);
  border-bottom: 2px solid transparent;
  transition: var(--transition);
}
.modal-tab.active {
  color: var(--blue-800);
  border-bottom-color: var(--blue-800);
}
.modal-content {
  padding: 24px;
}
.lang-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.lang-card {
  padding: 20px;
  border: 2px solid var(--gray-200);
  border-radius: 12px;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
  background: var(--white);
}
.lang-card:hover { border-color: var(--blue-500); background: var(--blue-50); }
.lang-card.active { border-color: var(--blue-800); background: var(--blue-100); }
.lang-card-name { font-size: 18px; font-weight: 700; color: var(--gray-800); margin-bottom: 8px; }
.lang-card-native { font-size: 14px; color: var(--gray-600); }
.currency-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.currency-btn {
  padding: 12px;
  border: 2px solid var(--gray-200);
  border-radius: 8px;
  background: var(--white);
  cursor: pointer;
  transition: var(--transition);
  text-align: center;
  font-size: 13px;
  font-weight: 600;
}
.currency-btn:hover { border-color: var(--blue-500); background: var(--blue-50); }
.currency-btn.active { border-color: var(--blue-800); background: var(--blue-100); color: var(--blue-800); }

/* === HERO === */
/* Fixed viewport band under the 80px nav: media + overlays fill this box edge-to-edge;
   height does not grow with fullscreen width so headline/search stay in view. */
.hero {
  position: relative;
  isolation: isolate;
  --hero-nav: 80px;
  height: clamp(420px, min(86svh, calc(100svh - var(--hero-nav))), 920px);
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  background: linear-gradient(135deg, var(--blue-900) 0%, var(--blue-800) 50%, var(--blue-700) 100%);
  margin-top: var(--hero-nav);
  overflow: hidden;
  box-sizing: border-box;
}
.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
/* Fill hero media left→right and top→bottom (crop edges if aspect ratio differs) */
.hero-media img, .hero-media video {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center center;
}
.hero-media img {
  animation: heroSlowMove 18s ease-in-out infinite alternate;
}
.hero-media video {
  animation: none;
}
@media (prefers-reduced-motion: reduce) {
  .hero-media img { animation: none; }
}
/* Multi-slide hero: horizontal swipe (scroll-snap); no motion when only one slide */
.hero-media-carousel {
  position: absolute;
  inset: 0;
  display: flex;
  flex-flow: row nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  direction: ltr;
}
.hero-media-carousel::-webkit-scrollbar { display: none; height: 0; width: 0; }
.hero-media-slide {
  flex: 0 0 100%;
  width: 100%;
  min-height: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  position: relative;
}
.hero-media-slide-inner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-media-carousel .hero-media-slide img,
.hero-media-carousel .hero-media-slide video {
  animation: none;
}
.hero-carousel-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 112px;
  z-index: 8;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}
.hero-carousel-dot {
  pointer-events: auto;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.9);
  background: rgba(255,255,255,0.28);
  padding: 0;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.hero-carousel-dot:hover { transform: scale(1.12); }
.hero-carousel-dot.is-active {
  background: var(--gold-400);
  border-color: rgba(255,255,255,0.95);
  transform: scale(1.25);
}
@media (max-width: 768px) {
  .hero-carousel-dots { bottom: 96px; }
}
.hero-bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23F5C518' stroke-width='0.5' opacity='0.12'%3E%3Cpath d='M40 0L80 40L40 80L0 40Z'/%3E%3Cpath d='M20 20L60 20L60 60L20 60Z'/%3E%3Ccircle cx='40' cy='40' r='15'/%3E%3C/g%3E%3C/svg%3E");
  background-color: rgba(6, 36, 82, 0.38);
  pointer-events: none;
  overflow: hidden;
}
.hero .islamic-pattern {
  z-index: 2;
}
.hero-content {
  position: relative;
  z-index: 10;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  width: 100%;
  max-width: none;
  min-height: 0;
  max-height: 100%;
  box-sizing: border-box;
  padding: clamp(20px, 3.5vh, 56px) 24px clamp(28px, 5vh, 64px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  pointer-events: auto;
}
.hero-content > .hero-badge,
.hero-content > h1,
.hero-content > p {
  max-width: 900px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.hero .hero-content > p {
  margin-bottom: 18px;
}
/* Home search strip: between hero media and featured destinations — own layer, no overlay on video */
.home-search-section {
  position: relative;
  z-index: 20;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  box-sizing: border-box;
  padding: 20px 24px 24px;
  overflow: visible;
}
.home-search-section-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}
.home-search-section .hero-search {
  margin-top: 0;
  margin-bottom: 0;
  align-self: center;
  width: min(100%, 900px);
  max-width: 900px;
  min-width: 0;
  flex-shrink: 0;
  margin-left: auto;
  margin-right: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
}
.hero-content--compact {
  flex: 1 1 auto;
  justify-content: center;
  padding: 0 24px;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(245,197,24,0.15);
  border: 1px solid rgba(245,197,24,0.3);
  color: var(--gold-400);
  padding: 8px 20px;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 24px;
  animation: fadeIn 0.8s ease;
}
.hero h1 {
  font-size: 52px;
  font-weight: 900;
  color: var(--white);
  line-height: 1.2;
  /* ~13× the heading’s own line box height (scales with font-size breakpoints) */
  margin-top: calc(13 * 1lh);
  margin-bottom: 16px;
  animation: fadeIn 0.8s ease 0.1s both;
}
.hero h1 .gold { color: var(--gold-500); }
.hero .hero-city-kicker {
  font-size: 18px;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  margin-top: -4px;
  margin-bottom: 14px;
  letter-spacing: -0.01em;
  animation: fadeIn 0.8s ease 0.15s both;
}
.hero .hero-city-kicker .city-flip { font-size: 1.1em; }
.hero p {
  font-size: 20px;
  color: rgba(255,255,255,0.8);
  margin-bottom: 40px;
  animation: fadeIn 0.8s ease 0.2s both;
}
@media (max-height: 720px) {
  .hero h1 { font-size: clamp(26px, 5vw, 40px); line-height: 1.15; margin-bottom: 10px; }
  .hero p { font-size: 15px; margin-bottom: 16px; }
  .hero-badge { margin-bottom: 12px; padding: 6px 14px; }
}

/* Hero Search */
.hero-search {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 8px;
  display: flex;
  gap: 2px;
  box-shadow: var(--shadow-xl);
  animation: slideUp 0.6s ease 0.3s both;
  flex-wrap: wrap;
  position: relative;
  z-index: 100;
}
/* Search bar in flow (home strip, not over hero media) */
.home-search-section .hero-search-dock {
  position: relative !important;
  top: auto !important;
}
.hero-search-field {
  flex: 1;
  min-width: 150px;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-radius: var(--radius);
  transition: var(--transition);
  cursor: pointer;
  position: relative;
}
.hero-search-field:hover { background: var(--gray-50); }
.hero-search-field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--gray-800);
}
.hero-search-field input, .hero-search-field select {
  border: none;
  outline: none;
  background: none;
  font-size: 15px;
  color: var(--gray-600);
  width: 100%;
}
.hero-search-divider {
  width: 1px;
  background: var(--gray-200);
  margin: 12px 0;
}
.hero-search-submit {
  background: var(--gold-500);
  color: var(--blue-900);
  border-radius: var(--radius);
  padding: 16px 32px;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  white-space: nowrap;
}
.hero-search-submit:hover { background: var(--gold-400); transform: translateY(-1px); box-shadow: var(--shadow-md); }

/* === SECTIONS === */
.section {
  max-width: 1400px;
  margin: 0 auto;
  padding: 60px 24px;
}
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}
.section-title {
  font-size: 28px;
  font-weight: 800;
  color: var(--gray-900);
}
.section-subtitle {
  font-size: 16px;
  color: var(--gray-500);
  margin-top: 4px;
}
.section-link {
  font-size: 15px;
  font-weight: 600;
  color: var(--blue-800);
  display: flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.section-link:hover { color: var(--blue-600); gap: 8px; }

/* === DESTINATIONS === */
.destinations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.dest-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 280px;
  cursor: pointer;
  transition: var(--transition);
}
.dest-card:first-child { grid-column: span 2; grid-row: span 2; height: 100%; }
.dest-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.dest-card-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: var(--transition);
}
.dest-card-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dest-card:hover .dest-card-bg { transform: scale(1.05); }
.dest-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 50%, transparent 100%);
}
.dest-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px;
  color: var(--white);
}
.dest-card-content h3 { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.dest-card-content p { font-size: 14px; opacity: 0.85; }
.dest-card:first-child .dest-card-content h3 { font-size: 28px; }

/* === PROPERTY CARDS === */
.properties-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}
.property-card {
  background: var(--surface-card-strong);
  border-radius: 22px;
  overflow: hidden;
  transition: var(--transition);
  cursor: pointer;
  border: 1px solid rgba(255,255,255,0.72);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
  backdrop-filter: saturate(135%) blur(10px);
  -webkit-backdrop-filter: saturate(135%) blur(10px);
}
.property-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.12);
  border-color: rgba(65, 105, 192, 0.14);
}
.property-card.highlighted {
  border-color: rgba(65, 105, 192, 0.32);
  box-shadow: 0 24px 54px rgba(46, 74, 142, 0.16);
}
.property-card-img {
  position: relative;
  aspect-ratio: 20 / 19;
  border-radius: 22px 22px 0 0;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.35), rgba(15,23,42,0));
}
.property-card-img img,
.property-card-img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.property-card-img-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
  background: linear-gradient(135deg, var(--blue-100), var(--blue-50));
}
.property-card:hover .property-card-img img,
.property-card:hover .property-card-img-placeholder { transform: scale(1.03); }
/* Superhost badge */
.property-card-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--white);
  padding: 5px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-900);
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
  z-index: 4;
}
[dir="rtl"] .property-card-badge { left: auto; right: 12px; }
/* Discount badge */
.property-card-discount {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: linear-gradient(135deg, #FF385C, #E31C5F);
  color: #fff;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.3px;
  z-index: 4;
  box-shadow: 0 2px 8px rgba(227, 28, 95, 0.35);
  display: flex;
  align-items: center;
  gap: 4px;
}
[dir="rtl"] .property-card-discount { left: auto; right: 12px; }
.property-card-discount svg { flex-shrink: 0; }
.property-card-fav {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s;
  cursor: pointer;
  z-index: 5;
}
[dir="rtl"] .property-card-fav { right: auto; left: 12px; }
.property-card-fav:hover { transform: scale(1.1); }
.property-card-fav svg { filter: drop-shadow(0 1px 3px rgba(0,0,0,0.3)); }
.property-card-body { padding: 16px 16px 14px; }
.property-card-location {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--gray-900);
  margin-bottom: 2px;
}
.property-card-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: 8px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.property-card-features {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.property-card-feature {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  color: var(--gray-500);
}
.property-card-feature svg { color: var(--gray-400); }
.property-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0;
  border-top: none;
}
.property-card-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  font-weight: 600;
}
.property-card-rating .star { color: var(--gray-900); font-size: 12px; }
.property-card-price {
  font-size: 16px;
  font-weight: 700;
  color: var(--gray-900);
}
.property-card-price span {
  font-size: 14px;
  font-weight: 400;
  color: var(--gray-500);
}

@keyframes propertyCardStaggerIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
.property-card--stagger {
  animation: propertyCardStaggerIn var(--motion-base) var(--ease-decelerate) both;
  animation-delay: calc(var(--card-index, 0) * 42ms);
}
.property-card-cta {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border-subtle);
  font-size: 14px;
  font-weight: 700;
  color: var(--blue-800);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
}
.property-card-cta svg { flex-shrink: 0; opacity: 0.65; }
.property-card-chip-guest-fav {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border-radius: 6px;
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  color: #92400e;
  border: 1px solid rgba(245, 158, 11, 0.35);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.booking-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 700;
  margin-top: 8px;
}
.booking-badge-instant { background: #dcfce7; color: #166534; }
.booking-badge-approval { background: #fef3c7; color: #92400e; }
.booking-badge svg { flex-shrink: 0; }

/* === CATEGORIES === */
.categories-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 8px;
  scrollbar-width: none;
}
.categories-scroll::-webkit-scrollbar { display: none; }
.category-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  border-radius: var(--radius);
  background: var(--white);
  border: 2px solid var(--gray-200);
  transition: var(--transition);
  white-space: nowrap;
  min-width: 100px;
  cursor: pointer;
}
.category-chip:hover { border-color: var(--blue-500); }
.category-chip.active { border-color: var(--blue-800); background: var(--blue-50); }
.category-chip-icon { font-size: 28px; }
.category-chip-label { font-size: 13px; font-weight: 600; color: var(--gray-700); }

/* === HOW IT WORKS === */
.how-section {
  background: linear-gradient(135deg, var(--blue-900), var(--blue-800));
  position: relative;
  overflow: hidden;
}
.how-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.how-card {
  text-align: center;
  padding: 40px 24px;
  position: relative;
  z-index: 1;
}
.how-card-number {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--gold-500);
  color: var(--blue-900);
  font-size: 28px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.how-card-icon {
  font-size: 48px;
  margin-bottom: 16px;
}
.how-card h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 12px;
}
.how-card p {
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
}

/* === STATS (labels only — no fabricated counts) === */
.stats-bar {
  display: flex;
  justify-content: center;
  gap: 60px;
  padding: 40px 0 8px;
  flex-wrap: wrap;
}
.stat-item {
  text-align: center;
  max-width: 160px;
}
.stat-pillar-icon {
  font-size: 28px;
  line-height: 1;
  margin-bottom: 10px;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.15));
}
.stat-label {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255,255,255,0.88);
  line-height: 1.35;
}

/* === CTA === */
.cta-section {
  background: var(--gold-500);
  position: relative;
  overflow: hidden;
}
.cta-content {
  text-align: center;
  padding: 80px 24px;
  position: relative;
  z-index: 1;
}
.cta-content h2 {
  font-size: 36px;
  font-weight: 900;
  color: var(--blue-900);
  margin-bottom: 16px;
}
.cta-content p {
  font-size: 18px;
  color: var(--blue-900);
  opacity: 0.8;
  margin-bottom: 32px;
}
.cta-btn {
  background: var(--blue-800);
  color: var(--white);
  padding: 16px 40px;
  border-radius: 30px;
  font-size: 17px;
  font-weight: 700;
  transition: var(--transition);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.cta-btn:hover { background: var(--blue-700); transform: translateY(-2px); box-shadow: var(--shadow-lg); }

/* === FOOTER === */
.footer {
  background: var(--navy-900, #1a2d5a);
  color: var(--white);
  padding: 60px 24px 30px;
  font-family: var(--ff-display, inherit);
}
.footer-inner {
  max-width: 1400px;
  margin: 0 auto;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}
.footer-brand h3 {
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 12px;
}
.footer-brand h3 span { color: var(--gold-500, #F5C518); letter-spacing: -0.01em; }
.footer-brand p { color: rgba(255,255,255,0.6); font-size: 15px; line-height: 1.7; }
.footer-col h4 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--gold-500, #F5C518);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.footer-col a {
  display: block;
  color: rgba(255,255,255,0.6);
  font-size: 14px;
  padding: 4px 0;
  transition: var(--transition);
}
.footer-col a:hover { color: var(--white); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.footer-bottom p { color: rgba(255,255,255,0.5); font-size: 13px; }
.footer-social { display: flex; gap: 12px; }
.footer-social a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
  font-size: 18px;
}
.footer-social a:hover { background: var(--gold-500, #F5C518); color: var(--navy-900, #1a2d5a); transform: translateY(-2px); }

/* === MODAL === */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  overflow-y: auto;
  animation: fadeIn 0.3s ease;
}
.modal {
  background: var(--white);
  border-radius: var(--radius-xl);
  max-width: 480px;
  width: 100%;
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  animation: slideUp 0.4s ease;
}
.modal-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--gray-200);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.modal-header h2 {
  font-size: 22px;
  font-weight: 700;
  font-family: var(--ff-display, inherit);
  color: var(--navy-900, #1a2d5a);
  letter-spacing: -0.01em;
}
.modal-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gray-100);
  font-size: 18px;
  color: var(--navy-900, #1a2d5a);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.modal-close:hover { background: var(--gold-500, #F5C518); transform: rotate(90deg); }
.modal-body { padding: 24px; }

/* === FORMS === */
.form-group { margin-bottom: 20px; }
.form-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-700);
  margin-bottom: 6px;
}
.form-input {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid var(--gray-200);
  border-radius: var(--radius);
  font-size: 15px;
  transition: var(--transition);
  background: var(--white);
}
.form-input:focus {
  outline: none;
  border-color: var(--navy-900, #1a2d5a);
  box-shadow: 0 0 0 3px rgba(245, 197, 24, 0.18);
}
.form-input::placeholder { color: var(--gray-400); }
.form-select {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid var(--gray-200);
  border-radius: var(--radius);
  font-size: 15px;
  background: var(--white);
  appearance: none;
  cursor: pointer;
}
textarea.form-input { resize: vertical; min-height: 100px; }
.form-btn {
  width: 100%;
  padding: 14px;
  border-radius: var(--radius);
  font-size: 16px;
  font-weight: 700;
  transition: var(--transition);
}
.form-btn-primary {
  background: var(--navy-900, #1a2d5a);
  color: var(--white);
  font-family: var(--ff-display, inherit);
  letter-spacing: 0.01em;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.form-btn-primary:hover {
  background: var(--navy-900, #1a2d5a);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(26, 45, 90, 0.24);
}
.form-btn-gold {
  background: var(--gold-500);
  color: var(--blue-900);
}
.form-btn-gold:hover { background: var(--gold-400); }
.form-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 20px 0;
  color: var(--gray-400);
  font-size: 13px;
}
.form-divider::before, .form-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--gray-200);
}
.form-social-btns { display: flex; gap: 12px; }
.form-social-btn {
  flex: 1;
  padding: 12px;
  border: 2px solid var(--gray-200);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  background: var(--white);
  transition: var(--transition);
}
.form-social-btn:hover { background: var(--gray-50); border-color: var(--gray-300); }
.form-switch {
  text-align: center;
  margin-top: 20px;
  font-size: 14px;
  color: var(--gray-600);
}
.form-switch a {
  color: var(--navy-900, #1a2d5a);
  font-weight: 700;
  cursor: pointer;
  border-bottom: 2px solid var(--gold-500, #F5C518);
  padding-bottom: 1px;
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.form-switch a:hover { color: var(--gold-600, #ca8a04); }

/* === PROPERTY DETAIL === */
.detail-page { padding-top: 80px; }
.detail-sticky-reserve-bar {
  position: fixed;
  top: 80px;
  inset-inline: 0;
  z-index: 60;
  background: rgba(255,255,255,0.92);
  border-bottom: 1px solid var(--gray-200);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
}
.detail-sticky-reserve-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 10px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.detail-share-cta {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 8px 16px;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  animation: shareGlow 2.8s ease-in-out infinite;
  transition: transform 0.2s ease, filter 0.2s ease;
}
.detail-share-cta:hover { transform: translateY(-1px); filter: brightness(1.05); }
.detail-share-cta-note {
  font-size: 11px;
  color: var(--blue-700);
  font-weight: 700;
  text-align: center;
  margin-top: 4px;
}
.detail-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 8px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 8px 24px;
  height: 460px;
}
.detail-section-nav {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  position: sticky;
  top: 80px;
  z-index: 50;
  background: linear-gradient(180deg, var(--gray-50) 70%, transparent);
}
.detail-section-nav a {
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-600);
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: color var(--motion-fast), background var(--motion-fast), border-color var(--motion-fast);
}
.detail-section-nav a:hover {
  color: var(--blue-800);
  background: rgba(255,255,255,0.85);
  border-color: var(--border-subtle);
}
.detail-gallery-main {
  border-radius: 22px 0 0 22px;
  overflow: hidden;
  grid-row: span 2;
  position: relative;
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.12);
}
[dir="ltr"] .detail-gallery-main { border-radius: 22px 0 0 22px; }
.detail-gallery-main img, .detail-gallery-main .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.detail-gallery-hero-img {
  animation: detailGalleryFade var(--motion-base) var(--ease-decelerate) both;
}
@keyframes detailGalleryFade {
  from { opacity: 0.65; }
  to { opacity: 1; }
}
.detail-gallery-thumb-wrap { position: relative; }
.detail-gallery-thumb-wrap.is-active::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 12px;
  box-shadow: inset 0 0 0 2px var(--blue-600);
  pointer-events: none;
}
.img-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 64px;
  background: linear-gradient(135deg, var(--blue-100), var(--gold-100));
}
.detail-gallery-side { overflow: hidden; }
.detail-gallery-side:nth-child(3) { border-radius: 0 22px 0 0; }
.detail-gallery-side:nth-child(5) { border-radius: 0 0 22px 0; }
[dir="ltr"] .detail-gallery-side:nth-child(3) { border-radius: 0 22px 0 0; }
[dir="ltr"] .detail-gallery-side:nth-child(5) { border-radius: 0 0 22px 0; }
.detail-gallery-side img, .detail-gallery-side .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.detail-content {
  max-width: 1120px;
  margin: 0 auto;
  padding: 24px 24px;
  display: grid;
  grid-template-columns: 1fr 370px;
  gap: 40px;
}
.detail-info h1 {
  font-size: 32px;
  font-weight: 800;
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}
.detail-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--gray-600);
  font-size: 15px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.detail-meta-dot { color: var(--gray-300); }
.detail-host {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px 0;
  border-top: 1px solid var(--gray-200);
  border-bottom: 1px solid var(--gray-200);
  margin-bottom: 24px;
}
.detail-host-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--blue-800);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
}
.detail-host-info h3 { font-size: 17px; font-weight: 600; }
.detail-host-info p { font-size: 14px; color: var(--gray-500); }
.detail-desc {
  font-size: 16px;
  color: var(--gray-700);
  line-height: 1.8;
  margin-bottom: 32px;
}
.detail-amenities-title {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 16px;
}
.detail-amenities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}
.amenity-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--gray-50);
  border-radius: var(--radius-sm);
  font-size: 15px;
}
.amenity-icon { font-size: 20px; }

/* Booking Card */
.booking-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(255,255,255,0.92));
  border: 1px solid rgba(255,255,255,0.8);
  border-radius: 22px;
  padding: 28px;
  box-shadow: 0 22px 56px rgba(15, 23, 42, 0.12);
  position: sticky;
  top: 96px;
  z-index: 40;
  backdrop-filter: saturate(150%) blur(14px);
  -webkit-backdrop-filter: saturate(150%) blur(14px);
}

.checkout-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 28px;
  padding: 14px 18px;
  border-radius: 14px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  box-shadow: var(--shadow-sm);
}
.checkout-step {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-400);
  min-width: 0;
}
.checkout-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  background: var(--gray-100);
  color: var(--gray-500);
  flex-shrink: 0;
  transition: background var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast);
}
.checkout-step.is-done { color: var(--gray-700); }
.checkout-step.is-done .checkout-step-num {
  background: var(--green-500);
  color: #fff;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.35);
}
.checkout-step.is-current { color: var(--navy); }
.checkout-step.is-current .checkout-step-num {
  background: var(--navy);
  color: var(--gold);
  box-shadow: 0 2px 10px rgba(26, 45, 90, 0.35);
}
.checkout-step.is-future { color: var(--gray-400); }
.checkout-step.is-future .checkout-step-num {
  background: var(--gray-100);
  color: var(--gray-400);
  box-shadow: none;
}
.checkout-step-connector {
  width: 28px;
  height: 2px;
  background: var(--gray-200);
  flex-shrink: 0;
  border-radius: 1px;
  transition: background var(--motion-base) var(--ease-standard);
}
.checkout-step-connector.is-done {
  background: color-mix(in srgb, var(--green-500) 55%, var(--gray-200));
}
#detail-about, #detail-amenities, #detail-reviews, #detail-location { scroll-margin-top: 104px; }
.host-dash-region {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.host-dash-region-title {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gray-500);
  margin: 0;
  padding: 0 2px;
}
.host-dash-region + .host-dash-region {
  margin-top: 8px;
  padding-top: 20px;
  border-top: 1px solid var(--gray-200);
}
.host-dash-empty-hint {
  font-size: 14px;
  color: var(--gray-600);
  line-height: 1.55;
  padding: 16px 18px;
  border-radius: 14px;
  background: var(--white);
  border: 1px dashed var(--gray-300);
}
.booking-price {
  font-size: 28px;
  font-weight: 800;
  color: var(--blue-800);
  margin-bottom: 24px;
  letter-spacing: -0.02em;
}
.booking-price span { font-size: 16px; font-weight: 400; color: var(--gray-500); }
.booking-dates {
  border: 1px solid var(--gray-300);
  border-radius: 12px;
  margin-bottom: 16px;
  overflow: hidden;
  background: rgba(248, 250, 252, 0.8);
  transition: box-shadow var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard);
}
.booking-dates-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}
.booking-dates-row .booking-date-divider {
  display: flex; align-items: center; justify-content: center;
  color: var(--gray-300); font-size: 14px; padding: 0 2px;
  border-left: 1px solid var(--gray-200);
  border-right: 1px solid var(--gray-200);
}
.booking-date-field {
  padding: 10px 14px;
}
.booking-date-field label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--gray-800);
  margin-bottom: 4px;
}
.booking-date-field input {
  border: none;
  outline: none;
  font-size: 14px;
  color: var(--gray-600);
  width: 100%;
  background: none;
}
.booking-guests {
  padding: 12px 16px;
  border-top: 2px solid var(--gray-200);
}
.booking-guests label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--gray-800);
  margin-bottom: 4px;
}
.booking-guests select {
  border: none;
  outline: none;
  font-size: 14px;
  color: var(--gray-600);
  width: 100%;
  background: none;
}
.booking-submit {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--blue-900);
  border-radius: var(--radius);
  font-size: 17px;
  font-weight: 700;
  transition: transform .25s var(--ease-apple), box-shadow .25s var(--ease-apple);
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
/* Handoff: gold shimmer sweep on reserve button hover */
.booking-submit::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.55) 50%, transparent 65%);
  transform: translateX(-120%);
  pointer-events: none;
  z-index: 0;
}
.booking-submit:hover::before {
  transform: translateX(120%);
  transition: transform .6s var(--ease-apple);
}
.booking-submit:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(245,197,24,.3); }
.booking-submit > * { position: relative; z-index: 1; }
.booking-breakdown { margin-top: 12px; }
.booking-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 15px;
  color: var(--gray-600);
}
.booking-total {
  display: flex;
  justify-content: space-between;
  padding: 16px 0 0;
  margin-top: 8px;
  border-top: 1px solid var(--gray-200);
  font-size: 17px;
  font-weight: 700;
  color: var(--gray-900);
}

/* === LIST PROPERTY PAGE === */
.list-page {
  padding-top: 104px;
  max-width: 800px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
  padding-bottom: 60px;
}
.list-page h1 {
  font-size: 32px;
  font-weight: 800;
  margin-bottom: 8px;
}
.list-page .subtitle {
  color: var(--gray-500);
  font-size: 16px;
  margin-bottom: 40px;
}
.list-step {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 32px;
  margin-bottom: 24px;
  border: 1px solid var(--gray-200);
}
.list-step h3 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.list-step-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--blue-800);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.img-upload-area {
  border: 2px dashed var(--gray-300);
  border-radius: var(--radius);
  padding: 40px;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
}
.img-upload-area:hover { border-color: var(--blue-500); background: var(--blue-50); }
.img-upload-icon { font-size: 48px; margin-bottom: 12px; color: var(--gray-400); }
.amenities-checkboxes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.amenity-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 2px solid var(--gray-200);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: var(--transition);
  font-size: 14px;
}
.amenity-checkbox:hover { border-color: var(--blue-500); }
.amenity-checkbox.checked { border-color: var(--blue-800); background: var(--blue-50); }
.amenity-checkbox input { display: none; }

/* === SEARCH RESULTS (Split View) === */
.search-page { padding-top: 80px; min-height: calc(100dvh - 80px); display: flex; flex-direction: column; }
.search-filters-bar {
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  padding: 12px 24px;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 1200;
}
.search-filters-inner {
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  overflow: visible;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.search-filters-inner::-webkit-scrollbar { display: none; }

.search-primary-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.search-summary-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: min(100%, 280px);
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-frosted);
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  text-align: start;
  font-family: inherit;
  transition: box-shadow var(--motion-base) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
}
.search-summary-pill:hover {
  border-color: rgba(46, 74, 142, 0.22);
  box-shadow: 0 12px 36px rgba(15, 23, 42, 0.09);
}
.search-summary-pill:focus-visible {
  outline: 2px solid var(--blue-500);
  outline-offset: 2px;
}
.search-summary-pill.is-expanded {
  border-color: var(--blue-500);
  box-shadow: 0 0 0 3px rgba(46, 74, 142, 0.12);
}
.search-summary-pill-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.search-summary-pill-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--gray-900);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.search-summary-pill-meta {
  font-size: 12px;
  color: var(--gray-500);
  font-weight: 500;
}
.search-summary-pill-chevron {
  flex-shrink: 0;
  color: var(--gray-400);
  transition: transform var(--motion-base) var(--ease-standard);
}
.search-summary-pill.is-expanded .search-summary-pill-chevron {
  transform: rotate(180deg);
}
.search-refine-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gray-500);
  width: 100%;
  margin: 4px 0 8px;
}
.search-refinements-wrap {
  border-top: 1px solid var(--gray-100);
  padding-top: 12px;
  margin-top: 4px;
}

.search-categories-row {
  max-width: 100%;
  margin: 0 auto 10px;
  border-bottom: 1px solid var(--gray-200);
  padding-bottom: 8px;
}
.filter-chip {
  padding: 6px 14px;
  border: 1px solid var(--line-2);
  border-radius: 100px;
  font-size: 12.5px;
  font-weight: 700;
  background: var(--paper);
  color: var(--ink);
  transition: background-color .2s var(--ease-apple), color .2s var(--ease-apple), border-color .2s var(--ease-apple), transform .2s var(--ease-apple);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex-shrink: 0;
}
.filter-chip:hover { border-color: var(--navy); transform: translateY(-1px); }
.filter-chip.active { border-color: var(--navy); background: var(--navy); color: #fff; font-weight: 800; }
.filter-chip .filter-count { background: var(--gold); color: var(--navy); font-size: 10px; font-weight: 800; padding: 1px 6px; border-radius: 10px; margin-inline-start: 4px; }
.filter-chip.active .filter-count { background: var(--gold); color: var(--navy); }

/* Split view container */
.search-split-view {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;
}
.search-list-panel {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
  min-width: 0;
  transition: padding var(--motion-slow) var(--ease-decelerate);
}
.search-map-panel {
  width: 50%;
  flex-shrink: 0;
  position: relative;
  border-inline-start: 1px solid var(--gray-200);
  z-index: 1;
  animation: searchMapPanelIn var(--motion-base) var(--ease-decelerate) both;
}
[dir="rtl"] .search-map-panel {
  animation-name: searchMapPanelInRtl;
}
@keyframes searchMapPanelIn {
  from { opacity: 0; transform: translate3d(16px, 0, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes searchMapPanelInRtl {
  from { opacity: 0; transform: translate3d(-16px, 0, 0); }
  to { opacity: 1; transform: none; }
}
.search-map-panel .leaflet-container { width: 100%; height: 100%; }

/* Leaflet GeoSearch bar overrides for listing map */
.leaflet-control-geosearch {
  width: calc(100% - 20px) !important;
  max-width: none !important;
  margin: 10px !important;
}
.leaflet-control-geosearch form {
  background: var(--white) !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15) !important;
  padding: 0 !important;
  border: 1px solid var(--gray-200) !important;
}
.leaflet-control-geosearch form input {
  height: 44px !important;
  font-size: 15px !important;
  padding: 0 16px !important;
  outline: none !important;
  min-width: 0 !important;
  width: 100% !important;
  font-family: inherit !important;
  border-radius: 12px !important;
}
.leaflet-control-geosearch .results {
  border-radius: 0 0 12px 12px !important;
  font-size: 14px !important;
  max-height: 200px !important;
  overflow-y: auto !important;
}
.leaflet-control-geosearch .results > * {
  padding: 10px 16px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}
.leaflet-control-geosearch a.reset {
  top: 10px !important;
  font-size: 20px !important;
  color: var(--gray-500) !important;
}

.search-results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.search-results-count {
  font-size: 14px;
  color: var(--gray-600);
  font-weight: 500;
}
.search-sort-select {
  padding: 6px 12px;
  border: 1.5px solid var(--gray-200);
  border-radius: 8px;
  font-size: 13px;
  background: var(--white);
  cursor: pointer;
  font-family: inherit;
}
.search-results-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

/* Map price pins */
.map-price-pin {
  position: relative;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.15);
  border-radius: 16px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.18);
  cursor: pointer;
  transition: all 0.15s;
  transform-origin: center bottom;
}
.map-price-pin::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 10px;
  height: 10px;
  transform: translateX(-50%) rotate(45deg);
  background: #fff;
  border-inline-start: 1px solid rgba(15, 23, 42, 0.15);
  border-bottom: 1px solid rgba(15, 23, 42, 0.15);
}
.map-price-pin:hover, .map-price-pin.active {
  background: #0f4ea6;
  color: #fff;
  border-color: #0f4ea6;
  transform: scale(1.08);
  z-index: 999 !important;
}
.map-price-pin:hover::after, .map-price-pin.active::after {
  background: #0f4ea6;
  border-inline-start-color: #0f4ea6;
  border-bottom-color: #0f4ea6;
}

/* Filter modal/dropdown */
@keyframes filterDropdownIn {
  from { opacity: 0; transform: translateY(6px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.filter-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  inset-inline-start: 0;
  background: var(--surface-card-strong);
  border-radius: 16px;
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-premium);
  padding: 20px;
  z-index: 3500;
  min-width: 320px;
  transform-origin: top center;
  animation: filterDropdownIn var(--motion-base) var(--ease-decelerate) both;
}
[dir="rtl"] .filter-dropdown {
  transform-origin: top right;
}
[dir="ltr"] .filter-dropdown {
  transform-origin: top left;
}
.filter-dropdown-wide { min-width: 500px; }
.filter-section-title { font-size: 14px; font-weight: 700; color: var(--gray-800); margin-bottom: 12px; }
.filter-section { margin-bottom: 20px; }
.filter-section:last-child { margin-bottom: 0; }

/* Price range slider */
.price-range-container { padding: 0 8px; }
.price-range-inputs {
  display: flex;
  gap: 12px;
  align-items: center;
}
.price-range-input {
  flex: 1;
  padding: 10px 12px;
  border: 1.5px solid var(--gray-200);
  border-radius: 10px;
  font-size: 14px;
  font-family: inherit;
  text-align: center;
}
.price-range-input:focus { border-color: var(--blue-500); outline: none; }
.price-range-divider { color: var(--gray-400); font-weight: 600; }
.price-range-slider { width: 100%; margin: 16px 0 8px; accent-color: var(--blue-800); }

/* Room counter in filters */
.filter-counter-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--gray-100);
}
.filter-counter-row:last-child { border-bottom: none; }
.filter-counter-label { font-size: 14px; font-weight: 500; }
.filter-counter-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}
.filter-counter-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--gray-300);
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
}
.filter-counter-btn:hover { border-color: var(--blue-500); }
.filter-counter-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.filter-counter-value { min-width: 24px; text-align: center; font-weight: 600; font-size: 15px; }

/* Amenity filter checkboxes */
.filter-amenity-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.filter-amenity-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1.5px solid var(--gray-200);
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.15s;
}
.filter-amenity-item:hover { border-color: var(--blue-400); background: var(--blue-50); }
.filter-amenity-item.selected { border-color: var(--blue-800); background: var(--blue-50); font-weight: 600; }

/* Filter action buttons */
.filter-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 16px;
  border-top: 1px solid var(--gray-200);
  margin-top: 16px;
}
.filter-clear-btn {
  background: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-600);
  text-decoration: underline;
  cursor: pointer;
}
.filter-apply-btn {
  padding: 10px 24px;
  background: var(--blue-800);
  color: #fff;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  display: none;
}
.filter-apply-btn:hover { background: var(--blue-900); }

/* Guest selector dropdown */
.guest-selector-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  background: var(--white);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
  padding: 20px;
  z-index: 200;
  min-width: 320px;
  animation: slideDown 0.2s ease;
}
.guest-type-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--gray-100);
}
.guest-type-row:last-child { border-bottom: none; }
.guest-type-info h4 { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.guest-type-info p { font-size: 12px; color: var(--gray-500); }

/* Photo carousel on property card */
.card-carousel { position: relative; width: 100%; height: 100%; overflow: hidden; }
.card-carousel-inner { display: flex; height: 100%; transition: transform 0.68s cubic-bezier(0.22, 1, 0.36, 1); }
.card-carousel-inner img { min-width: 100%; height: 100%; object-fit: cover; }
.card-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.9);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 5;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.property-card:hover .card-carousel-btn { opacity: 1; }
.card-carousel-btn.prev { left: 8px; }
[dir="rtl"] .card-carousel-btn.prev { left: auto; right: 8px; }
.card-carousel-btn.next { right: 8px; }
[dir="rtl"] .card-carousel-btn.next { right: auto; left: 8px; }
.card-carousel-dots {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 4px;
}
.card-carousel-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  transition: all 0.2s;
}
.card-carousel-dot.active { background: #fff; transform: scale(1.2); }

/* Price breakdown tooltip */
.price-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  background: var(--white);
  border-radius: 12px;
  padding: 12px 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  font-size: 13px;
  min-width: 220px;
  z-index: 50;
  animation: slideDown 0.15s ease;
}
.price-tooltip-row {
  display: flex;
  justify-content: space-between;
  padding: 3px 0;
  color: var(--gray-600);
}
.price-tooltip-row.total {
  font-weight: 700;
  color: var(--gray-900);
  border-top: 1px solid var(--gray-200);
  margin-top: 6px;
  padding-top: 8px;
}
/* Toggle between per-night and total */
.price-toggle-btn {
  font-size: 11px;
  color: var(--blue-600);
  background: none;
  cursor: pointer;
  text-decoration: underline;
  padding: 2px 0;
}

/* === USER DASHBOARD === */
.dashboard-page {
  padding-top: 104px;
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
  padding-bottom: 60px;
}
.dashboard-header {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 40px;
}
.dashboard-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--blue-800);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 700;
}
.dashboard-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid var(--gray-200);
  margin-bottom: 32px;
}
.dashboard-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 15px;
  font-weight: 600;
  color: var(--gray-500);
  background: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: var(--transition);
  cursor: pointer;
}
.dashboard-tab:hover { color: var(--navy-900, #1a2d5a); }
.dashboard-tab.active {
  color: var(--navy-900, #1a2d5a);
  border-bottom-color: var(--gold-500, #F5C518);
  font-family: var(--ff-display, inherit);
}
.empty-state {
  text-align: center;
  padding: 60px;
  color: var(--gray-500);
}
.empty-state-icon { font-size: 64px; margin-bottom: 16px; opacity: 0.5; }
.empty-state h3 { font-size: 20px; font-weight: 600; color: var(--gray-700); margin-bottom: 8px; }

/* === TOAST / NOTIFICATIONS === */
.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy-900, #1a2d5a);
  color: var(--white);
  padding: 14px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  font-family: var(--ff-display, inherit);
  letter-spacing: 0.01em;
  z-index: 3000;
  animation: slideUp 0.4s cubic-bezier(0.22, 0.61, 0.36, 1), fadeIn 0.4s ease;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 18px 40px rgba(26, 45, 90, 0.32);
  border: 1px solid rgba(245, 197, 24, 0.25);
}
.toast.success { background: var(--green-500); }
.toast.error { background: var(--red-500); }

/* === PHOTO LIGHTBOX === */
.lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.95);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.2s ease;
}
.lightbox-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  border: none;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: background 0.2s;
}
[dir="rtl"] .lightbox-close { right: auto; left: 16px; }
.lightbox-close:hover { background: var(--gold-500, #F5C518); color: var(--navy-900, #1a2d5a); }
.lightbox-img {
  max-width: 90vw;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 8px;
  user-select: none;
}
.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: none;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.lightbox-nav:hover { background: rgba(245, 197, 24, 0.35); color: var(--gold-500, #F5C518); }
.lightbox-nav.prev { left: 20px; }
.lightbox-nav.next { right: 20px; }
[dir="rtl"] .lightbox-nav.prev { left: auto; right: 20px; }
[dir="rtl"] .lightbox-nav.next { right: auto; left: 20px; }
.lightbox-counter {
  color: rgba(255,255,255,0.7);
  font-size: 14px;
  margin-top: 16px;
  font-weight: 500;
}
.lightbox-thumbs {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
  max-width: 90vw;
  padding: 4px;
}
.lightbox-thumb {
  width: 60px;
  height: 45px;
  border-radius: 6px;
  object-fit: cover;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.2s;
  border: 2px solid transparent;
  flex-shrink: 0;
}
.lightbox-thumb.active { opacity: 1; border-color: var(--gold-500); }
.lightbox-thumb:hover { opacity: 0.8; }

/* === DETAIL PAGE GALLERY (clickable) === */
.detail-gallery img { cursor: pointer; transition: opacity 0.2s; }
.detail-gallery img:hover { opacity: 0.9; }
.detail-gallery-show-all {
  position: absolute;
  bottom: 16px;
  right: 16px;
  padding: 8px 16px;
  background: rgba(255,255,255,0.95);
  border: 1px solid var(--gray-300);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: var(--gray-800);
  backdrop-filter: blur(4px);
}
[dir="rtl"] .detail-gallery-show-all { right: auto; left: 16px; }

/* === HIGHLIGHTS BADGES === */
.detail-highlights {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 16px 0;
}
.highlight-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  background: linear-gradient(135deg, #f8f9ff 0%, #f0f4ff 100%);
  border: 1px solid var(--blue-100, #dbeafe);
  border-radius: 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--blue-800, #1e3a5f);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  transition: transform 0.15s, box-shadow 0.15s;
}
.highlight-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0,0,0,0.08);
}
.highlight-badge-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

/* === SLEEPING ARRANGEMENTS === */
.sleeping-grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 8px 0;
}
.sleeping-room-card {
  min-width: 200px;
  padding: 20px;
  border: 1px solid var(--gray-200);
  border-radius: 16px;
  text-align: center;
  flex-shrink: 0;
}
.sleeping-room-icon { font-size: 32px; margin-bottom: 8px; }
.sleeping-room-title { font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.sleeping-room-desc { font-size: 12px; color: var(--gray-500); }

/* === AMENITIES MODAL === */
.amenities-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 5000;
  background: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fadeIn 0.2s ease;
}
.amenities-modal {
  background: var(--white);
  border-radius: 20px;
  max-width: 600px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  animation: slideUp 0.3s ease;
}
.amenities-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--gray-200);
  position: sticky;
  top: 0;
  background: var(--white);
  z-index: 1;
  border-radius: 20px 20px 0 0;
}
.amenities-modal-header h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy-900, #1a2d5a);
  font-family: var(--ff-display, inherit);
  letter-spacing: -0.01em;
}
.amenities-category-title {
  color: var(--navy-900, #1a2d5a);
  font-family: var(--ff-display, inherit);
  letter-spacing: -0.005em;
}
.amenities-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: var(--gray-100);
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.amenities-modal-body { padding: 24px; }
.amenities-category { margin-bottom: 24px; }
.amenities-category-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
  text-transform: capitalize;
}
.amenities-category-list { display: flex; flex-direction: column; gap: 8px; }
.amenity-modal-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--gray-100);
  font-size: 14px;
}
.amenity-modal-item:last-child { border-bottom: none; }

/* === STICKY BOOKING CARD === */
.booking-card-sticky {
  position: sticky;
  top: 84px;
  align-self: flex-start;
}

/* === CHECKOUT PAGE === */
.checkout-page {
  padding-top: 84px;
  max-width: 1100px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
  padding-bottom: 60px;
}
.checkout-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  align-items: start;
}
.checkout-section {
  background: var(--white);
  border-radius: 16px;
  padding: 24px;
  border: 1px solid var(--gray-200);
  margin-bottom: 20px;
}
.checkout-section-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--gray-900);
}
.checkout-property-card {
  display: flex;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--gray-200);
  margin-bottom: 20px;
}
.checkout-property-img {
  width: 140px;
  height: 100px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
}
.checkout-property-info h3 { font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.checkout-property-info p { font-size: 13px; color: var(--gray-500); margin-bottom: 2px; }
.checkout-trip-dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.checkout-date-box {
  padding: 14px 16px;
  background: var(--gray-50);
  border-radius: 12px;
  border: 1px solid var(--gray-200);
}
.checkout-date-box label { display: block; font-size: 11px; font-weight: 700; color: var(--gray-500); margin-bottom: 4px; text-transform: uppercase; }
.checkout-date-box span { font-size: 15px; font-weight: 700; color: var(--gray-900); }
.checkout-message-input {
  width: 100%;
  padding: 14px 16px;
  border: 1.5px solid var(--gray-200);
  border-radius: 12px;
  font-family: inherit;
  font-size: 14px;
  resize: vertical;
  min-height: 100px;
}
.checkout-message-input:focus { border-color: var(--blue-500); outline: none; }
.checkout-rules-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: var(--gray-50);
  border-radius: 12px;
  cursor: pointer;
}
.checkout-rules-check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--blue-800); }
.checkout-rules-text { font-size: 13px; color: var(--gray-700); line-height: 1.6; }

/* Payment option cards */
.payment-option {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 2px solid var(--gray-200);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s;
  margin-bottom: 10px;
}
.payment-option:hover { border-color: var(--blue-400); }
.payment-option.selected { border-color: var(--blue-800); background: var(--blue-50); }
.payment-option-radio {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.payment-option.selected .payment-option-radio { border-color: var(--blue-800); }
.payment-option.selected .payment-option-radio::after { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--blue-800); }
.payment-option-info h4 { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.payment-option-info p { font-size: 12px; color: var(--gray-500); }

/* Checkout price summary (right sidebar) */
.checkout-summary {
  position: sticky;
  top: 84px;
}
.checkout-summary-card {
  background: var(--white);
  border-radius: 16px;
  padding: 24px;
  border: 1px solid var(--gray-200);
  box-shadow: var(--shadow);
}
.checkout-pay-btn {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, var(--blue-800), var(--blue-900));
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
  margin-top: 16px;
}
.checkout-pay-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
.checkout-pay-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.checkout-main { min-width: 0; }
.checkout-sidebar { position: sticky; top: 92px; }

/* Payment option cards */
.payment-option-card {
  padding: 16px 20px;
  border: 2px solid var(--gray-200);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s;
}
.payment-option-card:hover { border-color: var(--blue-400); background: var(--blue-50); }
.payment-option-card.selected { border-color: var(--blue-700); background: var(--blue-50); }
.payment-option-card.disabled { opacity: 0.5; cursor: not-allowed; }

/* Sleeping arrangement cards */
.sleeping-card {
  min-width: 160px;
  padding: 24px 20px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  text-align: center;
  flex-shrink: 0;
  transition: all 0.2s;
}
.sleeping-card:hover { border-color: var(--blue-400); box-shadow: var(--shadow); }

/* === RESPONSIVE === */
@media (max-width: 1024px) {
  .destinations-grid { grid-template-columns: repeat(2, 1fr); }
  .dest-card:first-child { grid-column: span 2; height: 300px; }
  .how-grid { grid-template-columns: 1fr; gap: 20px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-content { grid-template-columns: 1fr; }
  .booking-card { position: static; }
  .detail-gallery { height: 350px; }
  .search-map-panel { width: 45%; }
  .search-results-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .filter-dropdown-wide { min-width: 360px; }
}
@media (max-width: 768px) {
  .hero h1 { font-size: 32px; }
  .hero p { font-size: 16px; }
  .hero-search { flex-direction: column; }
  .hero-search-divider { width: 100%; height: 1px; margin: 0; }
  .destinations-grid { grid-template-columns: 1fr; }
  .dest-card:first-child { grid-column: span 1; height: 280px; }
  .nav-search-bar { display: none; }
  .search-map-panel { display: none; }
  .search-split-view { flex-direction: column; min-height: auto; }
  .search-list-panel { height: auto; min-height: auto; overflow: visible; }
  .search-page { min-height: auto; }
  .search-filters-bar { padding: 10px 12px; }
  .search-categories-row { margin-bottom: 8px; padding-bottom: 6px; }
  .search-results-grid { grid-template-columns: 1fr; }
  .filter-dropdown { left: 0; right: 0; min-width: auto; position: fixed; bottom: 0; top: auto; border-radius: 16px 16px 0 0; max-height: 70vh; overflow-y: auto; }
  .filter-dropdown-wide { min-width: auto; }
  .guest-selector-dropdown { left: 0; right: 0; min-width: auto; }
  .filter-amenity-grid { grid-template-columns: 1fr; }
  .properties-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .detail-gallery { grid-template-columns: 1fr; height: auto; }
  .detail-gallery-main { grid-row: span 1; height: 300px; }
  .detail-gallery-side { height: 150px; }
  .detail-share-cta { padding: 8px 12px; font-size: 13px; }
  .detail-share-cta-note { font-size: 10px; }
  .form-row { grid-template-columns: 1fr; }
  .amenities-checkboxes { grid-template-columns: repeat(2, 1fr); }
  .stats-bar { gap: 28px; padding: 32px 0 4px; }
  .footer-grid { grid-template-columns: 1fr; }
  .section-title { font-size: 24px; }
  .checkout-grid { grid-template-columns: 1fr; }
  .checkout-summary { position: static; }
  .checkout-sidebar { position: static; }
  .booking-card-sticky { position: static; }
  .lightbox-nav { width: 36px; height: 36px; font-size: 16px; }
  .lightbox-nav.prev { left: 8px; }
  .lightbox-nav.next { right: 8px; }
  .checkout-property-card { flex-direction: column; }
  .checkout-property-img { width: 100%; height: 180px; }
}

/* === MOBILE BOTTOM NAVIGATION === */
.mobile-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--white);
  border-top: 1px solid var(--gray-200);
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 1000;
  display: none;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
}
.mobile-nav-items {
  display: flex;
  width: 100%;
  justify-content: space-around;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.mobile-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px 0 6px;
  min-height: 44px;
  gap: 2px;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--gray-500);
  font-size: 12px;
  font-weight: 500;
  transition: color 0.2s ease;
}
.mobile-nav-item:active { background: var(--gray-50); }
.mobile-nav-item.active { color: var(--blue-600); }
.mobile-nav-item-icon { font-size: 22px; line-height: 1; }
.mobile-nav-item-label { font-size: 10px; white-space: nowrap; }

@media (min-width: 769px) {
  .mobile-bottom-nav { display: none !important; }
}

/* === MOBILE RESPONSIVE === */
@media (max-width: 768px) {
  body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav { display: flex; }
  .properties-grid { grid-template-columns: 1fr; gap: 20px; }
  .hero-search { flex-direction: column; gap: 10px; padding: 16px; }
  .hero-search-field { width: 100%; }
  .hero-search-divider { width: 100%; height: 1px; margin: 0; }
  .hero-search-btn { width: 100%; }
  .detail-gallery { grid-template-columns: 1fr; height: auto; }
  .detail-gallery-main { grid-row: span 1; height: 260px; }
  .detail-gallery-side { display: none; }
  .detail-content { grid-template-columns: 1fr; gap: 16px; }
  .booking-card { position: static; width: 100%; margin: 0; padding: 16px; border-radius: 0; border-top: 1px solid var(--gray-200); margin-bottom: 60px; }
  .hero-search-dock { position: relative !important; top: auto; }
  .detail-sticky-reserve-bar { top: 48px; }
  .detail-sticky-reserve-inner { padding: 8px 12px; }
  .detail-sticky-reserve-inner > div:first-child { display: none; }
  .dashboard-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; }
  .dashboard-tab { flex-shrink: 0; white-space: nowrap; }
  .messages-layout { grid-template-columns: 1fr; }
  .navbar { padding: 10px 16px; }
  .nav-logo { font-size: 18px; }
  .nav-logo img, .nav-logo video { height: 44px; border-radius: 9px; }
  h1 { font-size: 24px; }
  .hero h1 { font-size: 26px; }
  .hero p { font-size: 13px; }
  .section-title { font-size: 20px; }
  .footer { padding: 24px 16px 80px 16px; }
  .footer-grid { grid-template-columns: 1fr; gap: 20px; }
  button, a { min-height: 44px; }
  input[type="text"], input[type="email"], input[type="password"], input[type="date"], input[type="number"], textarea, select { min-height: 44px; font-size: 16px; }
  .amenities-checkboxes { grid-template-columns: repeat(2, 1fr); }
  .form-row { grid-template-columns: 1fr; }
}


/* ============ source <style> block #2 ============ */

  /* Default icon sizing — override inline if needed */
  .ic { width: 20px; height: 20px; display: inline-block; vertical-align: middle; flex-shrink: 0; }
  .ic-sm { width: 14px; height: 14px; }
  .ic-md { width: 18px; height: 18px; }
  .ic-lg { width: 28px; height: 28px; }



/* ══════════════════════════════════════════════════════════════════════════
 * YASSIR HANDOFF v2 · ADDENDUM — components missing from live DOM
 * Derived directly from live screenshots (user menu open, lang modal, curr modal).
 * Added 2026-04-19. Use these exact class names; do not invent.
 * ══════════════════════════════════════════════════════════════════════════ */

/* ── User menu dropdown (opens from .user-menu-btn avatar) ─────────────── */
.user-menu-popover{
  position:absolute; top:calc(100% + 8px);
  min-width:240px;
  background:var(--white); border:1px solid var(--line);
  border-radius:14px; box-shadow:var(--shadow-lg);
  padding:6px 0; z-index:120;
  font-family:var(--ff);
  animation: filterDropdownIn var(--motion-base) var(--ease-decelerate) both;
}
[dir="rtl"] .user-menu-popover{ left:auto; right:0; transform-origin:top right; }
[dir="ltr"] .user-menu-popover{ left:0; right:auto; transform-origin:top left; }

.user-menu-head{
  display:flex; flex-direction:column; gap:2px;
  padding:12px 16px 10px;
  border-bottom:1px solid var(--line-3);
}
.user-menu-head-name{ font-weight:700; font-size:14px; color:var(--gray-900); line-height:1.2; }
.user-menu-head-email{ font-size:12px; color:var(--muted); line-height:1.2; }

.user-menu-list{ display:flex; flex-direction:column; padding:6px 0; }
.user-menu-item{
  display:block; width:100%; text-align:inherit;
  padding:10px 16px; font-size:14px; color:var(--gray-800);
  background:none; border:none; cursor:pointer; font-family:inherit;
  transition: background-color var(--motion-fast) var(--ease-standard);
}
.user-menu-item:hover{ background:var(--gray-50); }
.user-menu-item.is-destructive{ color:var(--danger); border-top:1px solid var(--line-3); margin-top:4px; }
.user-menu-item.is-destructive:hover{ background:#fef2f2; }

/* ── Avatar status dot (online/verified small badge on avatar) ─────────── */
.user-avatar-status{
  position:absolute; bottom:-2px; inset-inline-end:-2px;
  width:12px; height:12px; border-radius:50%;
  background:var(--success); border:2px solid var(--white);
}

/* ── Language modal cards (open lang picker grid) ──────────────────────── */
/* Note: .lang-card / .lang-currency-modal already exist. We add the
   "1 row / 2 options" layout the live uses. */
.lang-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lang-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  padding:22px 16px; border:1.5px solid var(--line-2); border-radius:12px;
  background:var(--white); cursor:pointer;
  font-family:inherit;
  transition: border-color var(--motion-fast) var(--ease-standard),
              background-color var(--motion-fast) var(--ease-standard);
}
.lang-card:hover{ border-color:var(--navy-lt); }
.lang-card.is-selected{ border-color:var(--navy); background:var(--blue-50); }
.lang-card-name{ font-size:15px; font-weight:700; color:var(--gray-900); }
.lang-card-native{ font-size:12px; color:var(--muted); }

/* ── Currency modal grid (3×N) ─────────────────────────────────────────── */
.curr-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.curr-card{
  display:flex; align-items:center; justify-content:center;
  padding:14px 12px; border:1.5px solid var(--line-2); border-radius:10px;
  background:var(--white); cursor:pointer;
  font-family:var(--mono); font-size:13px; font-weight:700; color:var(--gray-900);
  letter-spacing:0.04em;
  transition: border-color var(--motion-fast) var(--ease-standard),
              background-color var(--motion-fast) var(--ease-standard);
}
.curr-card:hover{ border-color:var(--navy-lt); }
.curr-card.is-selected{ border-color:var(--navy); background:var(--blue-50); color:var(--navy); }
.curr-auto-link{
  display:block; margin-top:16px; text-align:center;
  font-size:12px; color:var(--muted); text-decoration:underline;
  cursor:pointer;
}

/* ── Modal close X (reusable, absolute top-left in RTL) ────────────────── */
.modal-close-x{
  position:absolute; top:14px; inset-inline-start:14px;
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:none; cursor:pointer;
  color:var(--gray-700); font-size:20px; line-height:1;
  transition: background-color var(--motion-fast) var(--ease-standard);
}
.modal-close-x:hover{ background:var(--gray-100); }

/* ============================================================
   Currency modal (.ys-cm__*)
   ============================================================ */
.ys-cm__backdrop{
  position:fixed; inset:0; z-index:1000;
  background:rgba(26,45,90,.55);
  backdrop-filter:blur(4px);
  display:grid; place-items:center;
  padding:24px;
  animation:ys-cm-fade .15s ease-out;
}
@keyframes ys-cm-fade{from{opacity:0}to{opacity:1}}
@keyframes ys-cm-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.ys-cm__card{
  width:100%; max-width:480px;
  background:#fff; border-radius:20px;
  padding:24px 24px 20px;
  box-shadow:0 24px 64px -12px rgba(15,29,64,.35);
  font-family:var(--ff,"Cairo","Inter Tight",sans-serif);
  color:var(--navy,#1a2d5a);
  max-height:calc(100vh - 48px); overflow-y:auto;
  animation:ys-cm-pop .18s cubic-bezier(.2,.8,.2,1);
}

.ys-cm__head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:16px; margin-bottom:18px;
  border-bottom:1px solid #EEF0F6;
}
.ys-cm__title{font-size:20px; font-weight:800; margin:0}
.ys-cm__close{
  width:36px; height:36px; border-radius:50%;
  background:#F1F3FA; color:var(--navy,#1a2d5a);
  border:0; cursor:pointer;
  display:grid; place-items:center;
  transition:background .15s;
}
.ys-cm__close:hover{background:#E5E8F2}

.ys-cm__grid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:10px;
}
.ys-cm__tile{
  background:#fff; border:1px solid #E5E8F2; border-radius:14px;
  padding:14px 8px;
  cursor:pointer; font:inherit;
  color:var(--navy,#1a2d5a);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  min-height:60px;
  transition:border-color .15s, background .15s, transform .15s, box-shadow .15s;
}
.ys-cm__tile:hover{
  border-color:#B7BED0;
  transform:translateY(-1px);
  box-shadow:0 6px 16px -8px rgba(15,29,64,.2);
}
.ys-cm__tile .code{
  font-family:"Inter Tight", var(--ff);
  font-size:15px; font-weight:700; letter-spacing:.3px;
}
.ys-cm__tile .sym{
  font-size:11px; color:#8A93A6; font-weight:500;
}
.ys-cm__tile.is-active{
  border-color:var(--navy,#1a2d5a); border-width:2px;
  background:#F3F5FB;
  padding:13px 7px;
}
.ys-cm__tile.is-active .code{color:var(--navy,#1a2d5a)}
.ys-cm__tile:focus-visible{
  outline:2px solid var(--gold,#F5C518);
  outline-offset:2px;
}

.ys-cm__foot{text-align:center; margin-top:18px}
.ys-cm__auto{
  background:none; border:0; cursor:pointer;
  font:inherit; font-size:13px; font-weight:600;
  color:#6B7490; text-decoration:underline;
  text-underline-offset:3px; padding:6px;
}
.ys-cm__auto:hover{color:var(--navy,#1a2d5a)}

@media (max-width:520px){
  .ys-cm__card{padding:20px; border-radius:18px}
  .ys-cm__grid{grid-template-columns:repeat(2, 1fr); gap:10px}
  .ys-cm__tile{min-height:56px}
}

/* ============================================================
   Language modal (.ys-lm__*)
   ============================================================ */
.ys-lm__backdrop{
  position:fixed; inset:0; z-index:1000;
  background:rgba(26,45,90,.55);
  backdrop-filter:blur(4px);
  display:grid; place-items:center;
  padding:24px;
  animation:ys-cm-fade .15s ease-out;
}
.ys-lm__card{
  width:100%; max-width:420px;
  background:#fff; border-radius:20px;
  padding:24px 24px 20px;
  box-shadow:0 24px 64px -12px rgba(15,29,64,.35);
  font-family:var(--ff,"Cairo","Inter Tight",sans-serif);
  color:var(--navy,#1a2d5a);
  max-height:calc(100vh - 48px); overflow-y:auto;
  animation:ys-cm-pop .18s cubic-bezier(.2,.8,.2,1);
}
.ys-lm__head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:16px; margin-bottom:18px;
  border-bottom:1px solid #EEF0F6;
}
.ys-lm__title{font-size:20px; font-weight:800; margin:0}
.ys-lm__close{
  width:36px; height:36px; border-radius:50%;
  background:#F1F3FA; color:var(--navy,#1a2d5a);
  border:0; cursor:pointer;
  display:grid; place-items:center;
  transition:background .15s;
}
.ys-lm__close:hover{background:#E5E8F2}
.ys-lm__grid{
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:12px;
}
.ys-lm__tile{
  background:#fff; border:1px solid #E5E8F2; border-radius:14px;
  padding:16px 10px;
  cursor:pointer; font:inherit;
  color:var(--navy,#1a2d5a);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  min-height:84px;
  transition:border-color .15s, background .15s, transform .15s, box-shadow .15s;
}
.ys-lm__tile:hover{
  border-color:#B7BED0;
  transform:translateY(-1px);
  box-shadow:0 6px 16px -8px rgba(15,29,64,.2);
}
.ys-lm__tile .code{
  font-family:"Inter Tight", var(--ff);
  font-size:15px; font-weight:700; letter-spacing:.3px;
}
.ys-lm__tile .name{
  font-size:13px; font-weight:700;
}
.ys-lm__tile .helper{
  font-size:11px; color:#8A93A6; font-weight:500;
}
.ys-lm__tile.is-active{
  border-color:var(--navy,#1a2d5a); border-width:2px;
  background:#F3F5FB;
  padding:15px 9px;
}
.ys-lm__tile:focus-visible{
  outline:2px solid var(--gold,#F5C518);
  outline-offset:2px;
}
