/* ──────────────────────────────────────────────
 * Rutledge Theme — Custom CSS
 * Supplements Tailwind CSS CDN
 * ────────────────────────────────────────────── */

/* Base */
html { font-size: 16px; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background-color: #a7f3d0; color: #064e3b; }

/* Bounce slow animation (hero floating card) */
@keyframes bounce-slow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
.animate-bounce-slow { animation: bounce-slow 3s ease-in-out infinite; }

/* AOS custom overrides to match Framer Motion feel */
[data-aos] { transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); }

/* Navigation dropdown styling */
.nav-dropdown { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 50; padding-top: 0.75rem; }
.nav-item:hover .nav-dropdown,
.nav-dropdown:hover { display: block; }
.nav-dropdown-content { background: white; border-radius: 1rem; box-shadow: 0 20px 60px rgba(0,0,0,0.12); border: 1px solid #f1f5f9; overflow: hidden; min-width: 400px; }

/* Mobile menu */
.mobile-menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 55; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
.mobile-menu-overlay.active { opacity: 1; pointer-events: auto; }
.mobile-menu-panel { position: fixed; top: 0; right: 0; bottom: 0; width: 320px; max-width: 90vw; background: white; z-index: 60; transform: translateX(100%); transition: transform 0.3s ease; overflow-y: auto; }
.mobile-menu-panel.active { transform: translateX(0); }

/* Accordion */
.accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease; }
.accordion-item.open .accordion-content { max-height: 500px; }
.accordion-trigger svg.chevron { transition: transform 0.3s ease; }
.accordion-item.open .accordion-trigger svg.chevron { transform: rotate(180deg); }
.accordion-item.open .accordion-icon-plus { display: none; }
.accordion-item.open .accordion-icon-minus { display: inline-block !important; }
.accordion-item:not(.open) .accordion-icon-plus { display: inline-block; }
.accordion-item:not(.open) .accordion-icon-minus { display: none !important; }

/* Carousel dots */
.carousel-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.3); transition: all 0.3s ease; cursor: pointer; }
.carousel-dot.active { background: white; width: 24px; border-radius: 4px; }

/* Sticky header transition */
.site-header { transition: all 0.5s ease; }
.site-header.scrolled { background: rgba(255,255,255,0.9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 1px 3px rgba(0,0,0,0.05); border-bottom-color: rgba(226,232,240,0.6); padding-top: 0.75rem; padding-bottom: 0.75rem; }

/* Line clamp utilities */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Image hover zoom */
.img-zoom { transition: transform 0.7s ease; }
.group:hover .img-zoom { transform: scale(1.05); }

/* Blog category filter active state */
.cat-filter.active { background-color: #047857; color: white; box-shadow: 0 4px 14px rgba(4,120,87,0.2); }

/* Smooth page transitions */
.page-content { animation: fadeIn 0.4s ease-out; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* WordPress admin bar fix */
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
    body.admin-bar .site-header { top: 46px; }
}

/* Remove default WP styles that conflict */
img { max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }
