/* AhiBizz visual layer. Existing navy/gold identity and logo are preserved. */
:root {
  --ahi-radius-control: 13px;
  --ahi-radius-card: 18px;
  --ahi-radius-panel: 24px;
  --ahi-motion-fast: 140ms;
  --ahi-motion-enter: 220ms;
  --ahi-motion-ease: cubic-bezier(.2,.7,.2,1);
}
.ahi-directory { background: #fafbfC; }
.ahi-dir-header + main { margin-bottom: 0 !important; }
.ahi-dir-logo { border-radius: 11px; }
.ahi-chat-root { font-family: inherit; }
.ahi-dir-header { box-shadow: 0 1px 0 #ffffff12; }
.ahi-dir-header-inner { min-height: 76px; }
.ahi-dir-desktop-nav > a { padding: 25px 0; }
.ahi-dir-desktop-nav > a.is-current:after { left: 20%; right: 20%; height: 3px; border-radius: 4px; bottom: 13px; }
.ahi-dir-ecosystem-menu > div { border-radius: var(--ahi-radius-card); padding: 8px; }
.ahi-dir-ecosystem-menu a { border-radius: 11px; min-height: 44px; }
.ahi-dir-menu-toggle { min-width: 44px; min-height: 44px; border-radius: 12px; }
.ahi-dir-button, .ahi-dir-pagination button, .ahi-dir-contact-panel .ahi-chat-owner-action {
  border-radius: var(--ahi-radius-control);
  min-height: 46px;
  transition: background-color var(--ahi-motion-fast), color var(--ahi-motion-fast), transform var(--ahi-motion-fast) var(--ahi-motion-ease);
}
.ahi-dir-button:active:not(:disabled), .ahi-dir-menu-toggle:active { transform: scale(.98); }
.ahi-dir-hero { padding: 58px 0 56px; border-radius: 0 0 32px 32px; }
.ahi-dir-hero:before {
  background: radial-gradient(ellipse at 80% 5%,#345c883d,transparent 62%),radial-gradient(ellipse at 5% 100%,#d4a84b16,transparent 50%);
  opacity: 1;
}
.ahi-dir-hero:after { opacity: .35; background-size: 30px 30px; }
.ahi-dir-hero h1 { letter-spacing: -1.9px; }
.ahi-dir-hero p { margin: 17px 0 28px; }
.ahi-dir-search-form { padding: 9px; border-radius: 22px; box-shadow: 0 0 0 5px #ffffff0b,0 12px 32px #07111d1a; }
.ahi-dir-search-field { padding: 0 18px; }
.ahi-dir-search-field input, .ahi-dir-search-field select { border-radius: 10px; }
.ahi-dir-search-form .ahi-dir-button { border-radius: 14px; min-height: 50px; }
.ahi-dir-section { padding-top: 38px; }
.ahi-dir-section-title { margin-bottom: 20px; }
.ahi-dir-section-title h2 { letter-spacing: -.7px; }
.ahi-dir-text-link { min-height: 44px; font-size: 12px; }
.ahi-dir-category-card { border-radius: var(--ahi-radius-card); padding: 21px 18px; gap: 13px; }
.ahi-dir-category-icon { border-radius: 15px; background: #f6f0e2; }
.ahi-dir-category-card strong { font-size: 13px; overflow-wrap: anywhere; }
.ahi-dir-category-card small { font-size: 11px; color: #637083; }
.ahi-dir-card { border-radius: 20px; box-shadow: 0 3px 14px #14254004; transition: transform var(--ahi-motion-enter) var(--ahi-motion-ease); }
.ahi-dir-card:hover { box-shadow: 0 3px 14px #14254004; transform: none; }
.ahi-dir-card-image > img { transition: transform 260ms var(--ahi-motion-ease); }
.ahi-dir-card-category { border-radius: 20px; padding: 5px 11px; font-size: 11px; }
.ahi-dir-card-content { padding: 19px 18px 16px; }
.ahi-dir-card-content h3 { font-size: 16px; }
.ahi-dir-card-description { font-size: 12px; }
.ahi-dir-card-location { font-size: 12px; }
.ahi-dir-nearby, .ahi-dir-credit-banner, .ahi-dir-plan, .ahi-dir-detail-block,
.ahi-dir-contact-panel, .ahi-dir-benefit-grid article, .ahi-dir-ecosystem-grid article,
.ahi-dir-dashboard-card { border-radius: var(--ahi-radius-panel); }
.ahi-dir-nearby { background: #f6f0e4; }
.ahi-dir-credit-banner { background: linear-gradient(115deg,#142540,#203c60); }
.ahi-dir-notice { border-radius: var(--ahi-radius-card); }
.ahi-dir-plan-renewal, .ahi-dir-gallery img, .ahi-dir-menu-item img,
.ahi-dir-vehicle, .ahi-dir-vehicle > img, .ahi-pwa-install-help { border-radius: var(--ahi-radius-control); }
.ahi-dir-tags span, .ahi-dir-preparing { border-radius: 20px; padding: 5px 10px; }
.ahi-dir-plan li { font-size: 13px; }
.ahi-dir-page-banner { background: #f0f3f7; border-radius: 0 0 28px 28px; }
.ahi-admin-card { border-radius: var(--ahi-radius-card); }
.ahi-admin-panel, .ahi-admin-detail, .ahi-admin-upcoming { border-radius: var(--ahi-radius-panel); }
.ahi-admin-filters input, .ahi-admin-filters select, .ahi-admin-page button,
.ahi-admin-shortcuts a, .ahi-admin-actions a { border-radius: 12px; }
.ahi-admin-page button, .ahi-admin-shortcuts a, .ahi-admin-actions a { min-height: 44px; }
.ahi-admin-card > button { border-radius: 0; }

/* Entrance effects never conceal the hero, search, or primary image while loading. */
@keyframes ahi-surface-enter {
  from { opacity: .75; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.ahi-dir-category-card, .ahi-dir-card, .ahi-dir-dashboard-card, .ahi-admin-card {
  animation: ahi-surface-enter var(--ahi-motion-enter) var(--ahi-motion-ease) backwards;
}
.ahi-dir-categories-grid > :nth-child(2), .ahi-dir-card-grid > :nth-child(2) { animation-delay: 25ms; }
.ahi-dir-categories-grid > :nth-child(3), .ahi-dir-card-grid > :nth-child(3) { animation-delay: 50ms; }
.ahi-dir-categories-grid > :nth-child(4), .ahi-dir-card-grid > :nth-child(4) { animation-delay: 75ms; }
.ahi-dir-mobile-menu, .ahi-dir-ecosystem-menu[open] > div { animation: ahi-surface-enter 180ms var(--ahi-motion-ease); }

@media (hover:hover) and (pointer:fine) {
  .ahi-dir-card:hover, .ahi-dir-category-card:hover, .ahi-dir-dashboard-card:hover { transform: translateY(-3px); }
  .ahi-dir-card:hover .ahi-dir-card-image > img { transform: scale(1.025); }
  .ahi-dir-category-card, .ahi-dir-dashboard-card { transition: transform 180ms var(--ahi-motion-ease),border-color var(--ahi-motion-fast),background-color var(--ahi-motion-fast); }
  .ahi-dir-ecosystem-menu a:hover { background: #f5f1e9; }
  .ahi-dir-menu-toggle:hover { background: #ffffff0d; }
}
@media (min-width:1600px) { .ahi-dir-hero { padding: 66px 0 64px; } }
@media (max-width:1150px) { .ahi-dir-category-card { padding: 18px 13px; gap: 10px; } }
@media (max-width:900px) {
  .ahi-dir-header-inner { min-height: 68px; }
  .ahi-dir-mobile-menu {
    position: absolute; left: 12px; right: 12px; top: calc(100% + 8px);
    padding: 12px; border: 1px solid #ffffff18; border-radius: 22px;
    background: #142540; box-shadow: 0 16px 36px #0914252b;
    max-height: calc(100dvh - 170px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overscroll-behavior: contain;
  }
  .ahi-dir-mobile-menu > a, .ahi-dir-mobile-menu > .ahi-pwa-install,
  .ahi-dir-mobile-menu .ahi-dir-ecosystem-menu { padding: 11px 13px; border-radius: 12px; min-height: 46px; }
  .ahi-dir-mobile-menu > a.is-current { color: #e6cb91; background: #ffffff09; }
  .ahi-dir-mobile-menu .ahi-dir-ecosystem-menu > div { border-radius: 14px; }
  .ahi-dir-mobile-menu .ahi-pwa-install-button { padding: 0; min-height: 24px; }
}
@media (max-width:640px) {
  .ahi-dir-header-inner { min-height: 64px; }
  .ahi-dir-hero { padding: 26px 0 28px; border-radius: 0 0 26px 26px; }
  .ahi-dir-hero h1 { font-size: 32px; letter-spacing: -1.2px; }
  .ahi-dir-hero p { margin: 12px auto 22px; font-size: 13px; }
  .ahi-dir-search-form { padding: 7px; border-radius: 20px; }
  .ahi-dir-search-field { height: 49px; padding: 0 13px; }
  .ahi-dir-search-field input, .ahi-dir-search-field select { height: 47px; font-size: 16px; }
  .ahi-dir-search-form .ahi-dir-button { min-height: 48px; border-radius: 13px; }
  .ahi-dir-section { padding-top: 28px; }
  .ahi-dir-section-title { gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
  .ahi-dir-section-title h2 { font-size: 20px; }
  .ahi-dir-text-link { font-size: 12px; min-height: 44px; gap: 5px; }
  .ahi-dir-category-card { padding: 15px 11px; gap: 9px; min-height: 86px; }
  .ahi-dir-category-icon { width: 36px; height: 40px; border-radius: 13px; }
  .ahi-dir-category-icon svg { width: 21px; height: 21px; }
  .ahi-dir-category-card strong { font-size: 12px; line-height: 1.45; }
  .ahi-dir-category-card small { font-size: 11px; }
  .ahi-dir-card-grid { gap: 12px; }
  .ahi-dir-card { border-radius: 18px; }
  .ahi-dir-card-category { font-size: 10px; padding: 4px 8px; }
  .ahi-dir-card-content { padding: 14px 12px 12px; }
  .ahi-dir-card-content h3 { font-size: 14px; min-height: 35px; }
  .ahi-dir-card-location { font-size: 11px; line-height: 1.5; }
  .ahi-dir-card-location svg { width: 14px; height: 14px; }
  .ahi-dir-featured .ahi-dir-section-title { display: block; }
  .ahi-dir-featured .ahi-dir-text-link { margin-top: 2px; margin-right: 70px; }
  .ahi-dir-nearby { padding: 22px 18px; border-radius: 22px; }
  .ahi-dir-nearby h3 { font-size: 16px; }
  .ahi-dir-nearby p, .ahi-dir-credit-banner p { font-size: 12px; }
  .ahi-dir-credit-banner { padding: 26px 23px; }
  .ahi-dir-heading p, .ahi-dir-notice { font-size: 13px; }
  .ahi-dir-footer { padding-bottom: 100px; }
  .ahi-dir-bottom-nav {
    left: 12px; right: 80px; bottom: calc(10px + env(safe-area-inset-bottom));
    padding: 6px; border: 1px solid #e1e6ed; border-radius: 23px;
    box-shadow: 0 5px 24px #14254014; gap: 2px;
  }
  .ahi-dir-bottom-nav a { min-height: 52px; border-radius: 17px; font-size: 11px; gap: 3px; color: #627184; }
  .ahi-dir-bottom-nav a.is-current { background: #f5f0e4; color: #70551d; }
  .ahi-dir-bottom-nav svg { width: 21px; height: 21px; }
  .ahi-chat-launcher { bottom: calc(14px + env(safe-area-inset-bottom)) !important; }
}
.ahi-pwa-mode body { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
.ahi-pwa-mode .ahi-dir-mobile-menu {
  position: absolute; left: 12px; right: 12px; top: calc(100% + 8px);
  padding: 12px; background: #142540; border: 1px solid #ffffff18;
  border-radius: 22px; box-shadow: 0 16px 36px #0914252b;
  max-height: calc(100dvh - 170px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  overflow: auto; overscroll-behavior: contain;
}
.ahi-pwa-mode .ahi-dir-mobile-menu > a { color: #fff; font-size: 14px; padding: 11px 13px; border-radius: 12px; min-height: 46px; }
.ahi-pwa-mode .ahi-dir-mobile-menu > a.is-current { color: #e6cb91; background: #ffffff09; }
.ahi-pwa-mode .ahi-dir-mobile-menu .ahi-dir-ecosystem-menu { padding: 11px 13px; }
.ahi-pwa-mode .ahi-dir-mobile-menu .ahi-dir-ecosystem-menu > div { position: static; margin-top: 12px; min-width: 0; background: #1d3454; border: 0; box-shadow: none; }
.ahi-pwa-mode .ahi-dir-mobile-menu .ahi-dir-gold-link { color: #e0c68f !important; }
.ahi-pwa-mode .ahi-dir-bottom-nav {
  left: max(12px,calc((100vw - 600px)/2)); right: max(80px,calc((100vw - 600px)/2 + 68px));
  bottom: calc(10px + env(safe-area-inset-bottom)); padding: 6px;
  border: 1px solid #e1e6ed; border-radius: 23px; box-shadow: 0 5px 24px #14254014; gap: 2px;
}
.ahi-pwa-mode .ahi-dir-bottom-nav a { min-height: 52px; border-radius: 17px; font-size: 11px; gap: 3px; color: #627184; }
.ahi-pwa-mode .ahi-dir-bottom-nav a.is-current { background: #f5f0e4; color: #70551d; }
.ahi-pwa-mode .ahi-chat-launcher {
  width: 54px !important; height: 60px !important; padding: 0 !important; justify-content: center;
  bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  right: max(12px,calc((100vw - 600px)/2)) !important; border-radius: 18px !important;
}
.ahi-pwa-mode .ahi-chat-launcher > span:last-child:not(.ahi-chat-mascot) { display: none; }
.ahi-pwa-mode .ahi-chat-launcher .ahi-chat-mascot { --s: .125; }

/* Recovery and approval screens intentionally have no chat launcher. */
@supports selector(body:has(button)) {
  @media (max-width:640px) {
    body:not(:has(.ahi-chat-launcher)) .ahi-dir-bottom-nav { right: 12px; }
  }
  .ahi-pwa-mode body:not(:has(.ahi-chat-launcher)) .ahi-dir-bottom-nav {
    right: max(12px,calc((100vw - 600px)/2));
  }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  .ahi-directory *, .ahi-directory *:before, .ahi-directory *:after,
  .ahi-dir-header *, .ahi-dir-bottom-nav *, .ahi-admin-page * {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
  .ahi-dir-card:hover, .ahi-dir-category-card:hover, .ahi-dir-dashboard-card:hover,
  .ahi-dir-card:hover .ahi-dir-card-image > img, .ahi-dir-button:active:not(:disabled), .ahi-dir-menu-toggle:active { transform: none; }
}
