:root{--color-primary:#FF5722;--color-secondary:#1A237E;--color-text-dark:#212121;--color-text-light:#fff;--color-bg-light:#F0F2F5;--color-border:#D1D5DB;--radius-sm:6px;--radius-md:10px;--radius-pill:999px;--max-width:1200px;--transition-fast:.2s ease}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:Roboto,sans-serif;background:var(--color-bg-light);color:var(--color-text-dark);line-height:1.6}
a{color:var(--color-primary);text-decoration:none;transition:.25s}
a:hover{color:#E64A19}

/* HEADER */
.site-header{background:#fff;position:sticky;top:0;z-index:1100;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.header-inner{max-width:var(--max-width);margin:auto;padding:10px 20px;display:flex;align-items:center;gap:18px}
.site-branding img{height:40px;display:block}

/* LOCATION PILL */
.header-location{flex-shrink:0}
.location-button{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-pill);background:#fff;border:1.5px solid var(--color-border);cursor:pointer;transition:var(--transition-fast)}
.location-button:hover{border-color:var(--color-primary);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.location-icon{font-size:1.1rem}
.location-text{display:flex;flex-direction:column;line-height:1.1}
.location-label{font-size:.7rem;color:#6B7280}
.location-value{font-size:.85rem;font-weight:600;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* SEARCH */
.header-search{flex:1;max-width:560px}
.search-form{position:relative;display:flex;align-items:center;height:44px;border-radius:var(--radius-pill);border:1.5px solid var(--color-border);background:#fff;padding:0 6px;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.search-field{flex:1;border:none;outline:none;background:transparent;padding:10px 14px;font-size:.95rem}
.search-submit{width:34px;height:34px;border-radius:50%;border:none;background:var(--color-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-fast)}
.search-submit:hover{background:#E64A19;transform:translateY(-1px)}
.search-submit svg{width:16px;height:16px;fill:#fff}

/* SEARCH TYPEAHEAD */
#jbb-typeahead-list{list-style:none;margin:0;padding:0;position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 25px rgba(0,0,0,.08);max-height:260px;overflow-y:auto;z-index:1200;display:none}
#jbb-typeahead-list li{padding:12px 14px;border-bottom:1px solid #f1f1f1;cursor:pointer;font-size:.95rem}
#jbb-typeahead-list li:last-child{border-bottom:none}
#jbb-typeahead-list li:hover,#jbb-typeahead-list li[aria-selected="true"]{background:#f0f6ff}

/* NAV */
.main-navigation{margin-left:auto}
.main-menu{display:flex;list-style:none;margin:0;padding:0;gap:18px}
.main-menu a{padding:8px 12px;font-weight:600;border-radius:var(--radius-sm);color:var(--color-text-dark)}
.main-menu a:hover,.main-menu .current-menu-item a{background:rgba(26,35,126,.08);color:var(--color-primary)}

/* LOCATION MODAL */
.location-modal{position:fixed;inset:0;display:none;z-index:2000}
.location-modal[hidden]{display:none!important}
.location-modal.is-visible,.location-modal.is-active{display:flex!important;align-items:center;justify-content:center}
.location-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.location-modal-content{position:relative;background:#fff;border-radius:14px;padding:22px;width:420px;max-width:92%;box-shadow:0 20px 50px rgba(0,0,0,.25);z-index:1}
.location-modal-title{font-size:1.15rem;font-weight:600;margin:0 0 4px}
.location-modal-subtitle{font-size:.85rem;color:#6B7280;margin-bottom:14px}
.location-modal-close{position:absolute;right:12px;top:10px;border:none;background:none;font-size:1.2rem;cursor:pointer;color:#6B7280}

/* LOCATION INPUT */
.location-input-wrapper{position:relative}
.location-input{width:100%;padding:12px 44px 12px 14px;font-size:.95rem;border-radius:8px;border:1.5px solid var(--color-border);outline:none}
.location-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(255,87,34,.15)}
.location-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:none;background:#eee;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:#555}
.location-clear:hover{background:#ddd}

/* LOCATION SUGGESTIONS */
#location-suggestions{list-style:none;margin:8px 0 0;padding:0;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 25px rgba(0,0,0,.08);max-height:260px;overflow-y:auto}
#location-suggestions li{list-style:none;padding:12px 14px;border-bottom:1px solid #f1f1f1;cursor:pointer;font-size:.95rem}
#location-suggestions li:last-child{border-bottom:none}
#location-suggestions li:hover{background:#f0f6ff}

/* MODAL ACTIONS */
.location-modal-actions{display:flex;gap:12px;margin-top:18px}
.btn-location-use-gps,.btn-location-save{flex:1;padding:11px 0;border-radius:8px;font-weight:600;cursor:pointer}
.btn-location-use-gps{background:#fff;border:1.5px solid var(--color-secondary);color:var(--color-secondary)}
.btn-location-save{background:var(--color-primary);border:none;color:#fff}
.btn-location-save:hover{background:#E64A19}

/* FOOTER */
.site-footer{background:var(--color-secondary);color:#ddd;padding:30px 20px;margin-top:40px}
.footer-bottom{max-width:var(--max-width);margin:auto;text-align:center}
.footer-links a{color:#fff;margin:0 10px}
.footer-links a:hover{color:var(--color-primary)}
.copyright-text{margin-top:15px;padding-top:15px;border-top:1px solid rgba(255,255,255,.2);font-size:.85rem}
/* HEADER ALIGNMENT FIX */
.header-inner{align-items:center}
.site-branding{display:flex;align-items:center}
.site-branding img{margin-top:-1px}

/* LOCATION + SEARCH BASELINE FIX */
.header-location,.header-search,.main-navigation{display:flex;align-items:center}

/* SEARCH WIDTH CONTROL */
.header-search{max-width:520px}

/* SEARCH FORM CENTERING */
.search-form{align-items:center}

/* NAV SPACING */
.main-navigation{margin-left:16px}

/* REMOVE EXTRA HEIGHT FEEL */
.site-header{padding-top:6px;padding-bottom:6px}

.search-form{position:relative;}
.typeahead-list{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  background:#fff;
  border:1px solid #ddd;
  z-index:9999;
  display:none;
}
.typeahead-list li{
  padding:10px;
  cursor:pointer;
}
.typeahead-list li:hover{
  background:#f2f2f2;
}

/* Spinner for GPS Button */
.spinner-small {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Make btnUseGps flex for alignment */
.btn-location-use-gps {
    display: flex;
    align-items: center;
    justify-content: center;
}
