/* Estilos Base para alquilerdelanchas.com */
body { font-family: 'Poppins', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* === Estilos Hero y Tarjetas de Categoría === */
.hero-section { background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('../images/hero-background-home2.webp'); background-size: cover; background-position: center 70%; }
.hero-section h1, .hero-section p { text-shadow: 2px 2px 8px rgba(0,0,0,0.7); }
.category-card { position: relative; display: block; overflow: hidden; border-radius: 0.5rem; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05); height: 400px; }
.category-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease-in-out; }
.category-card:hover .category-image { transform: scale(1.1); }
.category-overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.5rem; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 100%); color: white; }
.category-title { font-size: 1.875rem; font-weight: 700; text-shadow: 1px 1px 4px rgba(0,0,0,0.8); }
.category-price { margin-top: 0.25rem; font-size: 1rem; font-weight: 400; opacity: 0.9; }

/* === Estilos Tarjetas de Embarcaciones (Grid) === */
.boat-card { background-color: white; border-radius: 0.5rem; overflow: hidden; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06); transition: all 0.3s ease-in-out; }
.boat-card:hover { transform: translateY(-5px); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05); }
.boat-image-container { position: relative; }
.boat-image { width: 100%; height: 250px; object-fit: cover; }
.boat-badge { position: absolute; top: 1rem; left: 1rem; background-color: rgba(14, 116, 144, 0.9); color: white; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.875rem; font-weight: 600; }
.boat-content { padding: 1.25rem; }
.boat-title { font-size: 1.25rem; font-weight: 700; color: #0c4a6e; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.boat-price { font-size: 1.125rem; font-weight: 600; color: #0369a1; margin-top: 0.25rem; }
.boat-amenities { padding: 0 1.25rem 1.25rem; border-top: 1px solid #f3f4f6; display: flex; flex-wrap: wrap; gap: 1rem; font-size: 0.875rem; color: #4b5563; }
.boat-amenities span { display: flex; align-items: center; gap: 0.5rem; }
.boat-amenities .fa-fw { color: #0ea5e9; }

/* === Estilos Página de Detalle === */
.boat-tag { display: inline-block; background-color: #f0f9ff; color: #0c4a6e; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.875rem; font-weight: 600; }
.gallery-image { width: 100%; height: 100%; object-fit: cover; border-radius: 0.5rem; transition: filter 0.3s ease; }
.gallery-image:hover { filter: brightness(1.1); }
.boat-details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
.detail-item { display: flex; align-items: center; font-size: 1rem; color: #374151; }
.detail-item i { color: #0284c7; font-size: 1.5rem; margin-right: 1rem; width: 30px; text-align: center; }
.prose h2 { font-size: 1.875rem; font-weight: 700; color: #0c4a6e; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #e5e7eb; }
.prose h3 { font-size: 1.5rem; font-weight: 600; color: #0c4a6e; margin-top: 2rem; margin-bottom: 0.75rem; }
.prose p, .prose li { font-size: 1rem; line-height: 1.75; color: #4b5563; }
.prose ul { list-style-type: disc; padding-left: 1.5rem; margin-top: 1rem; }

/* === Estructura Galería de Escritorio === */
.boat-gallery-grid { display: grid; gap: 1rem; height: 500px; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); grid-template-areas: "main main thumb1 thumb2" "main main thumb3 thumb4"; }
.gallery-item-main { grid-area: main; }
.gallery-item-thumb-1 { grid-area: thumb1; }
.gallery-item-thumb-2 { grid-area: thumb2; }
.gallery-item-thumb-3 { grid-area: thumb3; }
.gallery-item-thumb-4 { grid-area: thumb4; }
.gallery-item { overflow: hidden; border-radius: 0.5rem; }

/* === Estructura Galería Móvil === */
.gallery-main-image { border-radius: 0.5rem; overflow: hidden; margin-bottom: 1rem; }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
.gallery-thumb-item { width: 100%; height: 70px; object-fit: cover; border-radius: 0.375rem; cursor: pointer; transition: opacity 0.2s ease; }
.gallery-thumb-item:hover { opacity: 0.8; }

/* === Lógica y Animación del Menú Móvil === */
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.mobile-menu-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(6, 78, 126, 0.30); background-image: url('../images/hero-background2.webp'); background-size: cover; background-blend-mode: multiply; z-index: 100; transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.mobile-menu-container.is-open { transform: translateX(0); }
.mobile-menu-content { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; position: relative; }
.close-menu-button { position: absolute; top: 1rem; right: 1.5rem; font-size: 3rem; color: white; background: none; border: none; cursor: pointer; }
.mobile-nav { display: flex; flex-direction: column; text-align: center; }
.mobile-nav-link { color: white; font-size: 2rem; font-weight: 600; padding: 0.75rem 0; text-decoration: none; transition: color 0.2s ease; opacity: 0; transform: translateY(20px); }
.mobile-menu-container.is-open .mobile-nav-link { animation: slideUp 0.5s forwards; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(1) { animation-delay: 0.2s; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(2) { animation-delay: 0.3s; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(3) { animation-delay: 0.4s; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(4) { animation-delay: 0.5s; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(5) { animation-delay: 0.6s; }
.mobile-menu-container.is-open .mobile-nav-link:nth-child(6) { animation-delay: 0.7s; }
.mobile-nav-link:hover { color: #38bdf8; }