
  /* ═══════════════════════════════════════
     DESIGN TOKENS
  ═══════════════════════════════════════ */
  :root {
    --saffron:     #FF6B00; --saffron-lt: #FF8C38; --saffron-dk: #D45A00; --saffron-pale: #FFF3E8;
    --blue:        #002147; --blue-lt: #003470;  --blue-pale: #EBF1FA;
    --gold:        #FFD700; --gold-lt: #FFE566;  --gold-dk: #B8960A; --gold-pale: #FFF9DC;
    --bg:          #FFFDF8; --bg-2: #FFF8EE;
    --panel:       #FFFFFF; --panel-2: #FFF9F3;
    --text:        #1A1008; --text-2: #3D2A14; --muted: #795843;
    --line:        #E8D5B8; --line-2: #F0E4D0;
    --brand:       #FF6B00; --brand-2: #FF8C38;
    --accent:      #002147;
    --success:     #16A34A; --warning: #F59E0B; --danger: #DC2626;
    --radius:      16px; --radius-lg: 24px;
    --shadow:      0 4px 24px rgba(100,50,0,0.09);
    --shadow-md:   0 8px 40px rgba(100,50,0,0.14);
    --shadow-lg:   0 20px 64px rgba(100,50,0,0.18);
    --hdr-h:       84px;
  }
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; overflow-x: hidden; }
  body {
    font-family: "Inter", system-ui, sans-serif;
    color: var(--text); background: var(--bg);
    -webkit-font-smoothing: antialiased; line-height: 1.6; overflow-x: hidden;
  }
  h1,h2,h3,h4,h5,h6 { font-family: "Poppins", sans-serif; font-weight: 700; line-height: 1.2; color: var(--text); }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; height: auto; display: block; }
  button { font-family: inherit; cursor: pointer; }
  .shell { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

  /* ═══════════════════════════════════════
     TRANSPARENT FLOATING NAVBAR
  ═══════════════════════════════════════ */
  .site-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 200;
    transition: background 0.36s cubic-bezier(0.4,0,0.2,1),
                border-color 0.36s ease, box-shadow 0.36s ease;
    background: transparent;
    border-bottom: 1px solid transparent;
  }
  .site-header.hdr-scrolled {
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border-bottom-color: rgba(26,59,122,0.12);
    box-shadow: 0 2px 28px rgba(26,59,122,0.10);
  }
  .site-header.hdr-solid {
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border-bottom-color: rgba(26,59,122,0.10);
    box-shadow: 0 2px 20px rgba(26,59,122,0.08);
  }

  .site-header-bar {
    height: 3px;
    background: linear-gradient(90deg, #1A3B7A 0%, #F5762A 35%, #FFD700 55%, #F5762A 75%, #1A3B7A 100%);
    background-size: 200% 100%;
    animation: hdrShimmer 4s ease-in-out infinite;
  }
  @keyframes hdrShimmer { 0%,100%{background-position:0% 50%;} 50%{background-position:100% 50%;} }

  /* Three true columns (brand / links / actions) via grid — the two 1fr side
     columns are always equal width, so the middle column sits genuinely
     centered in the header rather than just filling whatever space is left
     after the logo (which pushed everything toward the right edge). */
  .header-inner {
    max-width: 1920px; margin: 0 auto; padding: 0 28px;
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; column-gap: 44px;
    min-height: var(--hdr-h); position: relative;
  }

  /* Left grid column — logo + (desktop-only) Kumbh Guide dropdown grouped together. */
  .header-left { grid-column:1; justify-self:start; display:flex; align-items:center; gap:22px; min-width:0; }
  .brand { display:flex; align-items:center; gap:11px; flex-shrink:0; transition:transform 0.2s ease; }
  .brand:hover { transform:translateY(-1px); }
  .brand-logo {
    width:64px; height:64px; border-radius:14px;
    display:grid; place-items:center;
    background:#ffffff;
    box-shadow:0 3px 16px rgba(26,59,122,0.24); flex-shrink:0;
    position:relative; overflow:hidden;
    padding:2px;
  }
  .brand-logo img {
    width:100%; height:100%;
    object-fit:contain; object-position:center;
    display:block;
  }
  .brand-text { display:flex; flex-direction:column; }
  .brand-name {
    font-family:"Poppins",sans-serif; font-size:1.08rem; font-weight:800;
    letter-spacing:-0.01em; line-height:1.1; transition:color 0.3s ease;
    color:#FFFFFF;
  }
  .site-header.hdr-scrolled .brand-name,
  .site-header.hdr-solid    .brand-name { color:var(--blue); }
  .brand-tagline {
    font-size:0.63rem; font-weight:500; transition:color 0.3s ease;
    color:rgba(255,255,255,0.60);
  }
  .site-header.hdr-scrolled .brand-tagline,
  .site-header.hdr-solid    .brand-tagline { color:var(--muted); }

  /* Nav links — grid-column 2, sized to its own content so the two 1fr side
     columns center it in the header regardless of brand/actions width. */
  .nav-links { grid-column:2; justify-self:center; display:flex; align-items:center; gap:2px; flex-wrap:nowrap; min-width:0; }
  .nav-link {
    font-family:"Inter",sans-serif; font-size:0.88rem; font-weight:600;
    padding:9px 13px; border-radius:10px; white-space:nowrap;
    transition:all 0.2s ease; color:rgba(255,255,255,0.88);
  }
  .site-header.hdr-scrolled .nav-link,
  .site-header.hdr-solid    .nav-link { color:var(--text-2); }
  .nav-link:hover { background:rgba(255,255,255,0.14); color:#FFFFFF; }
  .site-header.hdr-scrolled .nav-link:hover,
  .site-header.hdr-solid    .nav-link:hover { background:rgba(255,107,0,0.09); color:var(--saffron); transform:translateY(-1px); }

  /* Nav dropdown ("Kumbh Guide") */
  .nav-dropdown { position:relative; }
  .nav-dropdown-toggle { display:inline-flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer; }
  .nav-caret { transition:transform 0.2s cubic-bezier(0.16, 1, 0.3, 1); flex-shrink:0; }
  .nav-dropdown.open .nav-caret { transform:rotate(180deg); }
  .nav-dropdown-menu {
    display:flex; position:absolute; top:calc(100% + 8px); left:0; min-width:230px;
    background:var(--panel); border:1px solid var(--line); border-radius:14px;
    box-shadow:var(--shadow-md); padding:8px; flex-direction:column; gap:2px; z-index:120;
    opacity:0; pointer-events:none; transform:translateY(-6px) scale(0.98);
    transform-origin:top left;
    transition:opacity 180ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
  }
  .nav-dropdown.open .nav-dropdown-menu { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
  .nav-dropdown-menu-right { left:auto; right:0; min-width:190px; transform-origin:top right; }
  .nav-dropdown-link {
    display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:9px;
    color:var(--text-2) !important; font-size:0.87rem; font-weight:600;
    text-decoration:none; font-family:"Inter",sans-serif;
    transition:background-color 0.15s ease-out, color 0.15s ease-out;
  }
  .nav-dropdown-link:hover { background:rgba(255,107,0,0.09); color:var(--saffron) !important; }
  .nav-dropdown-divider { height:1px; background:var(--line); margin:6px 4px; }
  .nav-dropdown-link-danger:hover { background:rgba(220,38,38,0.09); color:var(--danger) !important; }
  /* Account dropdown toggle carries an avatar icon + username — keep it visually
     distinct from the plain text dropdowns (Kumbh Guide) with a pill background. */
  .nav-dropdown-account .nav-dropdown-toggle {
    padding:6px 13px 6px 10px; border-radius:999px;
    border:1.5px solid rgba(255,255,255,0.28); background:rgba(255,255,255,0.10);
    color:rgba(255,255,255,0.90);
  }
  .site-header.hdr-scrolled .nav-dropdown-account .nav-dropdown-toggle,
  .site-header.hdr-solid    .nav-dropdown-account .nav-dropdown-toggle { border-color:var(--line); background:var(--bg-2); color:var(--text); }

  /* Standalone Dashboard button — always visible next to the Account dropdown,
     not tucked away inside its menu. */
  .nav-btn-dashboard {
    display:inline-flex; align-items:center; gap:7px;
    padding:8px 15px; border-radius:10px; font-weight:700;
    border:1.5px solid rgba(255,215,0,0.38); background:rgba(255,215,0,0.12);
    color:#FFE566 !important;
  }
  .nav-btn-dashboard:hover { background:rgba(255,215,0,0.20); }
  .site-header.hdr-scrolled .nav-btn-dashboard,
  .site-header.hdr-solid    .nav-btn-dashboard { border-color:rgba(184,150,10,0.30); background:var(--gold-pale); color:var(--gold-dk) !important; }
  .site-header.hdr-scrolled .nav-btn-dashboard:hover,
  .site-header.hdr-solid    .nav-btn-dashboard:hover { background:rgba(255,215,0,0.28); }

  /* Auth buttons */
  .nav-btn-register {
    display:inline-flex; align-items:center; gap:8px;
    padding:9px 20px; border-radius:12px; font-weight:700; font-size:0.86rem; font-family:"Inter",sans-serif;
    background:linear-gradient(135deg,var(--saffron),var(--gold-dk));
    color:white; border:none; cursor:pointer; text-decoration:none;
    box-shadow:0 4px 16px rgba(255,107,0,0.36); transition:all 0.25s ease;
  }
  .nav-btn-register:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,107,0,0.50); }
  .nav-btn-login {
    font-family:"Inter",sans-serif; font-size:0.87rem; font-weight:700;
    padding:8px 14px; border-radius:10px; transition:all 0.2s ease; color:rgba(255,255,255,0.90);
  }
  .site-header.hdr-scrolled .nav-btn-login,
  .site-header.hdr-solid    .nav-btn-login { color:var(--saffron); }
  .nav-btn-login:hover { background:rgba(255,255,255,0.14); }
  .site-header.hdr-scrolled .nav-btn-login:hover,
  .site-header.hdr-solid    .nav-btn-login:hover { background:rgba(255,107,0,0.09); }


  /* Header's 3rd grid column — Account/Login, bell, and Kumbh Guide (rightmost),
     pinned to the right regardless of whether .nav-links (column 2) is showing
     or collapsed into the hamburger menu. */
  .header-actions { grid-column:3; justify-self:end; display:flex; align-items:center; gap:10px; }

  .nav-install-btn {
    display:none; align-items:center; gap:6px; padding:8px 14px; border-radius:10px;
    background:linear-gradient(135deg,var(--saffron),var(--saffron-dk)); color:#fff;
    border:none; cursor:pointer; font-weight:700; font-size:0.82rem; font-family:inherit;
    transition:all 0.2s ease; flex-shrink:0;
  }
  .nav-install-btn.visible { display:inline-flex; }
  .nav-install-btn:hover { transform:translateY(-1px); box-shadow:0 4px 14px rgba(255,107,0,0.35); }
  .nav-install-btn svg { width:14px; height:14px; flex-shrink:0; }
  @media (max-width:600px) { .nav-install-btn .nav-install-label { display:none; } .nav-install-btn { padding:8px 10px; } }

  /* Account / Login+Register / Kumbh Guide each exist twice: once inline in
     .nav-links for the mobile hamburger accordion, once in .header-actions for
     the desktop row — only one copy renders at a time per breakpoint. */
  @media (min-width: 1025px) { .only-mobile-nav { display:none !important; } }
  @media (max-width: 1024px) { .only-desktop-actions { display:none !important; } }

  /* Bell — sits outside .nav-links (see header markup) so it stays visible in the
     persistent header bar on mobile, not buried inside the collapsible menu. */
  .nav-utility { position:relative; display:inline-flex; align-items:center; flex-shrink:0; }
  .nav-bell {
    width:38px; height:38px; border-radius:10px; display:grid; place-items:center; padding:0; cursor:pointer;
    border:1.5px solid rgba(255,255,255,0.26); background:rgba(255,255,255,0.10);
    color:rgba(255,255,255,0.88); transition:all 0.2s ease; box-shadow:none; backdrop-filter:blur(6px);
  }
  .site-header.hdr-scrolled .nav-bell,
  .site-header.hdr-solid    .nav-bell { border-color:var(--line); background:var(--panel-2); color:var(--text-2); backdrop-filter:none; }
  .nav-bell:hover { background:rgba(255,255,255,0.22); box-shadow:none; }
  .site-header.hdr-scrolled .nav-bell:hover,
  .site-header.hdr-solid    .nav-bell:hover { background:rgba(255,107,0,0.08); border-color:rgba(255,107,0,0.28); color:var(--saffron); }
  .nav-bell svg { width:17px; height:17px; }
  .nav-bell-count {
    position:absolute; top:-5px; right:-5px; min-width:17px; height:17px; border-radius:999px;
    background:var(--danger); color:white; font-size:0.66rem; font-weight:700;
    display:none; align-items:center; justify-content:center; padding:0 4px;
  }
  .nav-bell-count.visible { display:inline-flex; }
  .notifications-panel {
    position:absolute; top:calc(100% + 10px); right:0;
    width:min(380px,calc(100vw - 36px)); max-height:380px; overflow-y:auto;
    padding:14px; border-radius:18px; border:1px solid var(--line); background:#FFFFFF;
    box-shadow:0 16px 56px rgba(100,50,0,0.18); display:none; z-index:90; color:var(--text);
  }
  .notifications-panel.visible { display:block; }
  .notification-item { padding:12px 14px; border-radius:12px; border:1px solid var(--line-2); background:var(--panel-2); margin-bottom:8px; color:var(--muted); font-size:0.88rem; line-height:1.55; }
  .notification-item:last-child { margin-bottom:0; }
  .notification-item strong { display:block; color:var(--text); margin-bottom:3px; text-transform:capitalize; }
  /* ── Top-right toast stack ── */
  .notification-toasts {
    position:fixed; top:calc(var(--hdr-h) + 12px); right:20px; z-index:9999;
    display:flex; flex-direction:column; gap:10px;
    width:min(380px,calc(100vw - 36px)); pointer-events:none;
  }
  @keyframes toastSlideIn { from{opacity:0;transform:translateX(18px);} to{opacity:1;transform:none;} }
  @keyframes toastFadeOut { from{opacity:1;transform:none;} to{opacity:0;transform:translateX(18px);} }
  .notification-toast {
    pointer-events:auto;
    padding:14px 18px 14px 16px; border-radius:14px; border:1px solid var(--line);
    background:#FFFFFF; color:var(--text);
    box-shadow:0 8px 36px rgba(100,50,0,0.16), 0 2px 10px rgba(100,50,0,0.08);
    font-size:0.88rem; line-height:1.55; position:relative;
    animation:toastSlideIn 0.26s cubic-bezier(0.34,1.1,0.64,1) both;
    border-left:4px solid var(--danger);
  }
  .notification-toast.toast-success { border-left-color:var(--success); }
  .notification-toast.toast-warning { border-left-color:var(--warning); }
  .notification-toast.toast-info    { border-left-color:var(--blue); }
  .notification-toast.toast-out { animation:toastFadeOut 0.22s ease forwards; }
  .notification-toast strong { display:block; margin-bottom:3px; color:var(--danger); font-size:0.78rem; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; }
  .notification-toast.toast-success strong { color:var(--success); }
  .notification-toast.toast-warning strong { color:var(--warning); }
  .notification-toast.toast-info    strong { color:var(--blue); }
  .notification-toast-close {
    position:absolute; top:10px; right:10px; width:20px; height:20px; border-radius:6px;
    display:grid; place-items:center; background:none; border:none; cursor:pointer;
    color:var(--muted); font-size:0.9rem; line-height:1; padding:0;
    transition:background 0.15s; font-family:inherit;
  }
  .notification-toast-close:hover { background:var(--bg-2); color:var(--text); }

  /* ── SOS Left-side Alert Panel ── */
  .sos-alert-panel {
    position:fixed; left:20px; top:calc(var(--hdr-h) + 16px); z-index:9998;
    width:min(320px,calc(100vw - 40px));
    background:linear-gradient(145deg,#1a0505,#2d0808);
    border:2px solid #ef4444; border-radius:20px; padding:20px;
    color:#fff; display:none;
    box-shadow:0 8px 48px rgba(220,38,38,0.55),0 0 0 1px rgba(220,38,38,0.15),0 0 80px rgba(220,38,38,0.12);
    animation:sosPanelIn 0.34s cubic-bezier(0.34,1.1,0.64,1) both;
  }
  .sos-alert-panel.sos-visible { display:block; }
  @keyframes sosPanelIn { from{opacity:0;transform:translateX(-28px) scale(0.96);}to{opacity:1;transform:none;} }
  .sos-alert-panel::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg,#ef4444,#ff6b6b,#ef4444);
    border-radius:20px 20px 0 0; animation:sosPulseLine 1.2s ease-in-out infinite;
  }
  @keyframes sosPulseLine { 0%,100%{opacity:1;}50%{opacity:0.35;} }
  .sos-alert-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .sos-alert-icon { font-size:1.5rem; animation:sosBounce 0.8s ease-in-out infinite alternate; display:block; }
  @keyframes sosBounce { from{transform:scale(1);}to{transform:scale(1.18);} }
  .sos-alert-head strong { flex:1; font-family:"Poppins",sans-serif; font-size:0.95rem; font-weight:900; letter-spacing:0.05em; color:#ff8080; }
  .sos-alert-dismiss {
    width:26px; height:26px; border-radius:8px; border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.07); color:rgba(255,255,255,0.65); font-size:1rem;
    cursor:pointer; display:grid; place-items:center; padding:0;
    transition:background 0.15s; font-family:inherit; flex-shrink:0;
  }
  .sos-alert-dismiss:hover { background:rgba(220,38,38,0.35); color:#fff; }
  .sos-alert-msg { font-size:0.87rem; line-height:1.62; color:rgba(255,255,255,0.78); margin-bottom:16px; }
  .sos-alert-contacts { display:grid; gap:8px; }
  .sos-contact-btn {
    display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px;
    background:rgba(220,38,38,0.18); border:1px solid rgba(220,38,38,0.35);
    color:#fff; font-weight:700; font-size:0.83rem; text-decoration:none;
    transition:all 0.18s ease;
  }
  .sos-contact-btn:hover { background:rgba(220,38,38,0.38); transform:translateX(4px); color:#fff; }
  .sos-contact-ambulance { background:rgba(249,115,22,0.18); border-color:rgba(249,115,22,0.35); }
  .sos-contact-ambulance:hover { background:rgba(249,115,22,0.38); }
  .sos-contact-fire { background:rgba(234,179,8,0.14); border-color:rgba(234,179,8,0.30); }
  .sos-contact-fire:hover { background:rgba(234,179,8,0.28); }
  @media(max-width:600px) { .sos-alert-panel { left:12px; right:12px; width:auto; top:calc(var(--hdr-h) + 10px); } }

  /* Hamburger */
  .nav-hamburger {
    display:none; flex-direction:column; gap:5px; padding:9px;
    border:1.5px solid rgba(255,255,255,0.28); background:rgba(255,255,255,0.10);
    border-radius:10px; cursor:pointer; box-shadow:none; transition:all 0.2s ease; flex-shrink:0; backdrop-filter:blur(6px);
  }
  .site-header.hdr-scrolled .nav-hamburger,
  .site-header.hdr-solid    .nav-hamburger { border-color:var(--line); background:var(--panel-2); backdrop-filter:none; }
  .nav-hamburger:hover { background:rgba(255,255,255,0.22); box-shadow:none; }
  .site-header.hdr-scrolled .nav-hamburger:hover,
  .site-header.hdr-solid    .nav-hamburger:hover { background:rgba(255,107,0,0.08); border-color:rgba(255,107,0,0.28); }
  .nav-hamburger span { display:block; width:20px; height:2px; background:rgba(255,255,255,0.90); border-radius:2px; transition:all 0.3s ease; }
  .site-header.hdr-scrolled .nav-hamburger span,
  .site-header.hdr-solid    .nav-hamburger span { background:var(--text-2); }
  .nav-hamburger.open span:nth-child(1){ transform:rotate(45deg) translate(5px,5px); }
  .nav-hamburger.open span:nth-child(2){ opacity:0; transform:translateX(-8px); }
  .nav-hamburger.open span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px); }

  /* ═══════════════════════════════════════
     PAGE CONTENT (accounts for fixed header)
  ═══════════════════════════════════════ */
  .page-content { min-height: 60vh; padding-top: var(--hdr-h); }

  /* ═══════════════════════════════════════
     GLOBAL BUTTONS
  ═══════════════════════════════════════ */
  .button, button {
    font-family:"Inter",sans-serif; font-weight:700; font-size:0.9rem;
    border:none; border-radius:12px; padding:11px 22px;
    background:linear-gradient(135deg,var(--saffron),var(--saffron-lt));
    color:#FFFFFF; cursor:pointer;
    transition:transform 160ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 160ms ease-out, background 160ms ease-out;
    box-shadow:0 4px 18px rgba(255,107,0,0.28);
    display:inline-flex; align-items:center; gap:8px;
    font-variant-numeric: tabular-nums;
  }
  .button:hover, button:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(255,107,0,0.44); }
  .button:active, button:active { transform:scale(0.97); }
  .button.secondary, button.secondary { background:#FFFFFF; color:var(--blue); border:1.5px solid var(--line); box-shadow:none; }
  .button.secondary:hover, button.secondary:hover { background:var(--bg-2); border-color:rgba(255,107,0,0.40); color:var(--saffron); box-shadow:0 4px 16px rgba(255,107,0,0.12); }
  .button.secondary:active, button.secondary:active { transform:scale(0.97); }

  /* Tabular numbers for jitter-free prices, counters and badges */
  .tabular-nums, [data-count], .jal-card-price, .checkout-item-price,
  .checkout-qty-num, .jal-qty-input, .jal-sticky-total, .jal-sticky-count {
    font-variant-numeric: tabular-nums;
  }

  /* ═══════════════════════════════════════
     CARDS & COMPONENTS
  ═══════════════════════════════════════ */
  .card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); transition:transform 0.25s ease, box-shadow 0.25s ease; }
  .card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
  .section-title { font-family:"Poppins",sans-serif; margin:0 0 10px; font-size:clamp(1.3rem,2vw,1.9rem); color:var(--text); font-weight:700; }
  .section-copy  { color:var(--muted); margin:0; line-height:1.7; font-size:0.93rem; }
  .grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .stack  { display:grid; gap:18px; }
  .badge  { display:inline-flex; align-items:center; gap:6px; width:fit-content; padding:6px 14px; border-radius:999px; background:rgba(255,107,0,0.09); border:1px solid rgba(255,107,0,0.24); color:var(--saffron); font-weight:700; font-size:0.77rem; letter-spacing:0.02em; }
  .muted  { color:var(--muted); }
  .info-list { display:grid; gap:10px; }
  .info-item { padding:14px 16px; border-radius:12px; border:1px solid var(--line-2); background:var(--panel-2); color:var(--muted); font-size:0.9rem; line-height:1.65; }

  /* ═══════════════════════════════════════
     GLOBAL FORM INPUTS (light theme)
  ═══════════════════════════════════════ */
  input[type="text"], input[type="email"], input[type="password"],
  input[type="number"], input[type="tel"], input[type="url"],
  input[type="date"], input[type="time"], select, textarea {
    width:100%; padding:12px 14px; border-radius:12px;
    border:1.5px solid var(--line); background:#FFFFFF; color:var(--text);
    font-family:"Inter",sans-serif; font-size:0.9rem; outline:none;
    transition:border-color 0.2s ease, box-shadow 0.2s ease;
    -webkit-appearance: none; appearance: none;
  }
  input:focus, select:focus, textarea:focus {
    border-color:var(--saffron); box-shadow:0 0 0 3px rgba(255,107,0,0.11);
  }
  input::placeholder, textarea::placeholder { color:var(--muted); }
  label { font-size:0.76rem; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:0.05em; display:block; margin-bottom:6px; }

  /* ═══════════════════════════════════════
     SCROLL REVEAL
  ═══════════════════════════════════════ */
  .reveal { opacity:0; transform:translateY(32px); transition:opacity 0.65s cubic-bezier(0.4,0,0.2,1), transform 0.65s cubic-bezier(0.4,0,0.2,1); }
  .reveal.visible { opacity:1; transform:translateY(0); }
  .reveal-d1{transition-delay:0.08s;} .reveal-d2{transition-delay:0.16s;}
  .reveal-d3{transition-delay:0.24s;} .reveal-d4{transition-delay:0.32s;}

  /* ═══════════════════════════════════════
     FAB GROUP (bottom right — clean pair)
  ═══════════════════════════════════════ */
  .fab-group {
    position: fixed; right: 22px; bottom: 28px;
    display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
    z-index: 80;
  }
  .assistant-sos-toggle {
    width: 58px; height: 58px; border-radius: 50%; position:relative;
    display:grid; place-items:center; padding:0;
    background:linear-gradient(145deg,#ef4444,var(--danger));
    box-shadow:0 6px 20px rgba(220,38,38,0.42), 0 0 0 3px rgba(220,38,38,0.10);
    color:white; border:none; cursor:pointer; transition:all 0.25s ease;
    touch-action:none; /* so a hold-to-confirm press doesn't trigger a scroll on mobile */
  }
  .assistant-sos-toggle:hover { transform:scale(1.12); box-shadow:0 10px 32px rgba(220,38,38,0.58); }
  /* Hold-to-confirm ring — filled by JS via --sos-hold-pct (0-100) while held */
  .sos-hold-ring {
    position:absolute; inset:-5px; border-radius:50%; pointer-events:none;
    background: conic-gradient(#fff calc(var(--sos-hold-pct, 0) * 1%), transparent 0);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
    opacity:0; transition:opacity 0.15s ease;
  }
  .assistant-sos-toggle.holding .sos-hold-ring { opacity:1; }
  .assistant-sos-toggle.holding { animation: sosHoldPulse 0.6s ease-in-out infinite; }
  @keyframes sosHoldPulse {
    0%,100% { box-shadow:0 6px 20px rgba(220,38,38,0.42), 0 0 0 3px rgba(220,38,38,0.10); }
    50%     { box-shadow:0 6px 26px rgba(220,38,38,0.65), 0 0 0 7px rgba(220,38,38,0.22); }
  }
  .assistant-sos-toggle.sos-confirmed { animation: sosFlash 0.55s ease; }
  @keyframes sosFlash {
    0%,100% { background:linear-gradient(145deg,#ef4444,var(--danger)); }
    50%     { background:#ffffff; }
  }
  .assistant-toggle {
    width:58px; height:58px; border-radius:50%; position:static;
    display:grid; place-items:center; padding:0;
    background:linear-gradient(145deg,var(--saffron-lt),var(--saffron-dk));
    box-shadow:0 8px 26px rgba(255,107,0,0.44), 0 0 0 4px rgba(255,107,0,0.12);
    color:white; border:none; cursor:pointer; transition:all 0.25s ease;
  }
  .assistant-toggle:hover { transform:scale(1.10); box-shadow:0 14px 36px rgba(255,107,0,0.58); }
  .assistant-toggle-logo { display:grid; place-items:center; width:32px; height:32px; }
  .assistant-toggle-logo svg { width:30px; height:30px; }

  /* Tooltip labels on hover */
  .assistant-toggle, .assistant-sos-toggle { overflow:visible; }
  .fab-tip {
    position:absolute; right:calc(100% + 10px); top:50%; transform:translateY(-50%);
    background:var(--blue); color:white; padding:5px 11px; border-radius:8px;
    font-family:"Inter",sans-serif; font-size:0.73rem; font-weight:700; white-space:nowrap;
    opacity:0; pointer-events:none; transition:opacity 0.18s ease;
  }
  .fab-tip::after { content:''; position:absolute; left:100%; top:50%; transform:translateY(-50%); border:5px solid transparent; border-left-color:var(--blue); }
  /* Public editorial pages: the chat and SOS buttons stay out of the first screen
     so the article, not an app widget, is what a visitor (or reviewer) sees first.
     They fade in on first scroll/touch/key press, or after 8 s (see script below). */
  body.fab-deferred .assistant-toggle,
  body.fab-deferred .assistant-sos-toggle {
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(14px);
    transition:opacity .3s ease, transform .3s ease, visibility 0s linear .3s;
  }
  body.fab-deferred.fab-shown .assistant-toggle,
  body.fab-deferred.fab-shown .assistant-sos-toggle {
    opacity:1; visibility:visible; pointer-events:auto; transform:none;
    transition:opacity .3s ease, transform .3s ease, visibility 0s;
  }
  .assistant-toggle:hover  > .fab-tip,
  .assistant-sos-toggle:hover > .fab-tip { opacity:1; }

  /* ═══════════════════════════════════════
     ASSISTANT PANEL — Redesigned
  ═══════════════════════════════════════ */
  .assistant-panel {
    position:fixed; right:18px; bottom:92px;
    width:420px; height:700px; max-height:calc(100dvh - var(--hdr-h) - 108px);
    display:flex; flex-direction:column;
    border-radius:20px; border:1px solid rgba(255,255,255,0.07);
    background:#08101e;
    box-shadow:0 32px 90px rgba(0,0,0,0.60),0 0 0 1px rgba(255,107,0,0.06);
    /* z-index 195 = below main navbar (200), so navbar is always on top */
    z-index:195; transform:translateY(20px) scale(0.98);
    opacity:0; pointer-events:none;
    transition:transform 0.24s cubic-bezier(0.34,1.1,0.64,1),opacity 0.2s ease;
    overflow:hidden; color:#dae4f4;
  }
  .assistant-panel.open { transform:translateY(0) scale(1); opacity:1; pointer-events:auto; }
  .assistant-panel.maximized { right:18px; bottom:92px; width:min(860px,calc(100vw - 36px)); height:min(85vh,800px); max-height:calc(100dvh - var(--hdr-h) - 108px); border-radius:20px; }

  /* ── HEADER ── */
  .assistant-head {
    display:flex; align-items:center; gap:8px; padding:11px 14px;
    background:linear-gradient(135deg,rgba(255,107,0,0.10),rgba(0,15,50,0.18));
    border-bottom:1px solid rgba(255,255,255,0.06);
    flex-shrink:0; flex-wrap:nowrap;
  }
  .assistant-head-copy { display:flex; align-items:center; gap:9px; flex:1; min-width:0; overflow:hidden; }
  .assistant-avatar {
    width:34px; height:34px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(135deg,#ff6b00,#b84400);
    display:grid; place-items:center;
    box-shadow:0 0 0 2px rgba(255,107,0,0.28),0 3px 10px rgba(255,107,0,0.22);
  }
  .assistant-avatar svg { width:15px; height:15px; display:block; }
  .assistant-head-text { min-width:0; overflow:hidden; }
  .assistant-head-name { color:#f0f4fc; font-size:0.84rem; font-weight:700; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .assistant-status { display:flex; align-items:center; gap:4px; color:#6070a0; font-size:0.72rem; line-height:1.1; margin-top:1px; }
  .assistant-status-dot {
    width:6px; height:6px; border-radius:50%; background:#22c55e; flex-shrink:0;
    box-shadow:0 0 0 2px rgba(34,197,94,0.15);
    animation:asPulse 2.2s ease-in-out infinite;
  }
  @keyframes asPulse { 0%,100%{opacity:1;} 55%{opacity:0.40;} }
  .assistant-panel .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  /* Language pill */
  .assistant-lang-group {
    display:flex; align-items:center; gap:4px; flex-shrink:0;
    background:rgba(255,255,255,0.05); border-radius:8px;
    padding:4px 8px; border:1px solid rgba(255,255,255,0.08);
  }
  .assistant-lang-icon { width:11px; height:11px; display:block; color:#506080; flex-shrink:0; }
  .assistant-lang-select {
    border:none; background:transparent; color:#90a4c8;
    font-family:"Inter",sans-serif; font-size:0.72rem; font-weight:600;
    outline:none; cursor:pointer; padding:0 1px;
    width:auto;
  }
  .assistant-lang-select option { color:#111; }
  .assistant-lang-div { width:1px; height:12px; background:rgba(255,255,255,0.10); margin:0 2px; }
  /* Head action buttons */
  .assistant-head-actions { display:flex; align-items:center; gap:3px; flex-shrink:0; }
  .assistant-head-btn {
    display:inline-grid; place-items:center;
    width:30px; height:30px; border-radius:8px; padding:0;
    background:rgba(255,255,255,0.05); color:#7a90b8;
    border:1px solid rgba(255,255,255,0.07);
    cursor:pointer; transition:all 0.15s ease; flex-shrink:0;
    font-family:inherit; position:relative; overflow:hidden;
  }
  .assistant-head-btn:hover { background:rgba(255,107,0,0.16); border-color:rgba(255,107,0,0.28); color:#ffaa6a; }
  .assistant-head-btn.close-btn:hover { background:rgba(239,68,68,0.16); border-color:rgba(239,68,68,0.28); color:#fca5a5; }
  .assistant-head-btn svg { width:14px; height:14px; display:block; }
  /* End chat — a labeled pill rather than an icon, so its purpose reads
     clearly instead of being guessed at from a small glyph. */
  .assistant-endchat-btn {
    width:auto; padding:0 11px; font-size:0.72rem; font-weight:700;
    letter-spacing:0.01em; white-space:nowrap; font-family:"Inter",sans-serif;
  }
  /* Audio mute toggle — slash line only shows once muted, plus a dimmed button state */
  .assistant-head-btn .audio-off-slash { display:none; }
  .assistant-head-btn.is-muted { opacity:0.55; }
  .assistant-head-btn.is-muted .audio-off-slash { display:block; }
  /* Notification bell + badge */
  .assistant-notif-wrap { position:relative; }
  .assistant-notif-count {
    position:absolute; top:-4px; right:-4px;
    min-width:15px; height:15px; border-radius:99px; padding:0 2px;
    background:#ff6b00; color:#fff; font-size:0.58rem; font-weight:800;
    display:none; place-items:center; line-height:1; font-family:"Inter",sans-serif;
    border:1.5px solid #08101e;
  }
  .assistant-notif-count.visible { display:grid; }

  /* ── BODY: CHAT + RESULTS ── */
  .assistant-body {
    flex:1; min-height:0; display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(250px,0.65fr);
    background:#060c18;
  }
  .assistant-chat-pane { min-height:0; display:flex; flex-direction:column; border-right:1px solid rgba(255,255,255,0.05); }
  .assistant-results-pane { min-height:0; display:flex; flex-direction:column; }
  .assistant-pane-label {
    padding:9px 14px 7px; color:#344060; font-size:0.70rem; font-weight:800;
    letter-spacing:0.07em; text-transform:uppercase;
    border-bottom:1px solid rgba(255,255,255,0.05); flex-shrink:0;
    display:flex; align-items:center; justify-content:space-between;
  }
  .pane-nav-btn {
    display:none; align-items:center; gap:4px;
    padding:4px 10px; border-radius:6px;
    border:1px solid rgba(255,208,138,0.22); background:rgba(255,208,138,0.06);
    color:#ffd08a; font-size:0.72rem; font-weight:700; letter-spacing:0;
    cursor:pointer; transition:background 0.15s; font-family:inherit; text-transform:none;
  }
  .pane-nav-btn:hover { background:rgba(255,208,138,0.14); }

  /* ── MESSAGES ── */
  .assistant-messages {
    flex:1; min-height:0; overflow-y:auto; padding:14px 12px;
    display:flex; flex-direction:column; gap:9px; scroll-behavior:smooth;
  }
  .assistant-messages::-webkit-scrollbar { width:3px; }
  .assistant-messages::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.08); border-radius:2px; }
  /* Each message is a row (bubble + meta line stacked) so the timestamp/
     action icons never force the colored bubble wider than its own text —
     the row shrinks to its widest child, but the bubble independently hugs
     just the message content. */
  .assistant-message-row {
    display:flex; flex-direction:column; max-width:79%; gap:3px;
  }
  .assistant-message-row.user { align-self:flex-end; align-items:flex-end; }
  .assistant-message-row.bot, .assistant-message-row.system { align-self:flex-start; align-items:flex-start; }
  .assistant-message {
    width:fit-content; max-width:100%;
    padding:9px 13px; line-height:1.58; font-size:0.87rem;
    word-break:break-word; white-space:pre-wrap; font-family:"Inter",sans-serif;
    animation:asMsgPop 0.20s cubic-bezier(0.34,1.1,0.64,1) both;
  }
  @keyframes asMsgPop { from{opacity:0;transform:translateY(7px) scale(0.97);}to{opacity:1;transform:none;} }
  .assistant-message.user {
    background:rgba(255,107,0,0.18);
    border:1px solid rgba(255,140,56,0.28);
    color:#ffd5aa; border-radius:16px 16px 3px 16px;
  }
  .assistant-message.bot, .assistant-message.system {
    background:rgba(255,255,255,0.055); color:#c8d8f0;
    border:1px solid rgba(255,255,255,0.08);
    border-radius:16px 16px 16px 3px;
  }
  .assistant-message-meta {
    display:flex; align-items:center; gap:4px; font-size:0.69rem; padding:0 3px;
  }
  .assistant-message-row.user .assistant-message-meta { color:rgba(255,190,120,0.65); }
  .assistant-message-row.bot .assistant-message-meta,
  .assistant-message-row.system .assistant-message-meta { color:#344060; }
  .assistant-message-actions { display:inline-flex; align-items:center; gap:3px; }
  .assistant-icon {
    width:22px; height:22px; border-radius:6px;
    background:rgba(255,255,255,0.06); color:#506080;
    border:1px solid rgba(255,255,255,0.07);
    display:grid; place-items:center; cursor:pointer;
    flex-shrink:0; transition:all 0.14s ease; padding:0;
  }
  .assistant-icon:hover { background:rgba(255,107,0,0.16); color:#ffaa6a; border-color:rgba(255,107,0,0.25); }
  .assistant-icon svg { width:11px; height:11px; display:block; }

  /* Typing / loading */
  .assistant-loading { display:none; }
  .assistant-loading.visible { display:flex; }
  .assistant-loading .assistant-message { padding:11px 14px; }
  .assistant-dots { display:inline-flex; gap:4px; align-items:center; }
  .assistant-dots span {
    width:7px; height:7px; border-radius:50%;
    background:rgba(255,107,0,0.55); animation:asDotsP 1.2s infinite ease-in-out;
  }
  .assistant-dots span:nth-child(2){animation-delay:0.15s;}
  .assistant-dots span:nth-child(3){animation-delay:0.30s;}
  @keyframes asDotsP { 0%,80%,100%{transform:scale(0.6);opacity:0.35;}40%{transform:scale(1);opacity:1;} }

  /* ── RESULTS PANE ── */
  .assistant-results {
    flex:1; min-height:0; overflow-y:auto; padding:10px;
    display:flex; flex-direction:column; gap:9px; scroll-behavior:smooth;
  }
  .assistant-results::-webkit-scrollbar { width:3px; }
  .assistant-results::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.08); border-radius:2px; }
  .assistant-results-empty {
    padding:18px 14px; border-radius:12px; text-align:center;
    border:1px dashed rgba(255,255,255,0.08); color:#2e3c58;
    background:rgba(255,255,255,0.02); font-size:0.82rem; line-height:1.55;
  }
  .assistant-card {
    padding:11px; border-radius:14px;
    border:1px solid rgba(255,255,255,0.07);
    background:rgba(255,255,255,0.035);
    display:flex; flex-direction:column; gap:8px; color:#c8d8f0;
  }
  .assistant-card-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
  .assistant-card-gallery img,.assistant-card-hero { width:100%; object-fit:cover; border-radius:9px; }
  .assistant-card-gallery img { height:60px; } .assistant-card-hero { height:130px; }
  .assistant-card-meta,.assistant-card-copy { color:#4a5c7a; font-size:0.80rem; line-height:1.5; }
  .assistant-map { border-radius:10px; overflow:hidden; border:1px solid rgba(255,255,255,0.07); }
  .assistant-map iframe { width:100%; height:130px; border:0; }
  .assistant-map-actions,.assistant-card-actions { display:flex; gap:6px; flex-wrap:wrap; padding:8px; }
  .assistant-inventory-item {
    padding:7px 10px; border-radius:9px;
    border:1px solid rgba(255,255,255,0.06);
    background:rgba(0,0,0,0.18); color:#5a6c8a; font-size:0.80rem; line-height:1.4;
  }
  /* Hotel name links inside chat bubbles */
  .chat-hotel-link {
    color:#ffd08a; text-decoration:underline;
    text-decoration-color:rgba(255,208,138,0.35);
    text-underline-offset:2px; cursor:pointer;
    border-radius:3px; padding:0 2px;
    transition:background 0.14s;
  }
  .chat-hotel-link:hover,.chat-hotel-link:focus {
    background:rgba(255,208,138,0.14); outline:none;
  }
  /* Book button on result cards */
  .asst-book-btn {
    width:100%; padding:10px 14px; border-radius:10px;
    background:linear-gradient(135deg,#ff8c00,#d44500);
    color:#fff; font-weight:700; font-size:0.87rem;
    border:none; cursor:pointer;
    transition:opacity 0.15s, transform 0.12s;
    font-family:inherit;
  }
  .asst-book-btn:hover { opacity:0.88; transform:translateY(-1px); }
  /* Card highlight pulse when navigated from chat */
  @keyframes cardPulse {
    0%,100%{box-shadow:0 0 0 0 transparent;}
    25%{box-shadow:0 0 0 3px rgba(255,208,138,0.55);}
  }
  .card-highlight { animation:cardPulse 1.6s ease; }

  /* ── NOTIFICATIONS PANEL ── */
  .assistant-notif-panel {
    position:absolute; top:52px; right:14px; z-index:10;
    width:270px; max-height:300px; overflow-y:auto;
    background:#0e1628; border:1px solid rgba(255,255,255,0.09);
    border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,0.55);
    display:none; flex-direction:column;
  }
  .assistant-notif-panel.visible { display:flex; }
  .assistant-notif-panel .notification-item {
    padding:11px 13px; border-bottom:1px solid rgba(255,255,255,0.05);
    color:#c8d8f0; font-size:0.82rem; line-height:1.5;
  }
  .assistant-notif-panel .notification-item:last-child { border-bottom:none; }
  .assistant-notif-panel .notification-item strong { display:block; color:#ff9a5a; font-size:0.67rem; font-weight:800; letter-spacing:0.05em; margin-bottom:3px; }

  /* ── TAB BAR (mobile only) ── */
  .assistant-tab-bar { display:none; flex-shrink:0; }
  .assistant-tab-btn {
    flex:1; padding:8px 10px; background:transparent; border:none;
    color:#344060; font-size:0.76rem; font-weight:700;
    border-bottom:2px solid transparent; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:5px;
    transition:all 0.15s ease; font-family:inherit;
    background:rgba(4,8,18,0.98);
    border-top:1px solid rgba(255,255,255,0.05);
  }
  .assistant-tab-btn svg { width:13px; height:13px; display:block; flex-shrink:0; }
  .assistant-tab-btn.active { color:#ff9a5a; border-bottom-color:#ff6b00; }

  /* ── BOOKING PANEL ── */
  .assistant-booking-panel {
    padding:14px 14px 12px; border-top:1px solid rgba(255,255,255,0.06);
    background:rgba(4,8,18,0.98); display:none; flex-shrink:0;
    max-height:300px; overflow-y:auto;
  }
  .assistant-booking-panel.visible { display:block; }
  .assistant-booking-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
  .assistant-booking-head h3 { margin:0; font-size:0.90rem; color:#dae4f4; font-family:"Poppins",sans-serif; font-weight:700; }
  .assistant-booking-step-badge {
    flex-shrink:0; font-size:0.64rem; font-weight:800; letter-spacing:0.03em;
    color:#ff9a5a; background:rgba(255,107,0,0.12); border:1px solid rgba(255,107,0,0.22);
    border-radius:999px; padding:3px 9px; white-space:nowrap; text-transform:uppercase;
  }
  .assistant-booking-note { color:#4a5c7a; font-size:0.80rem; margin-bottom:10px; }
  .assistant-booking-progress { display:flex; align-items:center; gap:6px; margin-bottom:12px; }
  .assistant-booking-dot { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,0.14); flex-shrink:0; transition:background 0.2s ease; }
  .assistant-booking-dot.done { background:var(--saffron,#ff6b00); }
  .assistant-booking-progress-line { flex:1; height:2px; background:rgba(255,255,255,0.10); border-radius:2px; }

  .assistant-booking-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 8px; }
  .assistant-field { display:flex; flex-direction:column; gap:4px; }
  .assistant-field.full { grid-column:1/-1; }
  .assistant-field label {
    font-size:0.68rem; font-weight:700; color:#7a90b8;
    text-transform:uppercase; letter-spacing:0.03em;
  }
  .assistant-field input,
  .assistant-field select,
  .assistant-field textarea,
  .assistant-composer textarea {
    width:100%; border-radius:10px; border:1px solid rgba(255,255,255,0.15);
    background:rgba(255,255,255,0.09); color:#e8f0ff;
    padding:9px 12px; font-family:"Inter",sans-serif; font-size:0.85rem; box-shadow:none;
  }
  .assistant-field input::placeholder,
  .assistant-field textarea::placeholder,
  .assistant-composer textarea::placeholder { color:#5a7090; }
  .assistant-field input:focus,
  .assistant-field select:focus,
  .assistant-field textarea:focus,
  .assistant-composer textarea:focus {
    border-color:rgba(255,107,0,0.45); outline:none;
    box-shadow:0 0 0 3px rgba(255,107,0,0.08);
  }
  .assistant-field textarea { min-height:58px; resize:vertical; }
  .assistant-field.af-invalid input,
  .assistant-field.af-invalid select,
  .assistant-field.af-invalid textarea {
    border-color:rgba(239,68,68,0.55); box-shadow:0 0 0 3px rgba(239,68,68,0.12);
  }
  .assistant-field-error { color:#fca5a5; font-size:0.68rem; }

  .assistant-booking-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:12px; }
  .assistant-booking-back {
    margin-right:auto;
    background:rgba(255,255,255,0.06); color:#9fb0d0; border:1px solid rgba(255,255,255,0.12);
    border-radius:10px; padding:9px 16px; font-size:0.84rem; font-weight:700; cursor:pointer;
    font-family:inherit; transition:background 0.15s ease;
  }
  .assistant-booking-back:hover { background:rgba(255,255,255,0.11); }
  .assistant-booking-primary-btn {
    background:linear-gradient(135deg,#ff8c00,#d44500); color:#fff;
    border:none; border-radius:10px; padding:9px 20px;
    font-size:0.84rem; font-weight:700; cursor:pointer; font-family:inherit;
    transition:opacity 0.15s ease, transform 0.12s ease;
  }
  .assistant-booking-primary-btn:hover { opacity:0.90; transform:translateY(-1px); }

  /* ── POST-BOOKING CHOICE MODAL ── */
  .assistant-postbook-overlay {
    position:absolute; inset:0; z-index:60;
    display:none; align-items:center; justify-content:center;
    padding:20px; background:rgba(2,6,16,0.74); backdrop-filter:blur(3px);
  }
  .assistant-postbook-overlay.visible { display:flex; }
  .assistant-postbook-card {
    width:100%; max-width:290px; text-align:center;
    background:#0e1628; border:1px solid rgba(255,255,255,0.10);
    border-radius:18px; padding:26px 22px 22px;
    box-shadow:0 24px 60px rgba(0,0,0,0.50);
    animation:asMsgPop 0.22s cubic-bezier(0.34,1.1,0.64,1) both;
  }
  .assistant-postbook-icon {
    width:46px; height:46px; margin:0 auto 12px; border-radius:50%;
    background:rgba(34,197,94,0.14); border:1px solid rgba(34,197,94,0.30);
    display:grid; place-items:center; color:#22c55e;
  }
  /* Payment-required state (online payment method, or an existing unpaid
     reservation blocking a new booking) — amber instead of the green
     "done" look, so it doesn't read as a success state. */
  .assistant-postbook-icon.pending {
    background:rgba(245,158,11,0.14); border-color:rgba(245,158,11,0.32); color:#f59e0b;
  }
  .assistant-postbook-icon svg { width:23px; height:23px; display:block; }
  .assistant-postbook-card h3 { margin:0 0 6px; font-size:1.0rem; color:#f0f4fc; font-family:"Poppins",sans-serif; font-weight:800; }
  .assistant-postbook-card p { margin:0 0 18px; font-size:0.83rem; color:#7a90b8; }
  .assistant-postbook-actions { display:flex; flex-direction:column; gap:8px; }
  .assistant-postbook-btn {
    width:100%; padding:11px 14px; border-radius:11px; font-size:0.85rem; font-weight:700;
    border:1px solid rgba(255,255,255,0.14); background:rgba(255,255,255,0.05); color:#c8d8f0;
    cursor:pointer; font-family:inherit; transition:all 0.15s ease;
  }
  .assistant-postbook-btn:hover { background:rgba(255,255,255,0.10); }
  .assistant-postbook-btn.primary {
    background:linear-gradient(135deg,#ff8c00,#d44500); color:#fff; border:none;
    box-shadow:0 6px 18px rgba(255,107,0,0.30);
  }
  .assistant-postbook-btn.primary:hover { opacity:0.92; }
  .assistant-postbook-btn.danger {
    background:rgba(220,38,38,0.08); border:1px solid rgba(220,38,38,0.28); color:#f87171;
  }
  .assistant-postbook-btn.danger:hover { background:rgba(220,38,38,0.16); }
  .assistant-postbook-btn[disabled] { opacity:0.4; cursor:not-allowed; }
  .assistant-postbook-btn[disabled]:hover { background:rgba(255,255,255,0.05); }

  /* ── CHIPS ── */
  .assistant-chips {
    display:flex; gap:6px; padding:7px 12px 5px; flex-shrink:0;
    overflow-x:auto; flex-wrap:nowrap;
    background:rgba(4,8,18,0.98); border-top:1px solid rgba(255,255,255,0.05);
    scrollbar-width:none;
  }
  .assistant-chips::-webkit-scrollbar { display:none; }
  .assistant-chips.chips-hidden { display:none; }
  .assistant-chip {
    display:inline-flex; align-items:center; gap:4px;
    padding:5px 11px; border-radius:999px; font-size:0.74rem; font-weight:700;
    background:rgba(255,107,0,0.08); border:1px solid rgba(255,107,0,0.18);
    color:#ff9a5a; cursor:pointer; white-space:nowrap;
    transition:all 0.14s ease; font-family:inherit; flex-shrink:0;
  }
  .assistant-chip:hover { background:rgba(255,107,0,0.18); border-color:rgba(255,107,0,0.38); transform:translateY(-1px); }

  /* ── COMPOSER ── */
  .assistant-composer {
    display:flex; align-items:flex-end; gap:7px;
    padding:9px 12px 12px; border-top:1px solid rgba(255,255,255,0.05);
    background:#04081a; flex-shrink:0;
  }
  .assistant-composer textarea {
    flex:1; min-height:42px; max-height:110px; resize:none;
    border-radius:12px; line-height:1.5; padding:9px 12px; font-size:0.86rem;
  }
  #assistantMic {
    width:42px; height:42px; border-radius:12px; flex-shrink:0; cursor:pointer;
    background:rgba(255,255,255,0.06); color:#6070a0;
    border:1px solid rgba(255,255,255,0.08); display:grid; place-items:center;
    transition:all 0.15s ease; padding:0;
  }
  #assistantMic:hover { background:rgba(255,107,0,0.14); color:#ffaa6a; border-color:rgba(255,107,0,0.20); }
  #assistantMic svg { width:18px; height:18px; display:block; }
  #assistantSend {
    width:42px; height:42px; border-radius:12px; flex-shrink:0;
    background:linear-gradient(135deg,#ff6b00,#d44e00); color:#fff;
    border:none; box-shadow:0 4px 14px rgba(255,107,0,0.34);
    display:grid; place-items:center; cursor:pointer;
    transition:transform 0.15s ease,box-shadow 0.15s ease; padding:0;
  }
  #assistantSend:hover { transform:scale(1.07); box-shadow:0 6px 20px rgba(255,107,0,0.50); }
  #assistantSend svg { width:18px; height:18px; display:block; }
  #assistantSend span { display:none; }
  .assistant-recording { color:#fb7185; font-size:0.78rem; display:none; align-items:center; gap:5px; padding:0 2px; align-self:center; }
  .assistant-recording.visible { display:flex; }
  .assistant-record-dot { width:7px; height:7px; border-radius:50%; background:#fb7185; animation:asDotsP 1s infinite ease-in-out; }

  /* ═══════════════════════════════════════
     SITE FOOTER
  ═══════════════════════════════════════ */
  .site-footer { background:var(--blue); color:rgba(255,255,255,0.80); padding:52px 0 0; margin-top:72px; }
  .footer-inner { max-width:1280px; margin:0 auto; padding:0 24px 40px; display:grid; grid-template-columns:2fr repeat(4,1fr); gap:36px; }
  .footer-brand { display:flex; flex-direction:column; gap:14px; }
  .footer-brand-logo { width:64px; height:64px; border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 4px 14px rgba(26,59,122,0.20); flex-shrink:0; padding:2px; }
  .footer-brand-logo img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
  .footer-brand-name { font-family:"Poppins",sans-serif; font-size:1.1rem; font-weight:800; color:white; }
  .footer-brand-desc { font-size:0.84rem; line-height:1.7; color:rgba(255,255,255,0.55); max-width:28ch; }
  .footer-social { display:flex; gap:10px; margin-top:6px; }
  .footer-social-btn { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all 0.2s ease; flex-shrink:0; box-shadow:0 3px 10px rgba(0,0,0,0.20); }
  .footer-social-btn svg { width:17px; height:17px; }
  .footer-social-btn:hover { transform:translateY(-3px) scale(1.08); filter:brightness(1.1); box-shadow:0 6px 16px rgba(0,0,0,0.30); }
  .footer-social-btn.ig { background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
  .footer-social-btn.fb { background:#1877f2; }
  .footer-social-btn.yt { background:#ff0000; }
  .footer-col h4 { font-family:"Poppins",sans-serif; font-size:0.86rem; font-weight:700; color:white; margin-bottom:14px; }
  .footer-links { display:flex; flex-direction:column; gap:9px; }
  .footer-links a { font-size:0.84rem; color:rgba(255,255,255,0.56); transition:color 0.2s ease; }
  .footer-links a:hover { color:var(--gold); }
  .footer-bottom { border-top:1px solid rgba(255,255,255,0.10); padding:18px 24px; max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
  .footer-bottom p { font-size:0.80rem; color:rgba(255,255,255,0.40); }

  /* ═══════════════════════════════════════
     LOADING OVERLAY
  ═══════════════════════════════════════ */
  .page-loading-overlay { position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:500; background:rgba(255,253,248,0.88); backdrop-filter:blur(6px); }
  .page-loading-overlay.visible { display:flex; }
  .page-loading-card { width:min(420px,calc(100vw - 32px)); padding:36px; border-radius:24px; border:1px solid var(--line); background:#FFFFFF; box-shadow:0 20px 64px rgba(100,50,0,0.20); text-align:center; color:var(--text); }
  .page-loading-spinner { width:52px; height:52px; margin:0 auto 16px; border-radius:50%; border:4px solid rgba(255,107,0,0.16); border-top-color:var(--saffron); animation:spin 0.9s linear infinite; }
  @keyframes spin { to{transform:rotate(360deg);} }

  /* ═══════════════════════════════════════
     RESPONSIVE
  ═══════════════════════════════════════ */
  @media (max-width: 960px) {
    .grid-2 { grid-template-columns:1fr; }
    .assistant-booking-grid { grid-template-columns:1fr; }
    .footer-inner { grid-template-columns:1fr 1fr; gap:28px; }
    .fab-group { right:16px; bottom:22px; }
    /* Collapse results pane to single column on tablet */
    .assistant-body { grid-template-columns:1fr; }
    .assistant-results-pane { display:none; }
    .assistant-results-pane.tab-active { display:flex; }
    .assistant-chat-pane.tab-hidden { display:none; }
    .assistant-tab-bar { display:flex; }
    .pane-nav-btn { display:flex; }
    .assistant-booking-panel { max-height:260px; }
    .assistant-panel { right:14px; left:14px; width:auto; bottom:100px; height:min(78vh,700px); }
    .assistant-panel.maximized { inset:14px; width:auto; height:auto; }
  }
  @media (max-width: 1024px) {
    .nav-hamburger { display:flex; }
    .nav-links {
      display:none; position:absolute; top:100%; left:0; right:0; margin-left:0;
      background:rgba(255,253,248,0.97); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
      border-bottom:1px solid var(--line); padding:12px 16px 18px; gap:4px;
      flex-direction:column; align-items:stretch; box-shadow:0 12px 40px rgba(100,50,0,0.14); z-index:99;
    }
    .nav-links.mobile-open { display:flex; }
    .nav-links .nav-link    { color:var(--text-2) !important; padding:11px 16px; }
    .nav-links .nav-link:hover { background:rgba(255,107,0,0.09); color:var(--saffron) !important; }
    .nav-links .nav-btn-login  { color:var(--saffron) !important; padding:11px 16px; }
    .header-inner { position:relative; }

    /* Kumbh Guide dropdown becomes an inline accordion on mobile — no hover flyouts on touch */
    .nav-dropdown { width:100%; }
    .nav-dropdown-toggle { width:100%; justify-content:space-between; padding:11px 16px; }
    .nav-dropdown-menu {
      display:none; position:static; box-shadow:none; border:none; padding:0;
      background:var(--bg-2); border-radius:10px; margin:2px 0 6px 12px;
    }
    .nav-dropdown.open .nav-dropdown-menu { display:flex; }
    .nav-dropdown-link { padding:10px 14px; font-size:0.85rem; }
    .nav-dropdown-menu-right { right:auto; }
    .nav-dropdown-account .nav-dropdown-toggle {
      border-radius:0; border:none; background:none; color:var(--text-2) !important;
    }

    /* Notifications panel — anchor to the viewport with even side margins
       instead of the bell button, so it never overflows past the screen
       edge regardless of where the bell sits in the header. */
    .notifications-panel {
      position:fixed; left:16px; right:16px; top:calc(var(--hdr-h) + 8px);
      width:auto; max-width:none;
    }
  }
  @media (max-width: 600px) {
    /* Phone footer: brand on top, link columns two-up (was one long single column),
       and a bottom bar that wraps instead of stretching wider than the screen. */
    .footer-inner { grid-template-columns:1fr 1fr; gap:28px 20px; padding:0 20px 32px; }
    .footer-brand { grid-column:1 / -1; }
    .footer-bottom { display:block; text-align:center; padding:20px 20px 24px; }
    .footer-bottom p { margin:0 0 10px; max-width:100%; overflow-wrap:anywhere; }
    .footer-bottom p.footer-disclaimer { margin:0 auto 14px !important; font-size:0.76rem !important; line-height:1.65 !important; }
    .footer-bottom .footer-link-row { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 12px; }
    .footer-bottom .footer-link-row a { overflow-wrap:anywhere; }
    .fab-group { right:14px; bottom:18px; }
    .assistant-toggle { width:54px; height:54px; }
    .assistant-sos-toggle { width:54px; height:54px; }
    :root { --hdr-h: 64px; }
  }
  @media (max-width: 480px) {
    .shell { padding:0 16px; }
    .brand-tagline { display:none; }
  }

  /* ═══════════════════════════════════════
     PWA INSTALL BANNER
  ═══════════════════════════════════════ */
  .pwa-install-banner {
    display:none; align-items:center; gap:11px;
    position:fixed; left:16px; right:16px; bottom:20px; z-index:7995;
    max-width:420px; margin:0 auto; padding:12px 14px;
    background:#fff; border:1px solid var(--line); border-radius:16px;
    box-shadow:0 16px 44px rgba(100,50,0,0.18);
  }
  .pwa-install-banner.visible { display:flex; }
  .pwa-install-icon { font-size:1.5rem; flex-shrink:0; }
  .pwa-install-text { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
  .pwa-install-text strong { font-size:0.86rem; color:var(--text); }
  .pwa-install-text span { font-size:0.76rem; color:var(--muted); line-height:1.3; }
  .pwa-install-btn {
    flex-shrink:0; padding:8px 16px; border:none; border-radius:9px; cursor:pointer;
    background:linear-gradient(135deg,var(--saffron),var(--saffron-dk)); color:#fff;
    font-weight:700; font-size:0.82rem; font-family:inherit;
  }
  .pwa-install-dismiss {
    flex-shrink:0; width:26px; height:26px; border:none; border-radius:50%; cursor:pointer;
    background:var(--bg-2); color:var(--muted); font-size:1.1rem; line-height:1; font-family:inherit;
  }
  @media(max-width:768px) {
    .pwa-install-banner { bottom:calc(60px + env(safe-area-inset-bottom,0px) + 10px); }
  }

  /* ═══════════════════════════════════════
     MOBILE BOTTOM NAVIGATION BAR
  ═══════════════════════════════════════ */
  .mob-nav {
    display:none; position:fixed; bottom:0; left:0; right:0; z-index:7990;
    background:rgba(255,253,248,0.97);
    backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    border-top:1.5px solid var(--line);
    box-shadow:0 -4px 28px rgba(100,50,0,0.10);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .mob-nav-inner { display:flex; align-items:stretch; height:60px; }
  .mob-nav-tab {
    flex:1; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:2px;
    padding:6px 4px 8px; color:var(--muted); text-decoration:none;
    border:none; background:none; cursor:pointer; font-family:inherit;
    transition:color 0.18s; -webkit-tap-highlight-color:transparent;
    position:relative; overflow:visible;
  }
  .mob-nav-tab svg { width:22px; height:22px; display:block; transition:transform 0.18s,stroke 0.18s; }
  .mob-nav-tab .mn-lbl { font-size:0.58rem; font-weight:700; letter-spacing:0.03em; margin-top:1px; }
  .mob-nav-tab.mn-active { color:var(--saffron); }
  .mob-nav-tab.mn-active > svg { transform:translateY(-1px); }
  .mob-nav-tab.mn-active::after {
    content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:28px; height:2.5px; border-radius:0 0 3px 3px; background:var(--saffron);
  }
  /* Center chat orb tab */
  .mob-nav-chat { flex:1.1; overflow:visible; }
  .mob-nav-chat-orb {
    width:52px; height:52px; border-radius:50%;
    background:linear-gradient(135deg,var(--saffron),var(--saffron-dk));
    display:grid; place-items:center;
    box-shadow:0 4px 18px rgba(255,107,0,0.44),0 0 0 3px rgba(255,253,248,0.97);
    margin-bottom:2px; margin-top:-14px;
    transition:transform 0.18s,box-shadow 0.18s;
  }
  .mob-nav-chat-orb svg { width:23px; height:23px; color:#fff; }
  .mob-nav-chat:active .mob-nav-chat-orb { transform:scale(0.91); }
  .mob-nav-chat.mn-active .mob-nav-chat-orb { box-shadow:0 6px 24px rgba(255,107,0,0.58),0 0 0 3px rgba(255,253,248,0.97); }
  .mob-nav-chat .mn-lbl { color:var(--saffron); }
  .mob-nav-chat::after { display:none !important; }

  @media (max-width:768px) {
    .mob-nav { display:flex; flex-direction:column; }
    body { padding-bottom:calc(60px + env(safe-area-inset-bottom,0px)); }
    /* Keep the last footer lines clear of the floating chat/SOS buttons and the bottom tab bar. */
    .site-footer .footer-bottom { padding-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
    /* Panel: fills the space between header and bottom nav — never overlaps either */
    .assistant-panel {
      position:fixed !important;
      left:0 !important; right:0 !important; width:100% !important;
      top:var(--hdr-h) !important;   /* starts exactly at header bottom */
      bottom:60px !important;         /* ends exactly at bottom nav top */
      height:auto !important; max-height:none !important;
      border-radius:0 !important;
      border-left:none !important; border-right:none !important;
      /* z-index 195 stays — navbar at 200 always sits on top */
    }
    .assistant-panel.maximized {
      top:var(--hdr-h) !important; bottom:60px !important;
      left:0 !important; right:0 !important; width:100% !important;
      height:auto !important; max-height:none !important;
      border-radius:0 !important;
    }
    /* FABs float just above the bottom nav, stacked vertically like desktop:
       SOS on top, Chat below it (order:-1 flips SOS to the front of the
       flex column without touching DOM order, so desktop is unaffected). */
    .fab-group { bottom:78px !important; right:14px !important; }
    .assistant-toggle     { width:52px !important; height:52px !important; }
    .assistant-sos-toggle { width:52px !important; height:52px !important; order:-1; }
    #assistantMaximize { display:none !important; }
  }
  @media (max-width:600px) {
    :root { --hdr-h:64px; }
    .assistant-head { padding:8px 10px; }
    .assistant-head-name { font-size:0.82rem; }
    .assistant-status { font-size:0.70rem; }
    .assistant-endchat-btn { padding:0 8px; font-size:0.66rem; }
    .assistant-messages { padding:10px; gap:7px; }
    .assistant-message-row { max-width:88%; }
    .assistant-message { font-size:0.84rem; padding:8px 11px; }
    .assistant-chips { padding:6px 10px 4px; }
    .assistant-chip { padding:5px 10px; font-size:0.72rem; }
    .assistant-composer { padding:7px 10px 10px; gap:5px; }
    .assistant-composer textarea { min-height:40px; font-size:0.84rem; padding:8px 10px; }
    #assistantMic,#assistantSend { width:38px; height:38px; border-radius:10px; }
  }

  /* ── Shared final CTA (home + about — templates/chatbot/includes/shared_cta.html) ── */
  .shared-cta {
    margin: 20px 0 80px;
    border-radius: 28px; padding: 64px 48px; text-align: center; position: relative; overflow: hidden;
    background: linear-gradient(135deg, var(--blue) 0%, #001030 50%, var(--blue) 100%);
    box-shadow: 0 24px 80px rgba(0,33,71,0.30);
  }
  .shared-cta::before {
    content: ''; position: absolute; inset: 0;
    background: radial-gradient(ellipse 60% 70% at 50% 0%, rgba(255,107,0,0.14), transparent 70%);
    pointer-events: none;
  }
  .shared-cta-inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
  .shared-cta-title { font-family:"Poppins",sans-serif; font-size:clamp(1.9rem,3.5vw,2.8rem); font-weight:900; color:#fff; margin:0 0 16px; letter-spacing:-0.03em; }
  .shared-cta-desc  { color:rgba(255,255,255,0.68); font-size:1rem; max-width:52ch; margin:0 auto 32px; line-height:1.78; }
  .shared-cta-features {
    display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
    max-width:620px; margin:0 auto 36px;
  }
  .shared-cta-feature {
    display:flex; align-items:center; gap:8px; justify-content:center;
    padding:10px 12px; border-radius:12px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
    font-size:0.82rem; font-weight:600; color:rgba(255,255,255,0.86);
  }
  .shared-cta-feature-icon { font-size:1rem; line-height:1; }
  .shared-cta-actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
  .shared-cta-btn-primary {
    display:inline-flex; align-items:center; gap:10px; padding:16px 32px; border-radius:14px;
    font-weight:700; font-size:1rem; font-family:'Inter',sans-serif;
    background:linear-gradient(135deg,#FF6B00,#FFD700); color:#fff; text-decoration:none;
    box-shadow:0 8px 32px rgba(255,107,0,0.48); transition:all 0.25s ease;
  }
  .shared-cta-btn-primary:hover { transform:translateY(-3px); }
  .shared-cta-btn-ghost {
    display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:14px;
    font-weight:700; font-size:0.95rem; font-family:'Inter',sans-serif;
    background:rgba(255,255,255,0.10); color:#fff; border:1.5px solid rgba(255,255,255,0.22);
    text-decoration:none; transition:all 0.25s ease; backdrop-filter:blur(8px);
  }
  .shared-cta-btn-ghost:hover { background:rgba(255,255,255,0.18); }
  @media (max-width:720px) {
    .shared-cta { padding:48px 24px; }
    .shared-cta-features { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:480px) {
    .shared-cta-features { grid-template-columns:1fr; }
  }

  /* ═══════════════════════════════════════
     ACCESSIBILITY: PREFERS-REDUCED-MOTION
     (Emil Kowalski Animation Standard)
  ═══════════════════════════════════════ */
  @media (prefers-reduced-motion: reduce) {
    *, ::before, ::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

  