/*
Theme Name: DOPHACO - Medical B2B Corporate Theme
Theme URI: https://dophaco.com
Description: Giao diện Hồ sơ Năng lực Điện tử & Catalogue B2B chuẩn đấu thầu bệnh viện của Công ty TNHH Sản Xuất Dụng Cụ Y Tế Đông Pha (DOPHACO). Chuẩn ISO 13485:2016, tiệt trùng EO, tối ưu hiệu năng và tương thích 100% với React TanStack Start.
Author: DOPHACO / Alphas Tech
Author URI: https://dophaco.com
Version: 2.8.10
License: GNU General Public License v2 or later
Text Domain: dophaco
*/

/* 1. CSS bundle đã được nạp chuẩn qua functions.php với cache-busting */

/* 2. ADMIN BAR FIX KHI ĐĂNG NHẬP WORDPRESS */
.admin-bar header#site-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  .admin-bar header#site-header {
    top: 46px;
  }
}

/* 3. BASE RESETS ĐỒNG BỘ 100% VỚI REACT */
html {
  scroll-behavior: smooth;
  font-family: 'Lexend', ui-sans-serif, system-ui, sans-serif;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  padding: 0;
  background-color: #ffffff;
  color: #0f172a;
  overflow-x: clip;
  max-width: 100vw;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* Force Quote Modal Submit button to always be solid red */
#dophaco-quote-modal button[type="submit"] {
  background-color: #D31924 !important;
  color: #ffffff !important;
  border: 1px solid #D31924 !important;
  font-weight: 700 !important;
}

/* 4. HERO SECTION TYPOGRAPHY LOCK - CHỮ TRẮNG TUYỆT ĐỐI KHÔNG BỊ OVERRIDE */
#hero-section,
#hero-section h1,
#hero-section h1 *,
#hero-section p {
  color: #ffffff !important;
}

#hero-section p:last-of-type,
#hero-section .text-sky-100\/85 {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 5. ANIMATIONS ĐỒNG BỘ 100% VỚI REACT */
@keyframes dophacoFadeInUp {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes dophacoFadeInRight {
  from {
    opacity: 0;
    transform: translateX(35px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-hero-badge {
  animation: dophacoFadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
}

.animate-hero-title {
  animation: dophacoFadeInUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}

@keyframes heroKenBurnsZoomOut {
  0% {
    transform: scale(1.08);
  }
  50% {
    transform: scale(1.0);
  }
  100% {
    transform: scale(1.08);
  }
}

.hero-slide-zoom-out {
  animation: heroKenBurnsZoomOut 18s ease-in-out infinite alternate;
  transform-origin: center center;
  will-change: transform;
}

@keyframes marqueeScroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

.animate-marquee {
  display: flex;
  width: max-content;
  animation: marqueeScroll 40s linear infinite;
  will-change: transform;
}

.animate-marquee:hover {
  animation-play-state: paused;
}

/* 6. FLOATING BUTTONS RADAR PULSE & ICON ANIMATIONS */
@keyframes phoneRing {
  0%, 100% { transform: rotate(0deg) scale(1); }
  10%, 30% { transform: rotate(-16deg) scale(1.12); }
  20%, 40% { transform: rotate(16deg) scale(1.12); }
  50% { transform: rotate(0deg) scale(1); }
}
.animate-phone-ring {
  animation: phoneRing 2.2s ease-in-out infinite !important;
  transform-origin: center center;
}

@keyframes phonePulseRing {
  0% { transform: scale(0.95); opacity: 0.8; }
  50%, 100% { transform: scale(1.45); opacity: 0; }
}
.animate-phone-pulse-1 {
  animation: phonePulseRing 2.2s cubic-bezier(0.24, 0, 0.38, 1) infinite !important;
}
.animate-phone-pulse-2 {
  animation: phonePulseRing 2.2s cubic-bezier(0.24, 0, 0.38, 1) infinite 0.4s !important;
}

@keyframes scrollUpFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
.animate-scroll-up-float {
  animation: scrollUpFloat 2s ease-in-out infinite !important;
}

@keyframes zaloPulseRing {
  0% { transform: scale(0.95); opacity: 0.75; }
  50%, 100% { transform: scale(1.4); opacity: 0; }
}
.animate-zalo-pulse {
  animation: zaloPulseRing 2.4s cubic-bezier(0.24, 0, 0.38, 1) infinite 0.6s !important;
}

@keyframes iconWiggle {
  0%, 100% { transform: rotate(0deg) scale(1); }
  15% { transform: rotate(-10deg) scale(1.1); }
  30% { transform: rotate(10deg) scale(1.1); }
  45% { transform: rotate(-6deg) scale(1.05); }
  60% { transform: rotate(0deg) scale(1); }
}
.animate-zalo-wiggle {
  animation: iconWiggle 2.6s ease-in-out infinite 0.8s !important;
  transform-origin: center center;
}

@keyframes messengerPulseRing {
  0% { transform: scale(0.95); opacity: 0.7; }
  50%, 100% { transform: scale(1.4); opacity: 0; }
}
.animate-messenger-pulse {
  animation: messengerPulseRing 2.4s cubic-bezier(0.24, 0, 0.38, 1) infinite 1.2s !important;
}

@keyframes iconHeartbeat {
  0%, 100% { transform: scale(1); }
  15% { transform: scale(1.14); }
  30% { transform: scale(1); }
  45% { transform: scale(1.1); }
  60% { transform: scale(1); }
}
.animate-messenger-heartbeat {
  animation: iconHeartbeat 2.8s ease-in-out infinite 1.4s !important;
  transform-origin: center center;
}

@keyframes mapsPulseRing {
  0% { transform: scale(0.95); opacity: 0.65; }
  50%, 100% { transform: scale(1.35); opacity: 0; }
}
.animate-maps-pulse {
  animation: mapsPulseRing 2.6s cubic-bezier(0.24, 0, 0.38, 1) infinite 1.8s !important;
}

@keyframes mapsPinBounce {
  0%, 100% { transform: translateY(0); }
  20% { transform: translateY(-3px) scale(1.08); }
  40% { transform: translateY(0) scale(1); }
}
.animate-maps-bounce {
  animation: mapsPinBounce 3s ease-in-out infinite 2s !important;
  transform-origin: center center;
}

/* 7. BULLETPROOF HEADER & FOOTER LOGO / NAV AGAINST WOOCOMMERCE OVERRIDES */
header#site-header .site-logo-img {
  height: 3.5rem !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}
@media (min-width: 640px) {
  header#site-header .site-logo-img { height: 4rem !important; }
}
@media (min-width: 1024px) {
  header#site-header .site-logo-img { height: 68px !important; }
}
@media (min-width: 1280px) {
  header#site-header .site-logo-img { height: 74px !important; }
}

footer img[alt="DOPHA Logo"] {
  height: 4rem !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}
@media (min-width: 640px) {
  footer img[alt="DOPHA Logo"] { height: 5rem !important; }
}

header#site-header[data-has-hero="false"] {
  background-color: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid rgba(226, 232, 240, 0.85) !important;
}

#site-header .site-nav-link[data-active="true"] {
  color: #D31924 !important;
  position: relative;
}
#site-header .site-nav-link[data-active="true"]::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0.5rem;
  right: 0.5rem;
  height: 3px;
  background-color: #D31924;
  border-radius: 9999px;
}
