/* Layout glue for the original CardioCare CSS/Tailwind bundle and CI4 views. */
body { font-family: Inter, sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: Outfit, sans-serif; }
.theme-brand { flex-shrink: 0; color: #0f172a; }
.theme-brand > span:last-child { display: flex; flex-direction: column; }
.theme-brand-name { color: #0f172a; display: block; white-space: nowrap; }
.theme-brand-caption { display: block; color: #64748b; white-space: nowrap; }
#navbar { background: rgba(255, 255, 255, .97); box-shadow: 0 1px 0 rgba(15, 23, 42, .07); }
#navbar .nav-link { padding: 0; border-radius: 0; background: none; color: #334155; font-family: Outfit, sans-serif; font-weight: 500; }
#navbar .nav-link:hover, #navbar .nav-link[aria-current="page"] { color: #dc2626; }
#navbar .nav-link[aria-current="page"]::after { width: 100%; }
#navbar .gallery-nav > .nav-link { font-weight: 600; }
.gallery-nav { position: relative; display: flex; align-items: center; gap: 3px; }
.gallery-nav-toggle { width: 14px; height: 20px; padding: 0; display: grid; place-items: center; flex: none; color: #0f172a; background: transparent; border: 0; border-radius: 0; font-size: 0; line-height: 0; cursor: pointer; }
.gallery-nav-toggle::before { content: ""; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-1px) rotate(45deg); }
.gallery-nav-toggle:focus-visible { outline: 2px solid #dc2626; outline-offset: 3px; border-radius: 2px; }
.gallery-nav-menu { position: absolute; top: 100%; left: -14px; min-width: 250px; padding: 8px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 16px 35px rgba(15, 23, 42, .15); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 30; }
.gallery-nav-menu a { display: block; padding: 10px 12px; border-radius: 6px; color: #334155; font-family: Outfit, sans-serif; font-size: 13px; white-space: nowrap; }
.gallery-nav-menu a:hover, .gallery-nav-menu a:focus-visible, .gallery-nav-menu a[aria-current="page"] { color: #dc2626; background: #fef2f2; }
.gallery-nav.is-open .gallery-nav-menu { opacity: 1; visibility: visible; transform: translateY(0); }
#mobile-menu .gallery-nav-mobile { display: grid; grid-template-columns: 1fr auto; }
#mobile-menu .gallery-nav-mobile .gallery-nav-toggle { color: #e2e8f0; width: 40px; height: 40px; }
#mobile-menu .gallery-nav-mobile .gallery-nav-menu { position: static; grid-column: 1 / -1; display: none; min-width: 0; padding: 2px 0 5px 14px; border: 0; border-left: 1px solid #475569; border-radius: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; transition: none; }
#mobile-menu .gallery-nav-mobile.is-open .gallery-nav-menu { display: block; }
#mobile-menu .gallery-nav-mobile .gallery-nav-menu a { color: #cbd5e1; white-space: normal; padding: 9px 10px; }
#mobile-menu .gallery-nav-mobile .gallery-nav-menu a:hover, #mobile-menu .gallery-nav-mobile .gallery-nav-menu a:focus-visible, #mobile-menu .gallery-nav-mobile .gallery-nav-menu a[aria-current="page"] { color: #fca5a5; background: rgba(255,255,255,.06); }
#mobile-menu .nav-link { padding: 10px 0; color: #e2e8f0; }
#mobile-menu .nav-link:hover { color: #fca5a5; }
.theme-menu-button { color: #475569; border-radius: 8px; }
.theme-menu-button:hover { background: #f1f5f9; color: #dc2626; }
.skip-link { position: absolute; top: -80px; left: 16px; padding: 10px 18px; background: #0f172a; color: #fff; z-index: 1000; }
.skip-link:focus { top: 8px; }

.theme-home .hero-section { min-height: 100vh; }
.theme-home h1.text-4xl { font-size: 2.25rem; }
.theme-home h2.text-3xl { font-size: 1.875rem; }
.theme-home h2.text-2xl, .theme-home h3.text-2xl { font-size: 1.5rem; }
.theme-home .hero-section h1 { max-width: 610px; }
.theme-home .hero-section img { width: 100%; height: 100%; object-fit: cover; }
.theme-home .theme-contact-option { min-height: 112px; border: 1px solid #475569; background: #334155; border-radius: 10px; padding: 18px; display: flex; flex-direction: column; gap: 5px; }
.theme-home .theme-contact-option span { color: #cbd5e1; font-size: 13px; }
.theme-home .theme-contact-option a { color: #fff; font-family: Outfit, sans-serif; font-weight: 600; }
.theme-home .theme-contact-option a:hover { color: #fca5a5; }
.theme-home .theme-about-photo { width: 100%; height: 280px; object-fit: cover; }
.theme-home .theme-check { width: 24px; height: 24px; background: #fee2e2; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
.theme-home .blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.theme-home .faq-item { border-bottom: 1px solid #e2e8f0; }
.theme-home .faq-item:first-child { border-top: 1px solid #e2e8f0; }
.theme-home .faq-question { list-style: none; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; font-family: Outfit, sans-serif; font-weight: 600; font-size: 16px; }
.theme-home .faq-question::-webkit-details-marker { display: none; }
.theme-home .faq-answer { max-height: none; display: none; padding: 0 38px 20px 0; color: #64748b; font-size: 14px; line-height: 1.75; }
.theme-home .faq-item[open] .faq-answer { display: block; }
.theme-home .faq-item[open] .faq-icon { transform: rotate(45deg); }
.theme-home .testimonial-card { height: 100%; }
.theme-home .testimonial-card a:hover .text-slate-800 { color: #dc2626; }
[data-aos] { opacity: 1 !important; transform: none !important; }

.theme-footer { background: #050d1a; }
.theme-footer p { color: #94a3b8; }
.theme-footer h2, .theme-footer h3 { color: #fff; }
.theme-footer .theme-footer-brand { color: #fff; }
.theme-footer-links h3 { font-family: Outfit, sans-serif; font-weight: 700; font-size: 15px; margin: 0 0 18px; }
.theme-footer-links a { display: block; color: #94a3b8; font-size: 13px; line-height: 1.55; margin-bottom: 13px; }
.theme-footer-links a:hover, .theme-footer a:hover { color: #f87171; }
.theme-footer-links p { color: #94a3b8; font-size: 13px; line-height: 1.65; }
.bg-red-600 a.bg-white { color: #dc2626; }
.bg-red-600 a.bg-white:hover { color: #991b1b; }

.whatsapp-float { right: 24px; bottom: 24px; width: 60px; height: 60px; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 24px rgba(18, 92, 47, .28); isolation: isolate; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.whatsapp-float::before, .whatsapp-float::after { content: ''; position: absolute; inset: -2px; border: 2px solid rgba(37, 211, 102, .58); border-radius: 50%; pointer-events: none; animation: whatsapp-wave 2.8s ease-out infinite; }
.whatsapp-float::after { animation-delay: 1.4s; }
.whatsapp-float img { position: relative; z-index: 1; display: block; width: 34px; height: 34px; object-fit: contain; }
.whatsapp-float:hover { background: #1ebe5b; transform: translateY(-3px) scale(1.07); box-shadow: 0 12px 28px rgba(18, 92, 47, .34); }
.whatsapp-float:focus-visible { outline: 3px solid #0f172a; outline-offset: 5px; }
.back-to-top { right: 31px; bottom: 104px; }
@keyframes whatsapp-wave { 0% { transform: scale(1); opacity: .65; } 70%, 100% { transform: scale(1.65); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .whatsapp-float::before, .whatsapp-float::after { animation: none; opacity: 0; } }

.theme-inner .page-hero h1, .theme-inner .page-hero--split h1 { font-family: Outfit, sans-serif; font-weight: 800; }
.theme-inner .page-hero:not(.page-hero--split) { background: var(--medical-gradient); color: #fff; }
.theme-inner .page-hero:not(.page-hero--split) h1 { font-size: clamp(2.5rem, 4vw, 3.4rem); color: #fff; }
.theme-inner .page-hero:not(.page-hero--split) p, .theme-inner .page-hero:not(.page-hero--split) .breadcrumb { color: #cbd5e1; }
.theme-inner .page-hero:not(.page-hero--split) .kicker, .theme-inner .page-hero:not(.page-hero--split) .eyebrow { color: #fca5a5; }
.theme-inner .page-hero--split .hero-split, .theme-inner .page-hero--split .hero-split-media { min-height: 620px; }
.theme-inner .section h2, .theme-inner .section-sm h2 { font-family: Outfit, sans-serif; font-weight: 700; }
.theme-inner .btn-outline { color: #dc2626; border: 1px solid #dc2626; padding: 12px 23px; }
.theme-inner .btn-outline:hover { color: #fff; background: #dc2626; }
.theme-inner .page-hero--split .btn-outline { color: #fff; border-color: rgba(255, 255, 255, .6); }
.theme-inner .page-hero--split .btn-outline:hover { background: rgba(255, 255, 255, .12); }
.theme-inner .btn { font-family: Outfit, sans-serif; }
.theme-inner .page-hero--split .hero-split-media img { height: 100%; }
.theme-inner .treatment-card-placeholder { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 16px; padding: 27px; background: linear-gradient(135deg, #111d32 0%, #263750 72%, #7d2630 100%); color: #fff; }
.theme-inner .treatment-card-placeholder svg { width: 44px; height: 44px; stroke: #fca5a5; stroke-width: 1.4; }
.theme-inner .treatment-card-placeholder span { font-family: Outfit, sans-serif; font-size: 22px; font-weight: 650; line-height: 1.15; }
.theme-inner .treatment-card .image-wrap img { object-position: center 38%; }

@media (max-width: 1023px) {
  #navbar .hidden.lg\\:flex, .theme-home .hidden.lg\\:flex { display: none !important; }
  #mobile-menu:not(.hidden) { display: block; }
  .theme-home .hero-section { min-height: 660px; }
}
@media (min-width: 1024px) {
  #navbar .hidden.lg\\:flex, .theme-home .hidden.lg\\:flex { display: flex !important; }
  .theme-home h1.lg\\:text-5xl { font-size: 3rem; }
  .theme-home h2.lg\\:text-4xl { font-size: 2.25rem; }
  .theme-home h3.lg\\:text-3xl { font-size: 1.875rem; }
}
@media (max-width: 640px) {
  .whatsapp-float { right: 18px; bottom: 20px; width: 56px; height: 56px; }
  .whatsapp-float img { width: 32px; height: 32px; }
  .back-to-top { right: 23px; bottom: 94px; }
  .topbar .flex-col > .flex:last-child { display: none; }
  .theme-home .hero-section { min-height: auto; }
  .theme-home .hero-section .max-w-7xl { padding-top: 85px; padding-bottom: 100px; }
  .theme-home .hero-section h1 { font-size: 2.25rem; }
  .theme-home .hero-section .flex-wrap.gap-8 { gap: 16px; }
  .theme-home .hero-section .border-l { padding-left: 16px; }
  .theme-home .section-padding { padding: 70px 0; }
  .theme-home .theme-about-photo { height: 230px; }
  .theme-inner .page-hero--split .hero-split, .theme-inner .page-hero--split .hero-split-media { min-height: 0; }
  .theme-inner .legal-sidebar { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .theme-inner .legal-sidebar .eyebrow { display: flex; margin-bottom: 10px; }
  .theme-inner .legal-sidebar a { display: block; padding: 9px 0; border-bottom: 1px solid #e2e8f0; }
}

/* Open the submenu from either the Galeri label or chevron. */
@media (hover: hover) {
  .gallery-nav:hover .gallery-nav-menu,
  .gallery-nav:focus-within .gallery-nav-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

@media (min-width: 1024px) {
  .theme-nav-links .gallery-nav-toggle { margin-top: 9px; }
}
