/* Site-specific small overrides (moved from inline <style>) */
.call-now {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 9999;
}
@media (max-width: 480px) {
  .call-label { display: none; }
}

/* Small helper to visually center partner images inside slots when using object-contain */
.partners-slot { display:flex; align-items:center; justify-content:center; padding:6px; }
.partners-slot img { max-width: 100%; max-height: 100%; display: block; object-fit:contain; }

/* Mobile-friendly menu: use details/summary for collapsible sections on small screens */
details.menu-section { border-radius: .75rem; }
summary.menu-summary { list-style: none; cursor: pointer; padding: .75rem; background: white; border: 1px solid #eef2ff; border-radius: .75rem; display: flex; align-items: center; justify-content: space-between; }
summary.menu-summary::-webkit-details-marker { display: none; }
summary.menu-summary .chev { transition: transform .2s ease; }
details[open] summary.menu-summary .chev { transform: rotate(90deg); }

/* Ensure menu cards stretch and have consistent spacing */
.menu-card { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }

/* Show more button for long lists inside menu cards */
.show-more-btn { display: inline-block; margin-top: .5rem; background: transparent; border: 1px solid rgba(99,102,241,0.08); color: #4b5563; padding: .4rem .6rem; border-radius: .5rem; font-size: .875rem; cursor: pointer; }
.show-more-btn:hover { background: rgba(15,23,42,0.03); }
.menu-card ul li.hidden { display: none; }

/* Make room when nav is fixed: adjust body padding so fixed nav doesn't overlap content */
body { padding-top: 16px; }

/* show-more visual polish: blend with site theme and align to the right */
.show-more-btn { background: transparent; border: 1px solid rgba(179,92,32,0.12); color: #374151; padding: .45rem .7rem; border-radius: .5rem; font-weight: 600; margin-left: auto; display: inline-block; }
.show-more-btn:hover { background: rgba(179,92,32,0.06); }

/* Smooth open/close for details accordion: animate max-height on the menu-card content */
.menu-card { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
details .menu-card { max-height: 0; overflow: hidden; transition: max-height 260ms ease; }
details[open] .menu-card { max-height: 1200px; }

/* Partners grid for static layout */
.partners-grid { display: grid; gap: 1rem; align-items:stretch; grid-auto-rows: 1fr; }

/* Desktop: 4 columns so 8 items = 2 rows of 4 */
/* Desktop & small-desktop: 4 columns so 8 items = 2 rows of 4 (use 900px threshold for broader desktop support) */
@media (min-width: 900px) {
  .partners-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

/* Tablet: 2 columns */
@media (min-width: 640px) and (max-width: 899px) {
  .partners-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Mobile: 1 column */
@media (max-width: 639px) {
  .partners-grid { grid-template-columns: 1fr; }
}

.partner-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:0.75rem; background:white; border-radius:.75rem; padding:1.25rem; border:1px solid #eef2ff; box-shadow: 0 6px 18px rgba(2,6,23,0.06); height:100%; box-sizing:border-box; }
.partner-card .logo-box { width:140px; height:140px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.98); padding:8px; border-radius:12px; overflow:hidden; box-shadow: 0 4px 10px rgba(15,23,42,0.06); flex-shrink:0; }
.partner-card img { width:120px; height:120px; object-fit:contain; display:block; }
.partner-card h4 { margin:0; font-weight:800; color:#0f172a; font-size:1.15rem; }
.partner-card p { margin:0; color:#475569; font-size:0.95rem; line-height:1.3; }

/* Top header hide-on-scroll behavior */
#top-header {
  position: relative; /* keep document flow until hidden */
  transition: transform 220ms ease, opacity 220ms ease;
  z-index: 60;
}
#top-header.hide-on-scroll { transform: translateY(-100%); opacity: 0; }

/* Compact nav when header is hidden */
nav.nav-compact > div { padding-top: .25rem; padding-bottom: .25rem; }
nav { transition: box-shadow 200ms ease, background-color 200ms ease; }
nav.nav-compact { box-shadow: 0 6px 18px rgba(2,6,23,0.08); background-color: rgba(255,255,255,0.98); }

/* Ensure body top padding accounts for visible nav height; keeps layout stable */
@media (min-width: 768px) {
  body { padding-top: 0.5rem; }
}

/* Make menu images match sizes on small screens so they read consistently */
@media (max-width: 767px) {
  /* target the two menu images inside the About section */
  #about .menu-zoom img {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    display: block;
    object-fit: contain; /* don't crop the menus */
  }
}

