@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Lato:ital,wght@0,300;0,400;0,700;1,400&family=Dancing+Script:wght@600&display=swap'); /* ===== RESET & BASE ===== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --bg: #141414; --card: #1e1e1e; --border: #2a2a2a; --orange: #e8572a; --gold: #f5b800; --teal: #1bbcbc; --coral: #e05b7e; --white: #ffffff; --subtle: #aaaaaa; --radius: 12px; --tr: 0.25s ease; --shadow: 0 4px 24px rgba(0,0,0,0.4); --max-w: 1200px; } html { scroll-behavior: smooth; } body { background: var(--bg); color: var(--white); font-family: 'Lato', sans-serif; font-size: 16px; line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; } a { color: inherit; text-decoration: none; } img { max-width: 100%; height: auto; display: block; } ul { list-style: none; } .container { width: 100%; max-width: var(--max-w); margin: 0 auto; padding: 0 1.5rem; } /* ===== TYPOGRAPHY ===== */ h1, h2, h3, h4 { font-family: 'Oswald', sans-serif; font-weight: 600; line-height: 1.2; letter-spacing: 0.02em; } h1 { font-size: clamp(2rem, 5vw, 3.5rem); } h2 { font-size: clamp(1.5rem, 3vw, 2.5rem); } h3 { font-size: clamp(1.1rem, 2vw, 1.5rem); } .accent { color: var(--gold); } .accent-orange { color: var(--orange); } .accent-teal { color: var(--teal); } .script { font-family: 'Dancing Script', cursive; font-size: 1.15em; } /* ===== NAVIGATION ===== */ .nav { position: sticky; top: 0; z-index: 100; background: rgba(20,20,20,0.96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); } .nav-container { max-width: var(--max-w); margin: 0 auto; padding: 0 1.5rem; height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .nav-logo img { height: 48px; width: 48px; border-radius: 50%; object-fit: cover; } .nav-links { display: flex; align-items: center; gap: 0.15rem; } .nav-links a { padding: 0.4rem 0.8rem; border-radius: 6px; font-family: 'Oswald', sans-serif; font-size: 0.9rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--subtle); transition: color var(--tr), background var(--tr); white-space: nowrap; } .nav-links a:hover { color: var(--white); background: var(--border); } .nav-links a.active { color: var(--gold); background: rgba(245,184,0,0.1); } .nav-hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 8px; } .nav-hamburger span { display: block; width: 24px; height: 2px; background: var(--white); border-radius: 2px; transition: var(--tr); } /* ===== BUTTONS ===== */ .btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.7rem 1.4rem; border-radius: 8px; font-family: 'Oswald', sans-serif; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; border: 2px solid transparent; transition: transform var(--tr), box-shadow var(--tr), background var(--tr), border-color var(--tr), color var(--tr); } .btn-primary { background: var(--orange); color: var(--white); } .btn-primary:hover { background: #d04a22; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(232,87,42,0.35); } .btn-secondary { background: transparent; border-color: var(--gold); color: var(--gold); } .btn-secondary:hover { background: var(--gold); color: var(--bg); transform: translateY(-2px); } .btn-ghost { background: transparent; border-color: var(--border); color: var(--subtle); } .btn-ghost:hover { border-color: var(--white); color: var(--white); } .btn-teal { background: transparent; border-color: var(--teal); color: var(--teal); } .btn-teal:hover { background: var(--teal); color: var(--bg); transform: translateY(-2px); } /* ===== SECTION COMMON ===== */ section { padding: 4rem 0; } .section-title { font-family: 'Oswald', sans-serif; font-size: 1.4rem; font-weight: 600; color: var(--gold); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 2rem; display: flex; align-items: center; gap: 1rem; } .section-title::after { content: ''; flex: 1; height: 1px; background: var(--border); } .page-header { padding: 3.5rem 0 2rem; text-align: center; } .page-header h1 { margin-bottom: 0.5rem; } .page-header .subtitle { color: var(--subtle); font-size: 1.05rem; max-width: 580px; margin: 0 auto; } /* ===== CARDS ===== */ .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: transform var(--tr), border-color var(--tr), box-shadow var(--tr); } .card:hover { border-color: var(--orange); transform: translateY(-4px); box-shadow: var(--shadow); } .card-body { padding: 1.5rem; } .card-title { font-family: 'Oswald', sans-serif; font-size: 1.2rem; font-weight: 600; margin-bottom: 0.4rem; } .card-text { color: var(--subtle); font-size: 0.9rem; } .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.5rem; } /* ===== TAG PILLS ===== */ .tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.75rem 0; } .tag { padding: 0.2rem 0.65rem; border-radius: 100px; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; } .tag-salsa { background: rgba(232,87,42,0.18); color: var(--orange); } .tag-bachata { background: rgba(224,91,126,0.18); color: var(--coral); } .tag-kizomba { background: rgba(27,188,188,0.18); color: var(--teal); } .tag-zouk { background: rgba(245,184,0,0.18); color: var(--gold); } .tag-tango { background: rgba(170,170,170,0.12);color: var(--subtle); } .tag-beginner { background: rgba(27,188,188,0.18); color: var(--teal); } .tag-intermediate { background: rgba(245,184,0,0.18); color: var(--gold); } .tag-advanced { background: rgba(232,87,42,0.18); color: var(--orange); } /* ===== FILTER PILLS ===== */ .filter-bar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; } .filter-pill { padding: 0.45rem 1.1rem; border-radius: 100px; border: 2px solid var(--border); background: transparent; color: var(--subtle); font-family: 'Oswald', sans-serif; font-size: 0.82rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: border-color var(--tr), color var(--tr), background var(--tr); } .filter-pill:hover { border-color: var(--orange); color: var(--white); } .filter-pill.active { background: var(--orange); border-color: var(--orange); color: var(--white); } /* ===== CARD LINKS (studios/classes) ===== */ .card-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; } .card-link { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.3rem 0.7rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.8rem; color: var(--subtle); transition: border-color var(--tr), color var(--tr); } .card-link:hover { border-color: var(--orange); color: var(--orange); } .card-info { color: var(--subtle); font-size: 0.875rem; margin-top: 0.5rem; line-height: 1.5; } .card-info strong { color: var(--white); } /* ===== HERO (index.html) ===== */ .hero { min-height: calc(100vh - 70px); display: flex; align-items: center; justify-content: center; text-align: center; position: relative; overflow: hidden; background: linear-gradient(-45deg, #141414, #1e1e1e, #2d1a0e, #0d2626, #1a0d1a); background-size: 400% 400%; animation: gradientShift 18s ease infinite; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(232,87,42,0.07) 0%, transparent 65%); pointer-events: none; } .hero-content { position: relative; z-index: 1; padding: 2rem 1.5rem; } .hero-logo { width: min(220px, 50vw); height: min(220px, 50vw); border-radius: 50%; object-fit: cover; margin: 0 auto 2rem; box-shadow: 0 0 60px rgba(232,87,42,0.25), 0 0 120px rgba(245,184,0,0.08); border: 3px solid rgba(232,87,42,0.25); } .hero-tagline { font-family: 'Oswald', sans-serif; font-size: clamp(1rem, 3vw, 1.75rem); font-weight: 400; color: var(--subtle); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 0.5rem; } .hero-sub { font-family: 'Dancing Script', cursive; font-size: clamp(1rem, 2.5vw, 1.3rem); color: var(--gold); margin-bottom: 2.5rem; opacity: 0.85; } .hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; } /* ===== ABOUT (index.html) ===== */ .about-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; } .about-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 2rem 1.5rem; text-align: center; transition: border-color var(--tr), transform var(--tr); } .about-card:hover { border-color: var(--gold); transform: translateY(-4px); } .about-card .icon { font-size: 2.5rem; margin-bottom: 1rem; } .about-card h3 { font-size: 1.15rem; color: var(--gold); margin-bottom: 0.6rem; } .about-card p { color: var(--subtle); font-size: 0.88rem; } /* ===== TEASER CARDS (index.html) ===== */ .teaser-card { background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--orange); border-radius: var(--radius); padding: 1.2rem 1.4rem; transition: background var(--tr), border-color var(--tr); } .teaser-card:hover { background: rgba(232,87,42,0.05); border-color: var(--orange); } .teaser-day { font-family: 'Oswald', sans-serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--orange); margin-bottom: 0.2rem; } .teaser-social { font-weight: 700; font-size: 1rem; margin-bottom: 0.2rem; } .teaser-meta { font-size: 0.82rem; color: var(--subtle); } /* ===== IG BANNER (index.html) ===== */ .ig-banner { background: linear-gradient(135deg, rgba(232,87,42,0.1), rgba(245,184,0,0.06)); border: 1px solid rgba(232,87,42,0.25); border-radius: 20px; padding: 3rem 2rem; text-align: center; } .ig-banner h2 { margin-bottom: 0.6rem; } .ig-banner p { color: var(--subtle); margin-bottom: 1.5rem; max-width: 500px; margin-left: auto; margin-right: auto; } /* ===== SCHEDULE TABLE ===== */ .schedule-note { background: rgba(27,188,188,0.08); border: 1px solid rgba(27,188,188,0.25); border-radius: var(--radius); padding: 1rem 1.25rem; color: var(--teal); font-size: 0.88rem; margin-bottom: 2rem; display: flex; align-items: flex-start; gap: 0.6rem; line-height: 1.5; } .schedule-table-wrap { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--border); } .schedule-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; } .schedule-table thead th { background: var(--card); padding: 0.9rem 1.1rem; text-align: left; font-family: 'Oswald', sans-serif; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.09em; color: var(--gold); border-bottom: 1px solid var(--border); white-space: nowrap; } .schedule-table tbody tr { border-bottom: 1px solid var(--border); transition: background var(--tr); } .schedule-table tbody tr:last-child { border-bottom: none; } .schedule-table tbody tr:hover { background: rgba(255,255,255,0.02); } .schedule-table td { padding: 0.9rem 1.1rem; vertical-align: middle; } .day-badge { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 6px; font-family: 'Oswald', sans-serif; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; } .day-monday { background: rgba(232,87,42,0.18); color: var(--orange); } .day-tuesday { background: rgba(245,184,0,0.18); color: var(--gold); } .day-wednesday { background: rgba(27,188,188,0.18); color: var(--teal); } .day-thursday { background: rgba(224,91,126,0.18); color: var(--coral); } .day-friday { background: rgba(232,87,42,0.18); color: var(--orange); } .day-saturday { background: rgba(245,184,0,0.18); color: var(--gold); } .day-sunday { background: rgba(27,188,188,0.18); color: var(--teal); } .social-name { font-weight: 700; } .venue-name { color: var(--subtle); } .music-text { color: var(--subtle); font-size: 0.82rem; } .city-badge { font-size: 0.8rem; font-weight: 700; color: var(--teal); } .organizer-text{ color: var(--subtle); font-size: 0.82rem; } /* Mobile: table → cards */ @media (max-width: 768px) { .schedule-table-wrap { border: none; overflow: visible; } .schedule-table, .schedule-table thead, .schedule-table tbody, .schedule-table tr, .schedule-table th, .schedule-table td { display: block; width: 100%; } .schedule-table thead { display: none; } .schedule-table tbody tr { background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--orange); border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1rem; } .schedule-table td { padding: 0.3rem 0; border: none; } .schedule-table td::before { content: attr(data-label); display: block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 0.1rem; font-family: 'Oswald', sans-serif; } } /* ===== CONNECT PAGE ===== */ .ig-profile-card { background: linear-gradient(135deg, var(--card), rgba(232,87,42,0.04)); border: 1px solid rgba(232,87,42,0.25); border-radius: 20px; padding: 3rem 2rem; text-align: center; margin-bottom: 3rem; } .ig-avatar { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; margin: 0 auto 1rem; border: 3px solid var(--orange); } .ig-handle { font-family: 'Oswald', sans-serif; font-size: 1.75rem; color: var(--gold); margin-bottom: 0.5rem; } .ig-desc { color: var(--subtle); margin-bottom: 1.5rem; max-width: 460px; margin-left: auto; margin-right: auto; } .ig-embeds { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.5rem; align-items: start; margin-bottom: 3rem; } .contact-box { background: var(--card); border: 1px solid var(--border); border-radius: 20px; padding: 2.5rem 2rem; text-align: center; } .contact-box h2 { margin-bottom: 0.75rem; } .contact-box p { color: var(--subtle); margin-bottom: 1.5rem; max-width: 500px; margin-left: auto; margin-right: auto; } /* ===== STUDIO / CLASS CARDS ===== */ .studio-card .card-stripe { height: 6px; background: linear-gradient(90deg, var(--orange), var(--gold)); } /* ===== FESTIVAL CARDS ===== */ .festival-card { background: var(--card); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; margin-bottom: 2.5rem; transition: border-color var(--tr), box-shadow var(--tr); } .festival-card:hover { border-color: var(--orange); box-shadow: var(--shadow); } .festival-poster { height: 220px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 2rem; position: relative; overflow: hidden; } .festival-poster::before { content: ''; position: absolute; inset: 0; opacity: 0.55; } .festival-card-le .festival-poster { background: linear-gradient(135deg, #1a0a20, #2d1040, #0d1a30); } .festival-card-le .festival-poster::before { background: radial-gradient(ellipse at center, rgba(224,91,126,0.5), transparent 70%); } .festival-card-vlx .festival-poster { background: linear-gradient(135deg, #0d1a0d, #1a2d0d, #0d1a2d); } .festival-card-vlx .festival-poster::before { background: radial-gradient(ellipse at center, rgba(27,188,188,0.5), transparent 70%); } .festival-poster-content { position: relative; z-index: 1; } .festival-poster h2 { font-size: clamp(1.4rem, 4vw, 2.2rem); color: var(--white); text-shadow: 0 2px 20px rgba(0,0,0,0.6); margin-bottom: 0.4rem; } .festival-dates { font-family: 'Oswald', sans-serif; font-size: 1rem; color: var(--gold); letter-spacing: 0.1em; text-transform: uppercase; } .festival-body { padding: 2rem; } .festival-meta { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--border); } .festival-meta-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.875rem; color: var(--subtle); } .festival-meta-item strong { color: var(--white); } .festival-desc { color: var(--subtle); margin-bottom: 1.5rem; line-height: 1.7; font-size: 0.92rem; } .festival-links { display: flex; flex-wrap: wrap; gap: 0.75rem; } /* ===== FOOTER ===== */ .footer { margin-top: auto; background: var(--card); border-top: 1px solid var(--border); padding: 3rem 0 2rem; } .footer-content { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.5rem; } .footer-logo img { height: 56px; width: 56px; border-radius: 50%; object-fit: cover; } .footer-nav { display: flex; flex-wrap: wrap; gap: 0.2rem; justify-content: center; } .footer-nav a { padding: 0.3rem 0.7rem; color: var(--subtle); font-family: 'Oswald', sans-serif; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 6px; transition: color var(--tr), background var(--tr); } .footer-nav a:hover { color: var(--white); background: var(--border); } .footer-tagline { color: var(--subtle); font-size: 0.875rem; } .footer-ig { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--orange); font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: 0.05em; transition: color var(--tr); } .footer-ig:hover { color: var(--gold); } /* ===== RESPONSIVE ===== */ @media (max-width: 768px) { .nav-hamburger { display: flex; } .nav-links { display: none; position: absolute; top: 70px; left: 0; right: 0; background: rgba(20,20,20,0.98); backdrop-filter: blur(12px); flex-direction: column; padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); gap: 0.2rem; } .nav-links.open { display: flex; } .nav-links li { width: 100%; } .nav-links a { display: block; padding: 0.7rem 1rem; } .hero-ctas { flex-direction: column; align-items: center; } .ig-embeds { grid-template-columns: 1fr; } .festival-meta { flex-direction: column; gap: 0.5rem; } section { padding: 2.5rem 0; } } @media (max-width: 480px) { .card-grid { grid-template-columns: 1fr; } .about-grid { grid-template-columns: 1fr; } } /* ===== UTILITY ===== */ .hidden { display: none !important; } .text-center { text-align: center; } .mt-1 { margin-top: 1rem; } .mt-2 { margin-top: 1.5rem; } .mt-3 { margin-top: 2rem; }