Preview de mixed.css
/* MIXED CSS PACK */
/* Template: fonduslaplata.com.ar/index.html */
/* Template mtime: 2025-07-29 19:50:13 */
/* external link (no embedded): https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Montserrat:wght@700;800&display=swap */
/* external link (no embedded): https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css */
/* ===== INLINE <style> BLOCK #1 ===== */
/* =====================
Variables y reset
====================== */
:root {
/* Paleta premium */
--brand-dark: #0a2633; /* azul profundo */
--brand: #0d5c70; /* azul verdoso principal */
--brand-light: #1a7a8f; /* azul más claro */
--brand-acc: #2e9aa1; /* turquesa */
--brand-acc-light: #4ac7c7; /* turquesa claro */
--brand-soft: #e6f6f7; /* fondo suave */
--gradient: linear-gradient(135deg, var(--brand), var(--brand-acc));
--gradient-hover: linear-gradient(135deg, var(--brand-light), var(--brand-acc-light));
/* Sistema de color */
--ink: #0f1820;
--ink-2: #4b5661;
--ink-3: #6b7681;
--white: #ffffff;
--light-bg: #f9fcfd;
/* Sombras */
--shadow-sm: 0 2px 8px rgba(10, 42, 58, 0.08);
--shadow-md: 0 4px 16px rgba(10, 42, 58, 0.12);
--shadow-lg: 0 8px 24px rgba(10, 42, 58, 0.16);
--shadow-xl: 0 12px 32px rgba(10, 42, 58, 0.2);
/* Bordes */
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 24px;
--radius-full: 999px;
/* Espaciado */
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
--space-2xl: 48px;
--space-3xl: 64px;
/* Tipografía */
--text-xs: 0.75rem; /* 12px */
--text-sm: 0.875rem; /* 14px */
--text-base: 1rem; /* 16px */
--text-lg: 1.125rem; /* 18px */
--text-xl: 1.25rem; /* 20px */
--text-2xl: 1.5rem; /* 24px */
--text-3xl: 1.875rem; /* 30px */
--text-4xl: 2.25rem; /* 36px */
--text-5xl: 3rem; /* 48px */
--text-6xl: 3.75rem; /* 60px */
/* Animaciones */
--transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
--transition-fast: all 0.15s ease;
/* Ticker */
--tile-size: 500px;
--ticker-speed: 40;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Poppins', system-ui, -apple-system, sans-serif;
color: var(--ink);
background-color: var(--light-bg);
line-height: 1.6;
overflow-x: hidden;
}
h1, h2, h3, h4 {
font-family: 'Montserrat', sans-serif;
font-weight: 700;
line-height: 1.2;
}
img {
max-width: 100%;
display: block;
height: auto;
}
a {
color: var(--brand);
text-decoration: none;
transition: var(--transition-fast);
}
a:hover {
color: var(--brand-acc);
}
.container {
width: 100%;
max-width: 1280px;
margin: 0 auto;
padding: 0 var(--space-md);
}
.section {
padding: clamp(var(--space-2xl), 7vw, var(--space-3xl)) 0;
position: relative;
}
.section-title {
font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
margin-bottom: var(--space-md);
position: relative;
display: inline-block;
}
.section-title:after {
content: '';
position: absolute;
bottom: -8px;
left: 0;
width: 60px;
height: 4px;
background: var(--gradient);
border-radius: 2px;
}
.section-subtitle {
font-size: clamp(var(--text-lg), 2.6vw, var(--text-xl));
color: var(--ink-2);
margin-bottom: var(--space-xl);
max-width: 700px;
}
/* =====================
Componentes reutilizables
====================== */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-sm);
appearance: none;
border: none;
border-radius: var(--radius-full);
padding: var(--space-md) var(--space-lg);
font-family: 'Poppins', sans-serif;
font-weight: 600;
font-size: var(--text-base);
cursor: pointer;
transition: var(--transition);
background: var(--gradient);
color: var(--white);
box-shadow: var(--shadow-md);
position: relative;
overflow: hidden;
}
.btn:hover {
background: var(--gradient-hover);
box-shadow: var(--shadow-lg);
transform: translateY(-2px);
}
.btn:active {
transform: translateY(0);
}
.btn i {
font-size: var(--text-lg);
}
.btn-alt {
background: var(--white);
color: var(--brand);
border: 2px solid var(--brand-acc);
}
.btn-alt:hover {
background: var(--brand-soft);
color: var(--brand);
}
.card {
background: var(--white);
border-radius: var(--radius-lg);
padding: var(--space-xl);
box-shadow: var(--shadow-sm);
transition: var(--transition);
height: 100%;
position: relative;
overflow: hidden;
}
.card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
}
.card-icon {
width: 56px;
height: 56px;
border-radius: var(--radius-md);
background: var(--brand-soft);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: var(--space-lg);
color: var(--brand);
font-size: var(--text-2xl);
}
.card-title {
font-size: var(--text-xl);
margin-bottom: var(--space-sm);
color: var(--brand-dark);
}
.card-text {
color: var(--ink-2);
font-size: var(--text-base);
}
.pill {
display: inline-flex;
align-items: center;
gap: var(--space-xs);
background: var(--brand-soft);
color: var(--brand-dark);
font-weight: 600;
font-size: var(--text-sm);
border-radius: var(--radius-full);
padding: var(--space-xs) var(--space-md);
transition: var(--transition-fast);
}
.pill:hover {
background: var(--brand);
color: var(--white);
transform: translateY(-2px);
}
/* =====================
Header y navegación
====================== */
.topbar {
background: linear-gradient(90deg, var(--brand), var(--brand-acc));
color: var(--white);
font-size: var(--text-sm);
padding: var(--space-xs) 0;
position: relative;
z-index: 100;
}
.topbar .container {
display: flex;
flex-wrap: wrap;
gap: var(--space-md);
justify-content: center;
align-items: center;
}
.topbar a {
color: rgba(255, 255, 255, 0.9);
display: flex;
align-items: center;
gap: var(--space-xs);
}
.topbar a:hover {
color: var(--white);
text-decoration: none;
}
.navbar {
position: sticky;
top: 0;
z-index: 90;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(8px);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
transition: var(--transition);
}
.navbar.scrolled {
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}
.nav-inner {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--space-sm) 0;
}
.logo {
display: flex;
align-items: center;
gap: var(--space-sm);
font-weight: 700;
font-size: var(--text-xl);
color: var(--brand-dark);
transition: var(--transition);
}
.logo span {
font-size: 1.2rem; /* o el tamaño que prefieras */
font-weight: 600;
}
.logo:hover {
opacity: 0.9;
}
.logo-badge {
width: 42px;
height: 42px;
border-radius: var(--radius-md);
background: var(--gradient);
display: flex;
align-items: center;
justify-content: center;
color: var(--white);
font-weight: 800;
font-size: var(--text-lg);
box-shadow: var(--shadow-md);
transition: var(--transition);
}
.logo:hover .logo-badge {
transform: rotate(15deg);
}
.nav-links {
display: flex;
flex-wrap: wrap;
gap: var(--space-xs);
}
.nav-links a {
padding: var(--space-sm) var(--space-md);
border-radius: var(--radius-md);
color: var(--ink);
font-weight: 500;
font-size: var(--text-base);
transition: var(--transition);
}
.nav-links a:hover {
background: var(--brand-soft);
color: var(--brand);
text-decoration: none;
}
.nav-links a.active {
background: var(--gradient);
color: var(--white);
}
.mobile-menu-btn {
display: none;
background: none;
border: none;
font-size: var(--text-2xl);
color: var(--brand-dark);
cursor: pointer;
}
/* =====================
Hero section
====================== */
.hero {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(230, 246, 247, 0.8)),
url('https://images.unsplash.com/photo-1600880292203-757bb62b4baf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80') no-repeat center center;
background-size: cover;
position: relative;
overflow: hidden;
padding-top: var(--space-3xl);
padding-bottom: var(--space-3xl);
}
.hero:before {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100px;
background: linear-gradient(to top, var(--light-bg), transparent);
z-index: 1;
}
.hero .container {
position: relative;
z-index: 2;
}
.hero-grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: var(--space-2xl);
align-items: center;
}
.hero-content {
max-width: 600px;
}
.hero-title {
font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
line-height: 1.1;
margin-bottom: var(--space-md);
color: var(--brand-dark);
}
.hero-title span {
background: var(--gradient);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.hero-text {
font-size: clamp(var(--text-lg), 2.6vw, var(--text-xl));
color: var(--ink-2);
margin-bottom: var(--space-xl);
}
.hero-cta {
display: flex;
gap: var(--space-md);
flex-wrap: wrap;
}
.hero-stats {
display: flex;
gap: var(--space-md);
margin-top: var(--space-xl);
}
.stat-item {
display: flex;
flex-direction: column;
}
.stat-number {
font-family: 'Montserrat', sans-serif;
font-weight: 800;
font-size: var(--text-3xl);
color: var(--brand);
line-height: 1;
}
.stat-label {
font-size: var(--text-sm);
color: var(--ink-2);
}
.hero-card {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(12px);
border-radius: var(--radius-xl);
padding: var(--space-lg);
box-shadow: var(--shadow-xl);
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: var(--space-sm);
border: 1px solid rgba(255, 255, 255, 0.2);
}
/* =====================
Features section
====================== */
.features {
background: var(--light-bg);
position: relative;
}
.features:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0icmdiYSgyMzAsMjQyLDI0NywwLjEpIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI3BhdHRlcm4pIi8+PC9zdmc+');
opacity: 0.3;
z-index: 0;
}
.features .container {
position: relative;
z-index: 1;
}
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-lg);
}
/* =====================
About section
====================== */
.about {
background: var(--white);
}
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-2xl);
align-items: center;
}
.about-image {
position: relative;
border-radius: var(--radius-xl);
overflow: hidden;
box-shadow: var(--shadow-lg);
}
.about-image:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, rgba(13, 92, 112, 0.3), rgba(46, 154, 161, 0.2));
z-index: 1;
}
.about-image img {
width: 100%;
height: 100%;
object-fit: cover;
min-height: 400px;
}
.about-content {
padding-left: var(--space-lg);
}
.about-list {
margin-top: var(--space-xl);
}
.about-list li {
display: flex;
align-items: flex-start;
gap: var(--space-sm);
margin-bottom: var(--space-md);
}
.about-list i {
color: var(--brand-acc);
font-size: var(--text-lg);
margin-top: 2px;
}
/* =====================
Why choose us
====================== */
.why {
background: var(--brand-dark);
color: var(--white);
position: relative;
overflow: hidden;
}
.why:before {
content: '';
position: absolute;
top: -100px;
right: -100px;
width: 300px;
height: 300px;
border-radius: 50%;
background: rgba(46, 154, 161, 0.1);
}
.why:after {
content: '';
position: absolute;
bottom: -150px;
left: -150px;
width: 400px;
height: 400px;
border-radius: 50%;
background: rgba(13, 92, 112, 0.1);
}
.why .section-title {
color: var(--white);
}
.why .section-title:after {
background: var(--brand-acc);
}
.why .section-subtitle {
color: rgba(255, 255, 255, 0.8);
}
.why-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-lg);
}
.why-card {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.why-card:hover {
background: rgba(255, 255, 255, 0.1);
transform: translateY(-8px);
}
.why-card .card-title {
color: var(--white);
}
.why-card .card-text {
color: rgba(255, 255, 255, 0.7);
}
/* =====================
Testimonials (Ticker)
====================== */
.testimonials {
background: var(--white);
}
.ticker-shell {
position: relative;
overflow: hidden;
border-radius: var(--radius-xl);
background: var(--light-bg);
box-shadow: var(--shadow-md);
padding: var(--space-lg) var(--space-2xl);
margin-bottom: var(--space-2xl);
}
.ticker-viewport {
overflow: hidden;
width: 100%;
}
.ticker-track {
display: flex;
gap: var(--space-lg);
will-change: transform;
}
.testimonial-card {
min-width: var(--tile-size);
background: var(--white);
border-radius: var(--radius-lg);
padding: var(--space-xl);
box-shadow: var(--shadow-sm);
display: flex;
flex-direction: column;
gap: var(--space-md);
}
.testimonial-text {
font-style: italic;
color: var(--ink-2);
position: relative;
}
.testimonial-text:before,
.testimonial-text:after {
content: '"';
font-size: var(--text-3xl);
color: var(--brand-acc);
opacity: 0.3;
line-height: 1;
}
.testimonial-text:before {
position: absolute;
top: -10px;
left: -15px;
}
.testimonial-text:after {
position: absolute;
bottom: -30px;
right: -15px;
}
.testimonial-author {
display: flex;
align-items: center;
gap: var(--space-sm);
margin-top: auto;
}
.author-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
object-fit: cover;
border: 2px solid var(--brand-soft);
}
.author-info {
display: flex;
flex-direction: column;
}
.author-name {
font-weight: 600;
color: var(--ink);
}
.author-title {
font-size: var(--text-sm);
color: var(--ink-2);
}
.ticker-ctrl {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 48px;
height: 48px;
border-radius: 50%;
border: none;
background: var(--gradient);
color: var(--white);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
box-shadow: var(--shadow-md);
transition: var(--transition);
z-index: 2;
}
.ticker-ctrl:hover {
background: var(--gradient-hover);
transform: translateY(-50%) scale(1.1);
}
.ticker-ctrl.left {
left: var(--space-md);
}
.ticker-ctrl.right {
right: var(--space-md);
}
/* =====================
Videos section
====================== */
.videos {
background: var(--light-bg);
}
.videos-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-lg);
}
.video-card {
position: relative;
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-md);
transition: var(--transition);
}
.video-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
}
.video-thumbnail {
width: 100%;
aspect-ratio: 16/9;
object-fit: cover;
}
.video-play-btn {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60px;
height: 60px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.9);
display: flex;
align-items: center;
justify-content: center;
color: var(--brand);
font-size: var(--text-2xl);
transition: var(--transition);
}
.video-card:hover .video-play-btn {
background: var(--brand);
color: var(--white);
transform: translate(-50%, -50%) scale(1.1);
}
.video-title {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: var(--space-md);
background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
color: var(--white);
font-weight: 600;
}
/* =====================
FAQs section
====================== */
.faqs {
background: var(--white);
}
.faq-container {
max-width: 800px;
margin: 0 auto;
}
.faq-item {
background: var(--white);
border-radius: var(--radius-md);
padding: var(--space-lg);
box-shadow: var(--shadow-sm);
margin-bottom: var(--space-md);
transition: var(--transition);
border: 1px solid var(--brand-soft);
}
.faq-item:hover {
box-shadow: var(--shadow-md);
border-color: var(--brand-acc);
}
.faq-question {
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
font-weight: 600;
color: var(--brand-dark);
gap: var(--space-md);
}
.faq-question i {
color: var(--brand-acc);
transition: var(--transition-fast);
}
.faq-item[open] .faq-question i {
transform: rotate(180deg);
}
.faq-answer {
margin-top: var(--space-md);
color: var(--ink-2);
padding-right: var(--space-lg);
}
/* =====================
Contact section
====================== */
.contact {
background: var(--light-bg);
}
.contact-grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: var(--space-2xl);
}
.form {
background: var(--white);
border-radius: var(--radius-xl);
padding: var(--space-2xl);
box-shadow: var(--shadow-md);
}
.form-title {
font-size: var(--text-2xl);
margin-bottom: var(--space-xl);
color: var(--brand-dark);
}
.form-group {
margin-bottom: var(--space-lg);
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-md);
}
.form-control {
width: 100%;
padding: var(--space-md);
border-radius: var(--radius-sm);
border: 1px solid #dfe7ea;
background: #f9fbfc;
font-family: 'Poppins', sans-serif;
font-size: var(--text-base);
transition: var(--transition-fast);
}
.form-control:focus {
outline: none;
border-color: var(--brand-acc);
box-shadow: 0 0 0 3px rgba(46, 154, 161, 0.2);
}
textarea.form-control {
min-height: 140px;
resize: vertical;
}
.form-help {
color: var(--ink-3);
font-size: var(--text-sm);
margin-top: var(--space-xs);
}
.contact-info {
display: flex;
flex-direction: column;
gap: var(--space-lg);
}
.info-card {
background: var(--white);
border-radius: var(--radius-lg);
padding: var(--space-xl);
box-shadow: var(--shadow-sm);
display: flex;
flex-direction: column;
gap: var(--space-md);
}
.info-title {
display: flex;
align-items: center;
gap: var(--space-sm);
font-size: var(--text-xl);
color: var(--brand-dark);
}
.info-title i {
color: var(--brand-acc);
font-size: var(--text-2xl);
}
.info-text {
color: var(--ink-2);
}
.info-text a {
color: var(--brand);
font-weight: 500;
}
.map {
height: 100%;
min-height: 300px;
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-md);
}
/* =====================
Footer
====================== */
.footer {
background: linear-gradient(135deg, var(--brand-dark), #051821);
color: #cfe8ea;
padding-top: var(--space-3xl);
position: relative;
}
.footer:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwwLjAzKSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNwYXR0ZXJuKSIvPjwvc3ZnPg==');
opacity: 0.2;
}
.footer .container {
position: relative;
z-index: 1;
}
.footer-grid {
display: grid;
grid-template-columns: 2fr 1.2fr 1fr 1fr;
gap: var(--space-2xl);
}
.footer-logo {
display: flex;
align-items: center;
gap: var(--space-sm);
margin-bottom: var(--space-md);
}
.footer-logo-badge {
width: 36px;
height: 36px;
border-radius: var(--radius-md);
background: var(--gradient);
display: flex;
align-items: center;
justify-content: center;
color: var(--white);
font-weight: 800;
font-size: var(--text-base);
}
.footer-logo-text {
font-weight: 700;
font-size: var(--text-lg);
color: var(--white);
}
.footer-about {
color: rgba(255, 255, 255, 0.7);
margin-bottom: var(--space-md);
}
.footer-social {
display: flex;
gap: var(--space-sm);
}
.social-link {
width: 36px;
height: 36px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
color: var(--white);
transition: var(--transition);
}
.social-link:hover {
background: var(--brand-acc);
transform: translateY(-3px);
}
.footer-title {
font-size: var(--text-lg);
color: var(--white);
margin-bottom: var(--space-md);
position: relative;
padding-bottom: var(--space-sm);
}
.footer-title:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 40px;
height: 2px;
background: var(--brand-acc);
}
.footer-links {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
.footer-links a {
color: rgba(255, 255, 255, 0.7);
transition: var(--transition-fast);
}
.footer-links a:hover {
color: var(--white);
text-decoration: none;
padding-left: var(--space-xs);
}
.copyright {
border-top: 1px solid rgba(255, 255, 255, 0.1);
margin-top: var(--space-2xl);
padding: var(--space-lg) 0;
color: rgba(255, 255, 255, 0.5);
font-size: var(--text-sm);
text-align: center;
}
/* =====================
Animaciones
====================== */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.fade-in {
animation: fadeIn 0.6s ease forwards;
}
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
/* =====================
Responsive
====================== */
@media (max-width: 1100px) {
:root {
--tile-size: 400px;
}
.hero-grid,
.about-grid,
.contact-grid {
grid-template-columns: 1fr;
}
.about-content {
padding-left: 0;
padding-top: var(--space-2xl);
}
.features-grid,
.why-grid,
.videos-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 900px) {
:root {
--tile-size: 320px;
}
.footer-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.mobile-menu-btn {
display: block;
}
.nav-links {
position: fixed;
top: 80px;
left: 0;
width: 100%;
background: var(--white);
flex-direction: column;
padding: var(--space-md);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
transform: translateY(-150%);
transition: var(--transition);
z-index: 80;
}
.nav-links.active {
transform: translateY(0);
}
.nav-links a {
width: 100%;
padding: var(--space-md);
}
}
@media (max-width: 640px) {
:root {
--tile-size: min(85vw, 300px);
}
.features-grid,
.why-grid,
.videos-grid {
grid-template-columns: 1fr;
}
.form-row {
grid-template-columns: 1fr;
}
.hero-stats {
flex-direction: column;
gap: var(--space-sm);
}
.footer-grid {
grid-template-columns: 1fr;
}
}
/* ===== INLINE <style> BLOCK #2 ===== */
/* --- Feedback banners --- */
.alert-feedback{display:none;align-items:center;gap:.6rem;border-radius:12px;padding:12px 14px;margin:0 0 14px 0;border:1px solid transparent;box-shadow:0 8px 22px rgba(0,0,0,.06);font-weight:600}
.alert-feedback.show{display:flex}
.alert-success{background:#ecfdf5;border-color:#34d39933;color:#065f46}
.alert-error{background:#fef2f2;border-color:#ef444433;color:#7f1d1d}
.alert-feedback i{font-size:18px}
/* Honeypot */
.hp-wrap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* ===== INLINE <style> BLOCK #3 ===== */
/* --- Responsive, taller videos (non-breaking override) --- */
.videos-grid{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: clamp(14px, 2.2vw, 24px);
}
.video-card{
position: relative;
border-radius: 14px;
overflow: hidden;
/* More height by default and fully responsive */
aspect-ratio: 4 / 3; /* taller than 16:9 to evitar cortes */
box-shadow: 0 8px 18px rgba(0,0,0,.15);
}
.video-card .video-thumbnail{
width: 100%;
height: 100%;
display: block;
object-fit: cover; /* llena el contenedor */
}
/* Titles stay readable over controls */
.video-card .video-title{
position: absolute;
left: 10px;
right: 10px;
bottom: 10px;
margin: 0;
color: #fff;
font-weight: 700;
text-shadow: 0 2px 6px rgba(0,0,0,.6);
z-index: 3;
}
/* Play button overlay slightly bigger for new size */
.video-card .video-play-btn{
position: absolute;
inset: 0;
margin: auto;
width: clamp(54px, 6vw, 72px);
height: clamp(54px, 6vw, 72px);
z-index: 2;
transition: opacity .2s ease;
}
/* Desktop can be a bit wider and 16:9 if preferred */
@media (min-width: 992px){
.video-card{ aspect-ratio: 16 / 9; }
}
/* Phones: one per row and a bit taller */
@media (max-width: 575.98px){
.videos-grid{ grid-template-columns: 1fr; }
.video-card{ aspect-ratio: 3 / 2; }
}
/* ===== INLINE <style> BLOCK #4 ===== */
/* === VERTICAL (9:16) VIDEOS — SIN ESTIRAR === */
.videos-grid{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: clamp(14px, 2vw, 24px);
}
/* Forzamos relación 9:16 (alto) y evitamos estirar */
.video-card{
position: relative;
border-radius: 16px;
overflow: hidden;
background: linear-gradient(180deg, #0f2743 0%, #000 100%);
aspect-ratio: 9 / 16;
max-height: min(85vh, 920px); /* no pasa la altura de la pantalla */
box-shadow: 0 10px 22px rgba(0,0,0,.16);
}
.video-card .video-thumbnail{
width: 100%;
height: 100%;
object-fit: contain; /* SIN cortes ni estiramientos */
background: transparent;
}
/* Título por encima, sin tapar controles */
.video-card .video-title{
position: absolute;
left: 12px; right: 12px; bottom: 12px;
margin: 0;
color: #fff; font-weight: 800;
text-shadow: 0 2px 8px rgba(0,0,0,.7);
z-index: 3;
}
.video-card .video-play-btn{
position: absolute; inset: 0; margin: auto;
width: clamp(56px, 6vw, 76px); height: clamp(56px, 6vw, 76px);
z-index: 4; transition: opacity .2s ease;
}
/* Desktop: solo 2 columnas para que se vean grandes */
@media (min-width: 1200px){
.videos-grid{ grid-template-columns: repeat(2, minmax(380px, 1fr)); }
}
/* Mobile: 1 por fila y full width, alto 9:16 */
@media (max-width: 575.98px){
.videos-grid{ grid-template-columns: 1fr; }
.video-card{ aspect-ratio: 9 / 16; max-height: none; }
}
/* ===== INLINE <style> BLOCK #5 ===== */
/* =====================
Topbar — Mejora visual sin romper markup
===================== */
.topbar{
background: linear-gradient(90deg, var(--brand-dark), var(--brand));
color: var(--white);
font-size: clamp(12px, 1.5vw, 14px);
padding: 8px 0;
position: relative;
z-index: 110; /* por encima de la navbar */
box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 6px 24px rgba(0,0,0,.08);
}
.topbar .container{
display: flex;
align-items: center;
gap: 14px;
flex-wrap: wrap;
justify-content: center;
min-height: 38px;
}
.topbar .container > div{
display: inline-flex;
align-items: center;
gap: 8px;
line-height: 1.3;
opacity: .95;
white-space: nowrap;
}
/* Separadores sutiles solo en pantallas grandes */
@media (min-width: 992px){
.topbar .container{
justify-content: space-between;
}
.topbar .container > div:not(:last-child){
position: relative;
padding-right: 18px;
}
.topbar .container > div:not(:last-child)::after{
content: "";
position: absolute;
right: 4px;
top: 50%;
width: 6px;
height: 6px;
transform: translateY(-50%);
border-radius: 50%;
background: rgba(255,255,255,.3);
}
}
/* En mobile, dos filas centradas y sin separadores */
@media (max-width: 991.98px){
.topbar .container{
justify-content: center;
row-gap: 6px;
}
}
/* Links del topbar */
.topbar a{
color: #e9f8fb;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.topbar a:hover{
color: #fff;
border-color: rgba(255,255,255,.25);
}
/* WhatsApp destacado como pill */
.topbar a[href*="wa.me"]{
background: rgba(255,255,255,.10);
padding: 6px 12px;
border-radius: 999px;
border: 1px solid rgba(255,255,255,.18);
font-weight: 700;
letter-spacing: .2px;
box-shadow: 0 2px 10px rgba(0,0,0,.12);
}
.topbar a[href*="wa.me"]:hover{
background: rgba(255,255,255,.16);
transform: translateY(-1px);
}
/* Efecto sutil de brillo */
.topbar::before{
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 1px;
background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,0));
opacity: .6;
}
/* ===== INLINE <style> BLOCK #6 ===== */
/* =====================
Fixes de responsive sin romper markup
Aplica sólo en pantallas chicas
===================== */
@media (max-width: 992px){
/* Hero: pasar a 1 columna */
.hero-grid{
grid-template-columns: 1fr !important;
gap: var(--space-xl) !important;
}
/* KPIs: que envuelvan y no se corten */
.hero-stats{
flex-wrap: wrap !important;
row-gap: var(--space-sm) !important;
}
.stat-number{
font-size: var(--text-2xl) !important;
}
/* Tarjeta de categorías: 2 columnas y padding más chico */
.hero-card{
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
padding: var(--space-md) !important;
}
.pill{
justify-content: center;
text-align: center;
}
/* Asegurar que nada desborde horizontalmente */
.container, .section, .hero, body{
overflow-x: hidden !important;
}
}
/* Pequeñísimo ajuste para móviles muy angostos */
@media (max-width: 375px){
.stat-number{ font-size: var(--text-xl) !important; }
.pill{ padding: 6px 10px; font-size: var(--text-sm); }
}
/* ===== INLINE <style> BLOCK #7 ===== */
/* ===== Topbar compact ===== */
.topbar{
background: #0c5f62;
color: #e9fbfb;
font-size: 13px;
}
.topbar .container{
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
padding: 6px 12px;
flex-wrap: wrap;
}
.topbar .container > *{
display: inline-flex;
align-items: center;
white-space: nowrap;
}
.topbar .container > * + *{
position: relative;
}
.topbar .container > * + *::before{
content: "•";
opacity: .55;
margin: 0 6px 0 2px;
}
.topbar a{
color: inherit;
text-decoration: none;
}
.topbar a:hover{ text-decoration: underline; }
.topbar .topbar-cta{
background: rgba(255,255,255,.12);
border: 1px solid rgba(255,255,255,.22);
border-radius: 999px;
padding: 4px 12px;
font-weight: 600;
text-decoration: none !important;
}
/* Iframe de notificación reducido y alineado */
.topbar iframe.topbar-iframe{
border: 0;
display: inline-block;
height: 28px;
width: 520px;
transform: scale(.86);
transform-origin: left center;
margin: 0;
}
/* Tablets: más margen y ajuste suave */
@media (max-width: 768px){
.topbar .container{
justify-content: center;
gap: 8px;
padding-top: 6px;
padding-bottom: 6px;
}
.topbar .container > * + *::before{ display: none; }
.topbar iframe.topbar-iframe{
width: 420px;
height: 30px; /* evita cortar texto vertical */
transform: scale(.84);
}
}
/* Phones */
@media (max-width: 480px){
/* 2 líneas ordenadas: 1) iframe // 2) texto + CTA */
.topbar .container{
flex-direction: column;
gap: 6px;
}
.topbar .container > * + *::before{ display: none; }
.topbar iframe.topbar-iframe{
width: 100%;
max-width: 360px; /* evita overflow en pantallas muy chicas */
height: 34px; /* asegura que no corte el contenido */
transform: scale(.92);
}
}
/* ===== INLINE <style> BLOCK #8 ===== */
.logo-badge{ width:56px; height:56px; }
/* ===== INLINE <style> BLOCK #9 ===== */
.logo-badge {
all: unset; /* elimina cualquier estilo heredado */
display: flex;
align-items: center;
justify-content: center;
width: 50px; height: 50px;
margin-right: 5px;
}
.logo-badge img.logo-icon {
width: 100%;
height: 100%;
object-fit: contain; /* o 'cover' si querés rellenar completamente */
border-radius: 0; /* sin redondeos */
box-shadow: none;
}
/* ===== INLINE <style> BLOCK #10 ===== */
/* --- Ticker imágenes grandes --- */
#trabajos .ticker-wrapper {
overflow: hidden;
position: relative;
width: 100%;
padding: 8px 0;
}
#trabajos .ticker-track {
display: flex;
width: max-content;
animation: tickerScroll 28s linear infinite;
align-items: center;
}
#trabajos .ticker-img {
height: 540px;
width: auto;
margin-right: 28px;
border-radius: 18px;
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
@keyframes tickerScroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
@media (max-width: 768px) {
#trabajos .ticker-img {
height: 92vw;
margin-right: 16px;
}
}
/* ===== INLINE <style> BLOCK #11 ===== */
.reclutamiento-section {
padding: 30px 0;
background-color: #f9f9f9;
}
.flyer-reclutamiento {
max-width: 520px;
width: 100%;
height: auto;
border-radius: 6px;
box-shadow: 0 2px 10px rgba(0,0,0,0.08);
margin: 0 auto;
display: block;
}
/* ===== INLINE <style> BLOCK #12 ===== */
/* WhatsApp Float - El más hermoso del mundo */
.whatsapp-float-container {
position: fixed;
bottom: 30px;
right: 30px;
z-index: 9999;
perspective: 1000px;
}
.whatsapp-float {
position: relative;
transition: all 0.3s ease;
transform-style: preserve-3d;
}
.whatsapp-float:hover {
transform: translateY(-5px) rotate(5deg) scale(1.1);
}
.whatsapp-button {
display: block;
width: 70px;
height: 70px;
border-radius: 50%;
background: #25D366;
box-shadow: 0 10px 25px rgba(37, 211, 102, 0.3);
position: relative;
transition: all 0.3s ease;
animation: float 3s ease-in-out infinite;
}
.whatsapp-button:hover {
background: #128C7E;
transform: scale(1.1);
box-shadow: 0 15px 30px rgba(37, 211, 102, 0.4);
}
.whatsapp-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 40px;
height: 40px;
color: white;
}
.whatsapp-ico {
width: 100%;
height: 100%;
fill: white;
}
.whatsapp-pulse {
position: absolute;
width: 100%;
height: 100%;
background: rgba(37, 211, 102, 0.6);
border-radius: 50%;
opacity: 0;
animation: pulse 2s infinite;
}
.whatsapp-pulse-delayed {
position: absolute;
width: 100%;
height: 100%;
background: rgba(37, 211, 102, 0.4);
border-radius: 50%;
opacity: 0;
animation: pulse 2s infinite 0.5s;
}
.whatsapp-tooltip {
position: absolute;
right: 90px;
top: 50%;
transform: translateY(-50%);
background: white;
color: #333;
padding: 12px 15px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
width: 200px;
text-align: center;
}
.whatsapp-tooltip small {
display: block;
font-size: 12px;
color: #666;
font-weight: normal;
margin-top: 3px;
}
.tooltip-arrow {
position: absolute;
right: -10px;
top: 50%;
transform: translateY(-50%);
width: 0;
height: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
border-left: 10px solid white;
}
.whatsapp-float:hover .whatsapp-tooltip {
opacity: 1;
visibility: visible;
right: 80px;
}
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
@keyframes pulse {
0% { transform: scale(0.8); opacity: 0; }
70% { transform: scale(1.3); opacity: 0.4; }
100% { transform: scale(1.4); opacity: 0; }
}
/* Efecto de latido al cargar */
@keyframes heartbeat {
0% { transform: scale(1); }
25% { transform: scale(1.1); }
50% { transform: scale(1); }
75% { transform: scale(1.1); }
100% { transform: scale(1); }
}
/* Animación inicial */
.whatsapp-button {
animation: heartbeat 1.5s ease 2s 2, float 3s ease-in-out infinite 3s;
}
/* Responsive */
@media (max-width: 768px) {
.whatsapp-float-container {
bottom: 20px;
right: 20px;
}
.whatsapp-button {
width: 60px;
height: 60px;
}
.whatsapp-tooltip {
display: none;
}
}