grupogeo.com.ar
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://fonts.googleapis.com/css2?family=Inter:opsz,[email protected],400;14..32,500;14..32,600;14..32,700;14..32,800;14..32,900&display=swaphttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.csshttps://unpkg.com/[email protected]/dist/aos.css/* ===== VARIABLES & RESET ===== */
:root {
--brand: #7b1c1c; /* bordó principal */
--brand-light: #a33a3a; /* bordó claro */
--brand-soft: rgba(123, 28, 28, 0.08);
--brand-glow: rgba(123, 28, 28, 0.25);
--bg-soft: #f8f6f6;
--ink: #1e1e1e;
--muted: #5f5f5f;
--subtle-border: rgba(0, 0, 0, 0.06);
--card-shadow: 0 20px 35px -8px rgba(0, 0, 0, 0.1), 0 5px 15px -8px rgba(0, 0, 0, 0.06);
--hover-shadow: 0 25px 45px -12px rgba(123, 28, 28, 0.25);
--radius-card: 24px;
--radius-element: 16px;
--radius-full: 999px;
--transition: all 0.25s cubic-bezier(0.2, 0, 0, 1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
color: var(--ink);
background-color: #ffffff;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ===== FIX: evitar scroll horizontal en mobile ===== */
html, body { overflow-x: hidden; }
/* ===== FIX: botón hamburguesa visible + cómodo ===== */
.navbar-toggler{
padding: .45rem .7rem;
border-radius: var(--radius-full);
background: rgba(123, 28, 28, 0.08);
}
.navbar-toggler:focus{
box-shadow: 0 0 0 .25rem rgba(123, 28, 28, 0.18);
}
/* En mobile, el desplegable queda como “card” (y no rompe layout) */
@media (max-width: 991.98px){
#navMain{
margin-top: .6rem;
background: rgba(255,255,255,0.96);
border: 1px solid rgba(0,0,0,0.06);
border-radius: 16px;
padding: .65rem;
box-shadow: 0 12px 28px rgba(0,0,0,0.08);
}
#navMain .nav-link{ padding: .65rem .9rem !important; }
#navMain .btn{ width: 100%; justify-content: center; }
}
/* ===== TIPOGRAFÍA Y JERARQUÍA ===== */
h1, h2, h3, h4, h5, h6 {
font-weight: 800;
letter-spacing: -0.02em;
line-height: 1.2;
}
.section-title {
font-size: 2.8rem;
font-weight: 900;
letter-spacing: -0.03em;
margin-bottom: 1rem;
}
.section-subtitle {
font-size: 1.2rem;
color: var(--muted);
max-width: 60ch;
margin-left: auto;
margin-right: auto;
font-weight: 400;
}
.eyebrow {
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--brand);
background: var(--brand-soft);
padding: 0.35rem 1rem;
border-radius: var(--radius-full);
margin-bottom: 1rem;
backdrop-filter: blur(4px);
}
/* ===== ENLACES Y BOTONES ===== */
a {
text-decoration: none;
transition: var(--transition);
}
.btn {
border-radius: var(--radius-full);
padding: 0.75rem 1.8rem;
font-weight: 700;
font-size: 1rem;
transition: var(--transition);
border: 2px solid transparent;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02);
}
.btn-brand {
background: var(--brand);
color: white;
border-color: var(--brand);
}
.btn-brand:hover {
background: #611212;
border-color: #611212;
transform: scale(1.02);
box-shadow: 0 10px 20px -5px var(--brand-glow);
}
.btn-outline-brand {
background: transparent;
color: var(--brand);
border: 2px solid var(--brand);
}
.btn-outline-brand:hover {
background: var(--brand);
color: white;
transform: scale(1.02);
box-shadow: 0 10px 20px -5px var(--brand-glow);
}
/* ===== NAVBAR ULTRAPRO ===== */
.nav-blur {
backdrop-filter: saturate(180%) blur(12px);
background: rgba(255, 255, 255, 0.85);
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
padding: 0.75rem 0;
}
.navbar-brand {
font-weight: 900;
font-size: 1.6rem;
letter-spacing: -0.02em;
color: var(--ink);
background: linear-gradient(135deg, var(--brand) 0%, var(--brand-light) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.navbar-nav .nav-link {
font-weight: 600;
color: var(--ink);
padding: 0.5rem 1rem !important;
border-radius: var(--radius-full);
transition: var(--transition);
position: relative;
}
.navbar-nav .nav-link:hover {
color: var(--brand) !important;
background: var(--brand-soft);
}
/* ===== SECCIONES ===== */
section {
padding: 100px 0;
}
.anchor-offset {
scroll-margin-top: 90px;
}
/* ===== CARDS CON ICONOS, MODERNAS ===== */
.feature-card, .service-card, .stat-card {
background: white;
border: 1px solid var(--subtle-border);
border-radius: var(--radius-card);
padding: 2rem 1.8rem;
height: 100%;
transition: var(--transition);
box-shadow: var(--card-shadow);
position: relative;
overflow: hidden;
}
.feature-card:hover, .service-card:hover {
transform: translateY(-8px);
border-color: transparent;
box-shadow: var(--hover-shadow);
}
.ic {
width: 56px;
height: 56px;
background: var(--brand-soft);
color: var(--brand);
border-radius: var(--radius-element);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 1.5rem;
transition: var(--transition);
}
.feature-card:hover .ic {
background: var(--brand);
color: white;
transform: scale(1.05) rotate(2deg);
}
.feature-card h5, .service-card h5 {
font-weight: 800;
font-size: 1.4rem;
margin-bottom: 0.75rem;
}
.feature-card p, .service-card p {
color: var(--muted);
font-size: 1rem;
line-height: 1.6;
}
/* ===== HERO PREMIUM ===== */
.hero {
padding-top: 140px;
padding-bottom: 80px;
background: linear-gradient(145deg, #ffffff 0%, var(--bg-soft) 100%);
}
.hero-card {
border-radius: var(--radius-card);
background: white;
box-shadow: var(--card-shadow);
overflow: hidden;
border: 1px solid var(--subtle-border);
}
.hero-copy {
padding: 3rem;
}
.hero h1 {
font-size: 3.2rem;
font-weight: 900;
line-height: 1.1;
}
.hero p {
font-size: 1.2rem;
color: var(--muted);
}
.hero-bullets {
list-style: none;
padding: 0;
}
.hero-bullets li {
margin: 0.75rem 0;
display: flex;
align-items: center;
gap: 0.75rem;
color: var(--muted);
}
.hero-bullets li::before {
content: "✓";
display: inline-block;
width: 24px;
height: 24px;
background: var(--brand-soft);
color: var(--brand);
border-radius: 50%;
text-align: center;
line-height: 24px;
font-weight: 900;
font-size: 0.9rem;
}
.hero-media {
background: linear-gradient(135deg, rgba(123,28,28,0.05), rgba(0,0,0,0.02));
height: 100%;
min-height: 400px;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem;
}
.hero-media img {
width: 100%;
max-width: 550px;
border-radius: 20px;
box-shadow: 0 30px 40px -15px rgba(0, 0, 0, 0.2);
transition: var(--transition);
}
.hero-media img:hover {
transform: scale(1.02);
box-shadow: 0 4
/* ...cortado... */
/* Ajustá este color si tu marca usa otro */
:root{ --brand:#7b1c1c; }
/* Contenedor de pasos (timeline) */
.steps{
display:flex;
flex-direction:column;
gap: 14px;
margin-top: 10px;
}
.step{
display:flex;
gap: 14px;
align-items:flex-start;
position: relative;
}
.step .dot{
width: 40px;
height: 40px;
border-radius: 14px;
display:flex;
align-items:center;
justify-content:center;
background: rgba(0,0,0,.04);
border: 1px solid rgba(0,0,0,.08);
color: var(--brand);
flex: 0 0 40px;
box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.step .dot i{
font-size: 14px;
}
/* Línea vertical entre pasos */
.step:not(:last-child)::after{
content:"";
position:absolute;
left: 20px;
top: 44px;
width: 2px;
height: calc(100% - 22px);
background: rgba(0,0,0,.10);
border-radius: 2px;
}
/* Micro-typo para que quede más premium */
.step .fw-bold{ letter-spacing: .2px; }
.step .text-secondary.small{ line-height: 1.35; }
/* Asegura altura y “stretch” agradable dentro de la card */
.feature-card .steps{ padding-bottom: 2px; }
/* Mobile: un poquito más compacto */
@media (max-width: 576px){
.step{ gap: 12px; }
.step .dot{
width: 38px; height: 38px; flex-basis: 38px; border-radius: 12px;
}
.step:not(:last-child)::after{ left: 19px; top: 42px; }
}
/* ================== Scope: geo-* ================== */
.geo-brand{
padding:84px 0;
background: linear-gradient(180deg, #ffffff 0%, #f6f4f4 100%);
}
.geo-eyebrow{
display:inline-block; font-weight:800; font-size:.85rem;
color:#7b1c1c; letter-spacing:.08em; text-transform:uppercase;
padding:.25rem .6rem; border-radius:999px; background:rgba(123,28,28,.08);
margin-bottom:.6rem;
}
.geo-title{font-weight:900; letter-spacing:-.02em; margin:0;}
.geo-subtitle{color:#5f5f5f; max-width:56ch; margin:10px auto 0;}
.geo-ticker{
position:relative;
max-width:980px;
margin:0 auto;
}
.geo-tk-viewport{
border-radius:18px;
background:#fff;
box-shadow:0 14px 34px rgba(0,0,0,.12);
border:1px solid rgba(0,0,0,.06);
overflow:hidden;
padding:10px;
cursor:grab;
user-select:none;
}
.geo-tk-viewport:active{cursor:grabbing;}
.geo-tk-track{
display:flex;
gap:14px;
align-items:center;
will-change:transform;
transform:translate3d(0,0,0);
}
.geo-tk-item{
flex:0 0 auto;
width:500px; /* desktop “tipo 500x500 según contenido” */
height:500px;
border:0;
padding:0;
background:#fff;
border-radius:16px;
overflow:hidden;
display:flex;
align-items:center;
justify-content:center;
box-shadow:0 10px 22px rgba(0,0,0,.10);
cursor:zoom-in;
}
.geo-tk-item img{
width:100%;
height:100%;
object-fit:contain;
background:#fff;
display:block;
}
/* botones prev/next */
.geo-tk-btn{
position:absolute;
top:50%;
transform:translateY(-50%);
width:52px;
height:52px;
border-radius:50%;
border:0;
background:rgba(0,0,0,.55);
color:#fff;
font-size:34px;
line-height:52px;
text-align:center;
z-index:5;
cursor:pointer;
transition:transform .2s, background .2s, box-shadow .2s;
box-shadow:0 10px 24px rgba(0,0,0,.20);
}
.geo-tk-btn:hover{
background:rgba(0,0,0,.65);
transform:translateY(-50%) scale(1.05);
}
.geo-tk-prev{left:10px;}
.geo-tk-next{right:10px;}
/* badges */
.geo-badges{display:flex; flex-wrap:wrap; gap:10px; justify-content:center;}
.geo-badge{
background:#fff;
border:1px solid rgba(0,0,0,.08);
border-radius:999px;
padding:10px 14px;
font-weight:800;
color:#2a2a2a;
box-shadow:0 8px 18px rgba(0,0,0,.06);
}
/* Modal */
.geo-modal{background:#000;border:0;}
.geo-light-img{
max-height:86vh; width:100%; height:auto; object-fit:contain; background:#000;
}
.geo-light-nav{
position:absolute; top:50%; transform:translateY(-50%);
border:0; width:46px; height:46px; border-radius:999px;
background:rgba(255,255,255,.18); color:#fff;
font-size:32px; line-height:46px; text-align:center;
z-index:5; cursor:pointer;
}
.geo-light-nav:hover{background:rgba(255,255,255,.28);}
.geo-light-nav.geo-prev{left:10px;}
.geo-light-nav.geo-next{right:10px;}
/* Responsive */
@media (max-width: 991.98px){
.geo-tk-item{ width:420px; height:420px; }
.geo-tk-prev{left:8px;}
.geo-tk-next{right:8px;}
}
@media (max-width: 575.98px){
.geo-brand{padding:72px 0;}
.geo-tk-item{ width:84vw; height:84vw; }
.geo-tk-btn{ width:48px; height:48px; font-size:32px; line-height:48px; }
}
:root{
/* WhatsApp oficial */
--wa:#25D366;
--wa-dark:#1fb85a;
--wa-darker:#189a4a;
/* UI clara */
--light-bg:#ffffff;
--light-bg-soft:#f6f8f7;
--light-border:#dde4df;
--dark-text:#1c1f1d;
--muted-text:#6c756f;
}
/* FACEBOOK button (arriba del IG) */
.fb-float{
position:fixed; right:18px; bottom:166px;
z-index:9997;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center; color:#fff; text-decoration:none;
background: linear-gradient(180deg, #1877F2 0%, #0f63d6 100%);
box-shadow:0 10px 30px rgba(0,0,0,.25);
transition:transform .25s, box-shadow .25s, opacity .25s;
}
.fb-float:hover{
transform:translateY(-2px) scale(1.04);
box-shadow:0 14px 36px rgba(0,0,0,.35);
}
/* IG button (medio) */
.ig-float{
position:fixed; right:18px; bottom:92px;
z-index:9998;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center; color:#fff; text-decoration:none;
background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
box-shadow:0 10px 30px rgba(0,0,0,.25);
transition:transform .25s, box-shadow .25s, opacity .25s;
}
.ig-float:hover{
transform:translateY(-2px) scale(1.04);
box-shadow:0 14px 36px rgba(0,0,0,.35);
}
/* WhatsApp flotante */
.wa-float{
position:fixed; right:18px; bottom:18px;
z-index:9999; font-family:inherit;
}
.wa-btn{
background:var(--wa);
color:#fff;
border:0;
width:60px; height:60px; border-radius:50%;
display:grid; place-items:center;
box-shadow:0 10px 30px rgba(0,0,0,.22);
cursor:pointer; transition:transform .3s, box-shadow .3s, filter .3s;
position:relative; overflow:hidden;
z-index:9999;
}
.wa-btn:hover{
transform:translateY(-3px) scale(1.05);
box-shadow:0 14px 36px rgba(0,0,0,.28);
filter:brightness(.98);
}
.wa-card{
position:absolute; right:0; bottom:74px;
width:min(360px,92vw);
background:var(--light-bg);
color:var(--dark-text);
border-radius:18px;
overflow:hidden;
box-shadow:0 18px 60px rgba(0,0,0,.25);
border:1px solid var(--light-border);
transform:translateY(10px);
opacity:0;
transition:transform .3s, opacity .3s;
z-index:10000;
}
.wa-card[aria-modal="true"]{
transform:translateY(0);
opacity:1;
}
.wa-head{
display:flex; align-items:center; gap:12px;
padding:14px 16px;
background:linear-gradient(135deg, #ffffff, #ecf6f0);
border-bottom:1px solid var(--light-border);
}
.wa-avatar{
width:40px; height:40px; border-radius:10px;
background:#e9f7ef;
display:grid; place-items:center;
border:1px solid #cfeeda;
overflow:hidden;
}
.wa-title{
font-weight:800;
font-size:1.02rem;
color:var(--dark-text);
}
.wa-status{
font-size:.85rem;
color:var(--muted-text);
display:flex; align-items:center; gap:6px;
}
.wa-status::before{
content:""; width:8px; height:8px; border-radius:50%;
background:var(--wa);
}
.wa-close{
margin-left:auto;
background:transparent;
color:var(--muted-text);
border:0;
font-size:24px;
cursor:pointer;
opacity:.75;
width:32px; height:32px;
border-radius:50%;
display:flex; align-items:center; justify-content:center;
transition:.2s;
}
.wa-close:hover{
opacity:1;
background:rgba(0,0,0,.04);
}
.wa-body{
padding:12px 14px;
max-height:40vh;
overflow:auto;
background:var(--light-bg-soft);
display:flex;
flex-direction:column;
gap:8px;
}
.wa-bubble{
max-width:88%;
padding:9px 11px;
border-radius:14px;
line-height:1.35;
box-shadow:0 3px 10px rgba(0,0,0,.06);
animation:fadeIn .25s ease;
font-size:0.9rem;
}
@keyframes fadeIn{
from{opacity:0; transform:translateY(5px)}
to{opacity:1; transform:none}
}
.wa-bot{
background:#ffffff;
border:1px solid var(--light-border);
align-self:flex-start;
border-bottom-left-radius:4px;
}
.wa-user{
background:var(--wa);
color:#fff;
align-self:flex-end;
border-bottom-right-radius:4px;
}
.wa-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px 12px;
background:#ffffff;
border-top:1px solid var(--light-border);
}
.wa-compose textarea{
resize:none;
border-radius:12px;
padding:10px 12px;
border:1px solid var(--light-border);
background:#f9fbfa;
color:var(--dark-text);
outline:none;
min-height:44px;
font-family:inherit;
font-size:0.9rem;
transition:.2s;
}
.wa-compose textarea:focus{
border-color:var(--wa);
box-shadow:0 0 0 2px rgba(37,211,102,.15);
background:#ffffff;
}
.wa-send{
background:var(--wa);
color:#ffffff;
border:0;
border-radius:12px;
padding:0 16px;
font-weight:700;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
transition:.2s;
}
.wa-send:hover{
background:var(--wa-dark);
transform:scale(1.04);
}
.wa-body::-webkit-scrollbar{ width:6px; }
.wa-body::-webkit-scrollbar-track{ background:rgba(0,0,0,.03); border-radius:3px; }
.wa-body::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.12); border-radius:3px; }
.wa-body::-webkit-scrollbar-thumb:hover{ background:rgba(0,0,0,.18); }
@media (max-width:480px){
.fb-float{ right:12px; bottom:160px; width:52px; height:52px; }
.ig-float{ right:12px; bottom:86px; width:52px; height:52px; }
.wa-float{ right:12px; bottom:12px; }
.wa-card{ width:calc(100vw - 24px); right:0; }
}
erazourbanclothes.com.ar
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.csshttps://fonts.googleapis.com/css2?family=Inter:opsz,[email protected],300..800&family=Space+Grotesk:[email protected]&display=swap/*--------------------------------------------------------------
# VARIABLES Y RESET PROFESIONAL
--------------------------------------------------------------*/
:root {
--accent: #ff3b7a;
--accent-soft: rgba(255, 59, 122, 0.08);
--accent-dim: rgba(255, 59, 122, 0.25);
--black: #03050a;
--gray-900: #0f172a;
--gray-800: #1e293b;
--gray-700: #334155;
--gray-600: #475569;
--gray-300: #cbd5e1;
--gray-100: #f1f5f9;
--white: #ffffff;
--glass-bg: rgba(255, 255, 255, 0.72);
--glass-border: rgba(15, 23, 42, 0.06);
--shadow-xs: 0 2px 5px rgba(2, 6, 23, 0.02), 0 1px 2px rgba(2, 6, 23, 0.03);
--shadow-sm: 0 5px 12px rgba(2, 6, 23, 0.03), 0 2px 4px rgba(2, 6, 23, 0.03);
--shadow-md: 0 18px 32px -12px rgba(2, 6, 23, 0.08);
--shadow-lg: 0 25px 40px -16px rgba(2, 6, 23, 0.12);
--shadow-xl: 0 30px 60px -12px rgba(2, 6, 23, 0.18);
--radius-sm: 14px;
--radius-md: 20px;
--radius-lg: 30px;
--radius-xl: 40px;
--radius-pill: 999px;
--transition: all 0.22s cubic-bezier(0.2, 0, 0, 1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
scroll-padding-top: 100px;
overflow-x: clip;
width: 100%;
}
body {
font-family: "Inter", system-ui, -apple-system, sans-serif;
color: var(--gray-900);
background: var(--white);
line-height: 1.6;
overflow-x: clip;
width: 100%;
}
/*--------------------------------------------------------------
# TIPOGRAFÍA PREMIUM
--------------------------------------------------------------*/
h1, h2, h3, h4, .h1, .h2, .h3, .h4, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6, .fw-black, .fw-bolder, .fw-extrabold {
font-family: "Space Grotesk", "Inter", sans-serif;
font-weight: 700;
letter-spacing: -0.02em;
}
.display-1 { font-size: clamp(3.5rem, 8vw, 5.5rem); line-height: 0.95; }
.display-2 { font-size: clamp(3rem, 7vw, 4.5rem); line-height: 1; }
.display-5 { font-size: clamp(2rem, 5vw, 2.8rem); line-height: 1.1; }
.display-6 { font-size: clamp(1.6rem, 4vw, 2rem); line-height: 1.2; }
.section-eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.14em;
color: var(--accent);
background: var(--accent-soft);
padding: 0.55rem 1rem;
border-radius: var(--radius-pill);
border: 1px solid var(--accent-dim);
backdrop-filter: blur(4px);
margin-bottom: 1.2rem;
}
.section-title {
font-size: clamp(2.2rem, 5vw, 2.8rem);
font-weight: 700;
line-height: 1.1;
margin-bottom: 1.2rem;
}
.section-subtitle {
font-size: 1.2rem;
color: var(--gray-600);
max-width: 700px;
margin-left: auto;
margin-right: auto;
font-weight: 400;
}
/*--------------------------------------------------------------
# COMPONENTES GLASS Y CARDS
--------------------------------------------------------------*/
.glass-card {
background: var(--glass-bg);
backdrop-filter: blur(12px);
border: 1px solid var(--glass-border);
border-radius: var(--radius-md);
box-shadow: var(--shadow-sm);
transition: var(--transition);
}
.glass-card:hover {
background: rgba(255, 255, 255, 0.85);
border-color: rgba(15, 23, 42, 0.1);
box-shadow: var(--shadow-md);
transform: translateY(-3px);
}
.premium-card {
background: var(--white);
border: 1px solid rgba(15, 23, 42, 0.05);
border-radius: var(--radius-md);
box-shadow: var(--shadow-xs);
transition: var(--transition);
height: 100%;
}
.premium-card:hover {
border-color: var(--accent-dim);
box-shadow: var(--shadow-lg);
transform: scale(1.01);
}
.icon-pill-premium {
width: 52px;
height: 52px;
display: grid;
place-items: center;
border-radius: 18px;
background: linear-gradient(145deg, rgba(255,59,122,0.12), rgba(255,59,122,0.02));
border: 1px solid rgba(255,59,122,0.2);
color: var(--accent);
font-size: 1.5rem;
flex-shrink: 0;
transition: var(--transition);
}
.premium-card:hover .icon-pill-premium {
background: linear-gradient(145deg, rgba(255,59,122,0.18), rgba(255,59,122,0.05));
border-color: rgba(255,59,122,0.4);
transform: scale(0.96);
}
/*--------------------------------------------------------------
# BOTONES DE AUTOR
--------------------------------------------------------------*/
.btn-accent {
background: var(--accent);
border: none;
color: white;
font-weight: 700;
padding: 0.85rem 1.8rem;
border-radius: var(--radius-pill);
letter-spacing: -0.01em;
box-shadow: 0 8px 18px rgba(255, 59, 122, 0.25);
transition: var(--transition);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.btn-accent:hover {
background: #ff1f5e;
color: white;
transform: translateY(-2px);
box-shadow: 0 12px 24px rgba(255, 59, 122, 0.35);
}
.btn-outline-accent {
background: transparent;
border: 1.5px solid rgba(255, 59, 122, 0.35);
color: var(--accent);
font-weight: 700;
padding: 0.85rem 1.8rem;
border-radius: var(--radius-pill);
transition: var(--transition);
backdrop-filter: blur(4px);
}
.btn-outline-accent:hover {
background: var(--accent-soft);
border-color: var(--accent);
color: var(--accent);
transform: translateY(-2px);
}
/*--------------------------------------------------------------
# NAVBAR DE LUJO
--------------------------------------------------------------*/
.navbar {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(18px);
border-bottom: 1px solid rgba(15, 23, 42, 0.04);
padding: 16px 0;
box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}
.navbar-brand {
font-weight: 800;
font-size: 1.4rem;
display: flex;
align-items: center;
gap: 0.7rem;
letter-spacing: -0.02em;
}
.brand-mark {
width: 44px;
height: 44px;
display: grid;
place-items: center;
background: linear-gradient(145deg, var(--accent-soft), rgba(255,255,255,0.1));
border-radius: 16px;
border: 1px solid rgba(255,59,122,0.2);
color: var(--accent);
font-size: 1.5rem;
}
.nav-link {
font-weight: 600;
color: var(--gray-800);
padding: 0.5rem 1rem !important;
margin: 0 0.2rem;
border-radius: var(--radius-pill);
transition: var(--transition);
}
.nav-link:hover {
color: var(--accent);
background: var(--accent-soft);
}
/*--------------------------------------------------------------
# HERO ÉPICO
--------------------------------------------------------------*/
.hero {
padding-top: 140px;
padding-bottom: 60px;
background: radial-gradient(circle at 80% 50%, rgba(255,59,122,0.02) 0%, transparent 50%);
}
.hero h1 {
font-size: clamp(2.6rem, 6vw, 3.8rem);
font-weight: 700;
line-height: 1;
letter-spacing: -0.03em;
margin-bottom: 1.5rem;
}
.hero p {
font-size: 1.2rem;
color: var(--gray-600);
margin-bottom: 2rem;
}
.hero-media-frame {
background: var(--white);
border-radius: var
/* ...cortado... */
:root{
--eec-wa:#25D366;
--eec-wa-dark:#1fb85a;
--eec-light-bg:#ffffff;
--eec-light-bg-soft:#f6f8f7;
--eec-light-border:#dde4df;
--eec-dark-text:#1c1f1d;
--eec-muted-text:#6c756f;
}
.eec-fb-float{
position:fixed; right:18px; bottom:166px;
z-index:9997;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center; color:#fff; text-decoration:none;
background: linear-gradient(180deg, #1877F2 0%, #0f63d6 100%);
box-shadow:0 10px 30px rgba(0,0,0,.25);
transition:transform .25s, box-shadow .25s, opacity .25s;
}
.eec-fb-float:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 14px 36px rgba(0,0,0,.35); }
.eec-ig-float{
position:fixed; right:18px; bottom:92px;
z-index:9998;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center; color:#fff; text-decoration:none;
background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
box-shadow:0 10px 30px rgba(0,0,0,.25);
transition:transform .25s, box-shadow .25s, opacity .25s;
}
.eec-ig-float:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 14px 36px rgba(0,0,0,.35); }
.eec-wa-float{
position:fixed; right:18px; bottom:18px;
z-index:9999; font-family:inherit;
}
.eec-wa-btn{
background:var(--eec-wa);
color:#fff;
border:0;
width:60px; height:60px; border-radius:50%;
display:grid; place-items:center;
box-shadow:0 10px 30px rgba(0,0,0,.22);
cursor:pointer;
transition:transform .3s, box-shadow .3s, filter .3s;
position:relative; overflow:hidden;
z-index:9999;
}
.eec-wa-btn:hover{
transform:translateY(-3px) scale(1.05);
box-shadow:0 14px 36px rgba(0,0,0,.28);
filter:brightness(.98);
}
/* ===== FIX DEFINITIVO: la tarjeta es FIXED, no depende de contenedores ===== */
.eec-wa-card{
position:fixed;
right:18px;
bottom:92px; /* arriba del botón */
width:min(360px, calc(100vw - 24px));
max-width:calc(100vw - 24px);
background:var(--eec-light-bg);
color:var(--eec-dark-text);
border-radius:18px;
overflow:hidden;
box-shadow:0 18px 60px rgba(0,0,0,.25);
border:1px solid var(--eec-light-border);
transform:translateY(10px);
opacity:0;
transition:transform .3s, opacity .3s;
z-index:10000;
}
.eec-wa-card[aria-modal="true"]{
transform:translateY(0);
opacity:1;
}
.eec-wa-head{
display:flex; align-items:center; gap:12px;
padding:14px 16px;
background:linear-gradient(135deg, #ffffff, rgba(255,59,122,0.08));
border-bottom:1px solid var(--eec-light-border);
}
.eec-wa-avatar{
width:40px; height:40px; border-radius:12px;
background:rgba(255,59,122,0.08);
display:grid; place-items:center;
border:1px solid rgba(255,59,122,0.18);
overflow:hidden;
}
.eec-wa-title{ font-weight:800; font-size:1.02rem; color:var(--eec-dark-text); }
.eec-wa-status{
font-size:.85rem;
color:var(--eec-muted-text);
display:flex; align-items:center; gap:6px;
}
.eec-wa-status::before{
content:""; width:8px; height:8px; border-radius:50%;
background:var(--eec-wa);
}
.eec-wa-close{
margin-left:auto;
background:transparent;
color:var(--eec-muted-text);
border:0;
font-size:24px;
cursor:pointer;
opacity:.75;
width:32px; height:32px;
border-radius:50%;
display:flex; align-items:center; justify-content:center;
transition:.2s;
}
.eec-wa-close:hover{ opacity:1; background:rgba(0,0,0,.04); }
.eec-wa-body{
padding:12px 14px;
max-height:40vh;
overflow:auto;
background:var(--eec-light-bg-soft);
display:flex;
flex-direction:column;
gap:8px;
}
.eec-wa-bubble{
max-width:88%;
padding:9px 11px;
border-radius:14px;
line-height:1.35;
box-shadow:0 3px 10px rgba(0,0,0,.06);
animation:eecFadeIn .25s ease;
font-size:0.9rem;
word-break:break-word;
}
@keyframes eecFadeIn{
from{opacity:0; transform:translateY(5px)}
to{opacity:1; transform:none}
}
.eec-wa-bot{
background:#ffffff;
border:1px solid var(--eec-light-border);
align-self:flex-start;
border-bottom-left-radius:4px;
}
.eec-wa-user{
background:var(--eec-wa);
color:#fff;
align-self:flex-end;
border-bottom-right-radius:4px;
}
.eec-wa-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px 12px;
background:#ffffff;
border-top:1px solid var(--eec-light-border);
}
.eec-wa-compose textarea{
resize:none;
border-radius:12px;
padding:10px 12px;
border:1px solid var(--eec-light-border);
background:#f9fbfa;
color:var(--eec-dark-text);
outline:none;
min-height:44px;
font-family:inherit;
font-size:0.9rem;
transition:.2s;
}
.eec-wa-compose textarea:focus{
border-color:var(--eec-wa);
box-shadow:0 0 0 2px rgba(37,211,102,.15);
background:#ffffff;
}
.eec-wa-send{
background:var(--eec-wa);
color:#ffffff;
border:0;
border-radius:12px;
padding:0 16px;
font-weight:700;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
transition:.2s;
}
.eec-wa-send:hover{ background:var(--eec-wa-dark); transform:scale(1.04); }
.eec-wa-body::-webkit-scrollbar{ width:6px; }
.eec-wa-body::-webkit-scrollbar-track{ background:rgba(0,0,0,.03); border-radius:3px; }
.eec-wa-body::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.12); border-radius:3px; }
.eec-wa-body::-webkit-scrollbar-thumb:hover{ background:rgba(0,0,0,.18); }
@media (max-width:480px){
.eec-fb-float{ right:12px; bottom:160px; width:52px; height:52px; }
.eec-ig-float{ right:12px; bottom:86px; width:52px; height:52px; }
.eec-wa-float{ right:12px; bottom:12px; }
.eec-wa-card{
right:12px;
bottom:86px;
width:calc(100vw - 24px);
max-width:calc(100vw - 24px);
}
}
estudioalejandrapastuch.com
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.csshttps://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:wght@400;500;600;700&display=swaphttps://unpkg.com/[email protected]/dist/aos.css:root {
/* Paleta de colores premium mejorada */
--brand-primary: #2B2410;
--brand-secondary: #6A571A;
--brand-tertiary: #B08D2A;
--brand-accent: #ECDF98;
--accent-primary: #ECDF98;
--accent-secondary: #D8C36A;
--accent-glow: rgba(236, 223, 152, 0.35);
--text-primary: #0F172A;
--text-secondary: #475569;
--text-muted: #64748B;
--bg-primary: #FFFFFF;
--bg-secondary: #F8FAFC;
--bg-tertiary: #F1F5F9;
--bg-gradient: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
--border-light: rgba(15, 23, 42, 0.06);
--border-medium: rgba(15, 23, 42, 0.1);
--shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.04);
--shadow-md: 0 8px 24px rgba(15, 23, 42, 0.08);
--shadow-lg: 0 20px 40px rgba(15, 23, 42, 0.12);
--shadow-xl: 0 30px 60px rgba(15, 23, 42, 0.15);
--shadow-glow: 0 0 40px var(--accent-glow);
--radius-sm: 12px;
--radius-md: 20px;
--radius-lg: 28px;
--radius-xl: 36px;
--radius-pill: 100px;
--transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
--transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
--transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
--glass-bg: rgba(255, 255, 255, 0.85);
--glass-border: rgba(255, 255, 255, 0.2);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-size: 13px;
scroll-behavior: smooth;
scroll-padding-top: 100px;
}
body {
font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
font-size: 0.95rem;
color: var(--text-primary);
background-color: var(--bg-primary);
line-height: 1.7;
overflow-x: hidden;
font-weight: 400;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* Tipografía premium ultra */
h1, h2, h3, h4, h5, h6 {
font-family: 'Playfair Display', serif;
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.01em;
color: var(--text-primary);
}
h1 {
font-size: 3rem;
line-height: 1.1;
background: linear-gradient(135deg, var(--text-primary) 0%, var(--brand-primary) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
h2 {
font-size: 2.4rem;
position: relative;
display: inline-block;
}
h3 { font-size: 1.6rem; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }
@media (max-width: 768px) {
h1 { font-size: 3rem; }
h2 { font-size: 2.4rem; }
h3 { font-size: 1.6rem; }
}
/* Fondo animado sutil */
.animated-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
opacity: 0.03;
background:
radial-gradient(circle at 10% 20%, var(--brand-accent) 0%, transparent 20%),
radial-gradient(circle at 90% 80%, var(--accent-primary) 0%, transparent 20%),
radial-gradient(circle at 50% 50%, var(--brand-primary) 0%, transparent 30%);
animation: float 20s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translate(0, 0) rotate(0deg); }
33% { transform: translate(30px, 50px) rotate(120deg); }
66% { transform: translate(-20px, 80px) rotate(240deg); }
}
/* Navbar ultra premium */
.navbar {
background: var(--glass-bg);
backdrop-filter: blur(30px) saturate(200%);
-webkit-backdrop-filter: blur(30px) saturate(200%);
border-bottom: 1px solid var(--glass-border);
padding: 1.2rem 0;
transition: all var(--transition-normal);
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.03);
}
.navbar.scrolled {
padding: 0.8rem 0;
box-shadow: var(--shadow-lg);
background: rgba(255, 255, 255, 0.98);
}
.navbar-brand {
font-weight: 900;
font-size: 1.3rem;
color: var(--brand-primary) !important;
display: flex;
align-items: center;
gap: 0.8rem;
transition: all var(--transition-normal);
}
.brand-logo {
width: 48px;
height: 48px;
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
border-radius: 14px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.3rem;
box-shadow: 0 4px 12px rgba(10, 38, 71, 0.2);
transition: all var(--transition-normal);
}
.navbar:hover .brand-logo {
transform: rotate(15deg);
box-shadow: 0 8px 20px rgba(10, 38, 71, 0.3);
}
.nav-link {
font-weight: 600;
color: var(--text-secondary) !important;
padding: 0.75rem 1.25rem !important;
border-radius: var(--radius-pill);
transition: all var(--transition-normal);
position: relative;
margin: 0 0.25rem;
font-size: 0.95rem;
}
.nav-link:hover {
color: var(--brand-primary) !important;
background: linear-gradient(135deg, rgba(10, 38, 71, 0.05), rgba(44, 116, 179, 0.05));
transform: translateY(-1px);
}
.nav-link.active {
color: var(--brand-primary) !important;
background: linear-gradient(135deg, rgba(10, 38, 71, 0.1), rgba(44, 116, 179, 0.1));
box-shadow: var(--shadow-sm);
}
.nav-link.active::before {
content: '';
position: absolute;
bottom: 6px;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 3px;
background: linear-gradient(90deg, var(--brand-primary), var(--accent-primary));
border-radius: 2px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
/* Botones ultra premium */
.btn {
font-weight: 700;
padding: 1rem 2.25rem;
border-radius: var(--radius-pill);
transition: all var(--transition-normal);
position: relative;
overflow: hidden;
border: none;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.75rem;
font-size: 1rem;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
transition: left 0.7s ease;
}
.btn:hover::before {
left: 100%;
}
.btn-primary {
background: linear-gradient(135deg, var(--brand-primary), var(--brand-tertiary));
color: white;
box-shadow: 0 6px 20px rgba(10, 38, 71, 0.25);
}
.btn-primary:hover {
background: linear-gradient(135deg, var(--brand-secondary), var(--brand-accent));
color: white;
transform: translateY(-3px) scale(1.02);
box-shadow: 0 12px 30px rgba(10, 38, 71, 0.35);
}
.btn-accent {
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
color: var(--brand-primary);
box-shadow: 0 6px 20px rgba(236, 223, 152, 0.45);
border: 1px solid rgba(10, 38, 71, 0.12);
}
.btn-accent:hover {
background: linear-gradient(135deg, #F3EABF, var(--accent-secondary));
color: var(--brand-primary);
transform: translateY(-3px) scale(1.02);
box-shadow: 0 12px 30px rgba(236, 223, 152, 0.55), var(--shadow-glow);
}
.btn-outline-brand {
background: transparent;
color: var(--brand-primary);
/* ...cortado... */
.gal-gallery .carousel,
#trabajos .gal-carousel{max-width:980px;margin-inline:auto;position:relative}
.gal-frame{
height: clamp(220px, 48vh, 440px);
background:#fff;border-radius:16px;overflow:hidden;
box-shadow:0 12px 28px rgba(0,0,0,.12);
display:flex;align-items:center;justify-content:center;padding:8px
}
.gal-img{
width:auto !important;max-width:100%;
height:auto !important;max-height:100%;
object-fit:contain !important;object-position:center;display:block;cursor:zoom-in
}
/* Controles circulares con más contraste */
/* FIX: asegurar que los botones de navegación SIEMPRE se vean (trabajos) */
#trabajos .gal-carousel .carousel-control-prev,
#trabajos .gal-carousel .carousel-control-next{
opacity: 1 !important;
width: 56px;
height: 56px;
top: 50% !important;
bottom: auto !important;
transform: translateY(-50%) !important;
border-radius: 999px;
background: rgba(0,0,0,.55) !important;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
margin: 0 12px;
z-index: 25;
display: flex;
align-items: center;
justify-content: center;
}
#trabajos .gal-carousel .carousel-control-prev:hover,
#trabajos .gal-carousel .carousel-control-next:hover{
background: rgba(0,0,0,.7) !important;
}
#trabajos .gal-carousel .carousel-control-prev-icon,
#trabajos .gal-carousel .carousel-control-next-icon{
width: 2.6rem;
height: 2.6rem;
background-size: 60% 60%;
opacity: 1 !important;
}
.gal-gallery .carousel-control-prev,
.gal-gallery .carousel-control-next,
#trabajos .gal-carousel .carousel-control-prev,
#trabajos .gal-carousel .carousel-control-next{
z-index:20;width:50px;height:50px;top:50%;transform:translateY(-50%);
opacity:1;background:rgba(0,0,0,.55);border-radius:50%;margin:0 12px
}
.gal-gallery .carousel-control-prev{left:0}
#trabajos .gal-carousel .carousel-control-prev{left:0}
.gal-gallery .carousel-control-next{right:0}
#trabajos .gal-carousel .carousel-control-next{right:0}
.gal-gallery .gal-ctrl-icon,
#trabajos .gal-carousel .gal-ctrl-icon{width:2.6rem;height:2.6rem;background-size:60% 60%}
/* Indicadores: se sitúan fuera; agregamos espacio inferior para que no se corten */
.gal-gallery .carousel-indicators,
#trabajos .gal-carousel .carousel-indicators{z-index:10;bottom:-50px}
.gal-gallery .carousel-indicators button,
#trabajos .gal-carousel .carousel-indicators button{
width:10px;height:10px;border-radius:50%;
background:rgba(0,0,0,.5);border:none
}
.gal-gallery .carousel-indicators button.active{background:#000}
#trabajos .gal-carousel .carousel-indicators button.active{background:#000}
.gal-gallery{padding-bottom:56px}
#trabajos .gal-carousel{padding-bottom:56px} /* espacio para indicadores */
/* Modal */
#galLightbox .modal-content{background:#000}
#galLightboxImg{max-height:86vh;width:100%;height:auto;object-fit:contain;background:#000}
.gal-lightbox-nav{
position:absolute;top:50%;transform:translateY(-50%);
border:0;width:44px;height:44px;border-radius:999px;
background:rgba(255,255,255,.18);color:#fff;font-size:30px;line-height:44px;text-align:center;z-index:5;cursor:pointer
}
.gal-lightbox-nav:hover{background:rgba(255,255,255,.28)}
.gal-lightbox-nav.gal-prev{left:10px}
.gal-lightbox-nav.gal-next{right:10px}
/* Pequeños ajustes móviles */
@media (max-width: 575.98px){
.gal-frame{height: clamp(200px, 40vh, 360px)}
}
/* WhatsApp oficial */
:root{
--wa-green:#25D366;
--wa-green-dark:#128C7E;
--wa-text:#111;
--wa-muted:#6c757d;
--wa-bg:#ffffff;
--wa-border:#e6e8ec;
}
.wa-float{
position:fixed;
right:18px;
bottom:18px;
z-index:9999;
font-family:inherit;
}
.wa-btn{
width:60px;
height:60px;
border-radius:50%;
border:none;
background:linear-gradient(135deg,var(--wa-green),var(--wa-green-dark));
color:#fff;
display:grid;
place-items:center;
cursor:pointer;
box-shadow:0 10px 30px rgba(37,211,102,.45);
transition:transform .3s, box-shadow .3s;
}
.wa-btn:hover{
transform:translateY(-3px) scale(1.05);
box-shadow:0 14px 36px rgba(37,211,102,.55);
}
.wa-card{
position:absolute;
right:0;
bottom:74px;
width:min(360px,92vw);
background:var(--wa-bg);
border-radius:18px;
border:1px solid var(--wa-border);
box-shadow:0 18px 60px rgba(0,0,0,.25);
overflow:hidden;
transform:translateY(10px);
opacity:0;
transition:.25s;
}
.wa-card[aria-modal="true"]{ transform:none; opacity:1; }
.wa-head{
display:flex;
align-items:center;
gap:12px;
padding:14px;
background:linear-gradient(135deg,var(--wa-green-dark),#075E54);
color:#fff;
}
.wa-avatar{
width:40px;
height:40px;
background:#fff;
border-radius:10px;
display:grid;
place-items:center;
color:#075E54;
font-weight:800;
}
.wa-logo{ font-size:14px; letter-spacing:.5px; }
.wa-title{ font-weight:800; line-height:1.1; }
.wa-status{ font-size:.85rem; opacity:.92; }
.wa-close{
margin-left:auto;
border:none;
background:transparent;
color:#fff;
font-size:24px;
cursor:pointer;
line-height:1;
}
.wa-body{
padding:14px;
max-height:40vh;
overflow:auto;
background:#f6f7f8;
display:flex;
flex-direction:column;
gap:8px;
}
.wa-bubble{
max-width:88%;
padding:10px 12px;
border-radius:14px;
font-size:.95rem;
box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.wa-bot{
background:#ffffff;
border:1px solid var(--wa-border);
align-self:flex-start;
}
.wa-user{
background:#e9f8f0;
border:1px solid #c7efd9;
align-self:flex-end;
}
.wa-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px;
border-top:1px solid var(--wa-border);
background:#ffffff;
}
.wa-compose textarea{
resize:none;
border-radius:12px;
padding:10px;
border:1px solid var(--wa-border);
font-family:inherit;
outline:none;
}
.wa-compose textarea:focus{
border-color:#bfe9cf;
box-shadow:0 0 0 4px rgba(37,211,102,.15);
}
.wa-send{
background:linear-gradient(135deg,var(--wa-green),var(--wa-green-dark));
color:#fff;
border:none;
border-radius:12px;
padding:0 16px;
cursor:pointer;
}
.wa-send:hover{ filter:brightness(0.98); }
@media(max-width:480px){
.wa-card{ width:calc(100vw - 24px); }
}
/* ================== FIX: overflow horizontal + navbar mobile ================== */
/* Evita scroll horizontal fantasma en mobile */
html, body{
width:100%;
max-width:100%;
overflow-x:hidden !important;
}
/* Nada debe empujar el layout fuera del viewport */
img, svg, video, canvas, iframe{ max-width:100%; height:auto; }
*, *::before, *::after{ box-sizing: border-box; }
/* Elementos decorativos/particles no deben generar ancho */
.animated-bg, .particle{
max-width:100vw;
pointer-events:none;
}
/* WhatsApp widget: nunca debe exceder el viewport */
.wa-card{ max-width: calc(100vw - 24px); }
/* ---------- Navbar: forzamos colapso correcto en < lg ---------- */
@media (max-width: 991.98px){
/* El contenedor del navbar no debe desbordar */
.navbar .container{ padding-left: 14px; padding-right: 14px; }
/* Marca más compacta para que no empuje el toggler fuera */
.navbar-brand{
min-width:0;
gap: .6rem;
}
.navbar-brand span:last-child{
display:inline-block;
max-width: calc(100vw - 140px); /* deja espacio al toggler */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.navbar-brand{ font-size: 1.05rem; }
.brand-logo{ width: 42px; height: 42px; border-radius: 12px; }
/* Botón hamburguesa siempre visible, alineado a la derecha */
.navbar-toggler{
margin-left:auto;
flex: 0 0 auto;
}
/* Forzamos el comportamiento collapse incluso si algún estilo lo pisa */
.navbar-expand-lg .navbar-collapse{
display:none !important;
width:100%;
}
.navbar-expand-lg .navbar-collapse.show{
display:block !important;
}
.navbar-expand-lg .navbar-nav{
flex-direction: column;
align-items: stretch !important;
gap: .15rem;
padding-top: .75rem;
}
.navbar-expand-lg .navbar-nav .nav-link{
width:100%;
text-align:left;
padding: .85rem 1rem !important;
}
.navbar-expand-lg .navbar-nav .btn{
width:100%;
}
}
/* ================== FIN FIX ================== */
consultoriogalaf.com.ar
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.csshttps://fonts.googleapis.com/css2?family=Inter:opsz,[email protected],300..800&display=swap/* ---------- VARIABLES ---------- */
:root {
/* Paleta respetada al 100% */
--bg: #ffffff;
--text: #111827;
--muted: #4b5563;
--card: #ffffff;
--border: rgba(17, 24, 39, 0.08);
--soft: rgba(17, 24, 39, 0.04);
--accent: #1c227c; /* Teal premium */
--accent2: #1c227c; /* Blue sutil */
--accentDark: #1c227c;
/* Nuevas variables de refinamiento */
--shadow-sm: 0 4px 12px rgba(17, 24, 39, 0.02), 0 1px 2px rgba(17, 24, 39, 0.03);
--shadow-md: 0 8px 24px rgba(28, 34, 124, 0.06), 0 2px 6px rgba(17, 24, 39, 0.02);
--shadow-lg: 0 20px 40px -12px rgba(28, 34, 124, 0.14), 0 4px 18px rgba(17, 24, 39, 0.04);
--radius-md: 20px;
--radius-lg: 28px;
--radius-xl: 36px;
--transition: all 0.25s cubic-bezier(0.2, 0, 0, 1);
}
/* ---------- RESET Y BASE ---------- */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
background-color: var(--bg);
color: var(--text);
font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
font-weight: 400;
line-height: 1.6;
letter-spacing: 0.01em;
background-image:
radial-gradient(900px 600px at 10% 0%, rgba(28, 34, 124, 0.05), transparent 60%),
radial-gradient(900px 600px at 95% 15%, rgba(28, 34, 124, 0.05), transparent 65%);
background-attachment: fixed;
}
/* Tipografía ultra legible */
h1, h2, h3, h4, h5, h6 {
font-weight: 650;
letter-spacing: -0.025em;
line-height: 1.2;
}
p {
color: var(--muted);
}
a {
text-decoration: none;
transition: var(--transition);
}
/* ---------- NAVBAR PRO ---------- */
.navbar {
background: rgba(255, 255, 255, 0.80);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border);
padding: 16px 0;
box-shadow: 0 2px 6px rgba(0,0,0,0.01);
}
.navbar-brand {
font-weight: 750;
font-size: 1.6rem;
letter-spacing: -0.03em;
color: var(--text) !important;
background: linear-gradient(145deg, var(--text), #2d3748);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.navbar .nav-link {
color: rgba(17, 24, 39, 0.78) !important;
font-weight: 590;
font-size: 1.02rem;
padding: 8px 16px !important;
border-radius: 100px;
transition: var(--transition);
}
.navbar .nav-link:hover {
color: var(--text) !important;
background: rgba(28, 34, 124, 0.06);
}
/* Botón WhatsApp en navbar */
.btn-accent {
background: linear-gradient(105deg, var(--accent), #1c227c);
border: none;
color: white;
font-weight: 650;
padding: 10px 24px;
border-radius: 100px;
box-shadow: 0 8px 18px rgba(28, 34, 124, 0.25);
transition: var(--transition);
letter-spacing: -0.01em;
}
.btn-accent:hover {
background: linear-gradient(105deg, #1c227c, #1c227c);
box-shadow: 0 12px 26px rgba(28, 34, 124, 0.36);
transform: translateY(-2px);
}
.btn-soft {
background: white;
border: 1px solid var(--border);
color: var(--text);
font-weight: 600;
padding: 10px 24px;
border-radius: 100px;
transition: var(--transition);
}
.btn-soft:hover {
background: rgba(28, 34, 124, 0.04);
border-color: rgba(28, 34, 124, 0.3);
transform: translateY(-2px);
box-shadow: var(--shadow-sm);
}
/* ---------- SECTIONS ---------- */
section {
padding: 100px 0;
}
.anchor-offset {
scroll-margin-top: 90px;
}
/* Eyebrow con ícono mejorado */
.eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 20px 8px 18px;
border-radius: 100px;
border: 1px solid rgba(28, 34, 124, 0.15);
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(4px);
color: var(--accentDark);
font-weight: 620;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.04em;
box-shadow: 0 2px 8px rgba(0,0,0,0.01);
}
.eyebrow:before {
content: "●";
font-size: 1.2rem;
color: var(--accent);
line-height: 0;
margin-right: 4px;
}
/* Títulos de sección */
.section-title {
font-size: 2.8rem;
font-weight: 700;
letter-spacing: -0.04em;
line-height: 1.1;
margin-top: 16px;
}
@media (max-width: 768px) {
.section-title {
font-size: 2.2rem;
}
}
.section-subtitle {
font-size: 1.2rem;
color: var(--muted);
max-width: 720px;
margin-left: auto;
margin-right: auto;
font-weight: 400;
}
/* ---------- HERO PREMIUM ---------- */
.hero {
padding-top: 140px;
padding-bottom: 80px;
}
.hero h1 {
font-weight: 750;
letter-spacing: -0.04em;
line-height: 1.1;
font-size: 3.2rem;
}
@media (max-width: 768px) {
.hero h1 {
font-size: 2.5rem;
}
}
.hero p.lead {
font-size: 1.2rem;
color: var(--muted);
}
.glass-card {
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: var(--radius-lg);
padding: 28px;
box-shadow: var(--shadow-md);
transition: var(--transition);
height: 100%;
}
.glass-card:hover {
box-shadow: var(--shadow-lg);
background: rgba(255, 255, 255, 0.95);
border-color: rgba(28, 34, 124, 0.2);
}
.icon-badge {
width: 48px;
height: 48px;
border-radius: 18px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(28, 34, 124, 0.1);
border: 1px solid rgba(28, 34, 124, 0.2);
color: var(--accent);
font-size: 1.3rem;
flex-shrink: 0;
}
.hero-card {
border: 1px solid rgba(255,255,255,0.6);
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(12px);
border-radius: var(--radius-xl);
padding: 20px;
box-shadow: var(--shadow-lg);
}
.hero-img {
width: 100%;
height: clamp(280px, 48vh, 480px);
object-fit: cover;
border-radius: 24px;
border: 1px solid rgba(255,255,255,0.5);
}
/* --- HERO IMG ORDER FIX (solo mobile) ---
En mobile: imagen debajo del párrafo y botones debajo de la imagen.
En desktop: se mantiene a la derecha. */
.hero-img-wrap--mobile{ display:none; }
.hero-img--mobile{ display:none; }
.hero-img--desktop{ display:block; }
@media (max-width: 991px){
.hero-img-wrap--mobile{ display:block; margin: 14px 0 18px; }
/* En mobile: mostrar la imagen completa (sin recorte) */
.hero-img--mobile{
display:block;
width:100%;
height:auto;
object-fit: contain;
border-radius: 24px;
border: 1px solid rgba(255,255,255,0.5);
}
.hero-img--desktop{ display:none; }
}
/* Badges de hero */
.badge-custom {
background: rgba(255,255,255,0.7);
backdrop-filter: blur(4px);
border: 1px solid rgba(28, 34, 124,0.2);
color: var(--text);
font-weight: 600;
padding: 8px 16px;
border-radius: 100px;
font-size: 0.8rem;
}
/* ---------- CARDS DE SERVICIOS Y OTROS (MEJORADA
/* ...cortado... */
/* Colores oficiales WhatsApp */
:root{
--wa-green:#25D366;
--wa-dark:#128C7E;
--wa-bg:#ffffff;
--wa-border:#e6e6e6;
}
.wa-float{
position:fixed;
right:18px;
bottom:18px;
z-index:9999;
font-family:inherit;
}
.wa-btn{
width:60px;
height:60px;
border-radius:50%;
border:none;
background:linear-gradient(135deg,var(--wa-green),var(--wa-dark));
color:#fff;
display:grid;
place-items:center;
cursor:pointer;
box-shadow:0 10px 30px rgba(37,211,102,.45);
transition:transform .3s, box-shadow .3s;
}
.wa-btn:hover{
transform:translateY(-3px) scale(1.05);
box-shadow:0 14px 36px rgba(37,211,102,.55);
}
.wa-card{
position:absolute;
right:0;
bottom:74px;
width:min(360px,92vw);
background:var(--wa-bg);
border-radius:18px;
border:1px solid var(--wa-border);
box-shadow:0 18px 60px rgba(0,0,0,.25);
overflow:hidden;
transform:translateY(10px);
opacity:0;
transition:.3s;
}
.wa-card[aria-modal="true"]{ transform:none; opacity:1; }
.wa-head{
display:flex;
align-items:center;
gap:12px;
padding:14px;
background:linear-gradient(135deg,var(--wa-dark),var(--wa-green));
color:#fff;
}
.wa-avatar{
width:40px;
height:40px;
background:#fff;
border-radius:10px;
display:grid;
place-items:center;
overflow:hidden;
}
.wa-avatar img{ display:block; max-width:100%; height:auto; }
.wa-title{ font-weight:800; letter-spacing:-.02em; }
.wa-status{ font-size:.85rem; opacity:.95; }
.wa-close{
margin-left:auto;
border:none;
background:transparent;
color:#fff;
font-size:24px;
cursor:pointer;
line-height:1;
}
.wa-body{
padding:14px;
max-height:40vh;
overflow:auto;
background:#f7f7f7;
display:flex;
flex-direction:column;
gap:8px;
}
.wa-bubble{
max-width:88%;
padding:10px 12px;
border-radius:14px;
font-size:.95rem;
box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.wa-bot{
background:#ffffff;
border:1px solid var(--wa-border);
align-self:flex-start;
}
.wa-user{
background:#DCF8C6; /* bubble verde WhatsApp */
border:1px solid rgba(18,140,126,.20);
align-self:flex-end;
}
.wa-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px;
border-top:1px solid var(--wa-border);
background:#ffffff;
}
.wa-compose textarea{
resize:none;
border-radius:12px;
padding:10px;
border:1px solid var(--wa-border);
font-family:inherit;
outline:none;
}
.wa-send{
background:linear-gradient(135deg,var(--wa-green),var(--wa-dark));
color:#fff;
border:none;
border-radius:12px;
padding:0 16px;
cursor:pointer;
}
.wa-send:hover{ filter:brightness(1.05); }
@media(max-width:480px){
.wa-card{ width:calc(100vw - 24px); }
}
vilcalzados.com.ar
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.csshttps://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600;700&display=swap/* ===== VARIABLES Y RESET ===== */
:root {
--accent: #7f1637;
--accent-light: rgba(127, 22, 55, 0.1);
--accent-dark: #6b1230;
--text: #1a1a1a;
--text-light: #666;
--text-lighter: #8a8a8a;
--border: #eaeaea;
--border-light: #f0f0f0;
--soft: #fafafa;
--white: #ffffff;
--shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
--shadow-hover: 0 20px 60px rgba(0, 0, 0, 0.12);
--radius: 20px;
--radius-sm: 12px;
--transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
scroll-padding-top: 100px;
}
html, body { width: 100%; overflow-x: hidden; }
body {
background: var(--white);
color: var(--text);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
line-height: 1.6;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Playfair Display', serif;
font-weight: 700;
line-height: 1.2;
}
/* ===== UTILITIES ===== */
.section {
padding: 100px 0;
position: relative;
}
.section-title {
font-size: 3.2rem;
letter-spacing: -0.03em;
margin-bottom: 1.5rem;
position: relative;
}
.section-title::after {
content: '';
position: absolute;
bottom: -12px;
left: 0;
width: 60px;
height: 4px;
background: linear-gradient(90deg, var(--accent), var(--accent-dark));
border-radius: 2px;
}
.section-title.center::after {
left: 50%;
transform: translateX(-50%);
}
.section-subtitle {
color: var(--text-light);
font-size: 1.125rem;
max-width: 600px;
margin-bottom: 3rem;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
font-size: 0.75rem;
color: var(--accent);
background: var(--accent-light);
border: 1px solid rgba(127, 22, 55, 0.2);
padding: 0.5rem 1rem;
border-radius: 100px;
margin-bottom: 1.5rem;
}
/* ===== NAVBAR PREMIUM ===== */
.navbar {
background: rgba(255, 255, 255, 0.95) !important;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(234, 234, 234, 0.8);
padding: 1.25rem 0;
transition: var(--transition);
}
.navbar.scrolled {
padding: 0.75rem 0;
box-shadow: 0 5px 30px rgba(0, 0, 0, 0.08);
}
.brand-logo {
display: flex;
align-items: center;
gap: 0.75rem;
text-decoration: none;
}
.brand-dot {
width: 32px;
height: 32px;
border-radius: 50%;
background: linear-gradient(135deg, var(--accent), var(--accent-dark));
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
}
.brand-dot::after {
content: '';
position: absolute;
width: 100%;
height: 100%;
background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.2) 50%, transparent 70%);
animation: shine 3s infinite linear;
}
@keyframes shine {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
.brand-name {
font-family: 'Playfair Display', serif;
font-weight: 700;
font-size: 1.5rem;
color: var(--text);
letter-spacing: -0.02em;
}
.nav-link {
font-weight: 600;
color: var(--text) !important;
padding: 0.5rem 1rem !important;
margin: 0 0.25rem;
border-radius: var(--radius-sm);
transition: var(--transition);
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
width: 0;
height: 2px;
background: var(--accent);
transition: var(--transition);
transform: translateX(-50%);
}
.nav-link:hover {
color: var(--accent) !important;
background: var(--accent-light);
}
.nav-link:hover::after {
width: 80%;
}
.nav-link.active {
color: var(--accent) !important;
background: var(--accent-light);
}
.nav-link.active::after {
width: 80%;
}
.btn-accent {
background: linear-gradient(135deg, var(--accent), var(--accent-dark));
border: none;
color: var(--white);
font-weight: 600;
padding: 0.875rem 1.75rem;
border-radius: var(--radius-sm);
transition: var(--transition);
position: relative;
overflow: hidden;
z-index: 1;
}
.btn-accent::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(135deg, var(--accent-dark), var(--accent));
transition: var(--transition);
z-index: -1;
}
.btn-accent:hover {
transform: translateY(-2px);
box-shadow: 0 15px 30px rgba(127, 22, 55, 0.2);
}
.btn-accent:hover::before {
left: 0;
}
/* ===== HERO SECTION PREMIUM ===== */
.hero {
padding: 140px 0 100px;
background: linear-gradient(135deg, #fff 0%, var(--soft) 100%);
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: -50%;
right: -20%;
width: 70%;
height: 200%;
background: linear-gradient(135deg, var(--accent-light) 0%, transparent 70%);
border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
animation: morph 20s infinite linear;
}
@keyframes morph {
0%, 100% { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; }
25% { border-radius: 70% 30% 30% 70% / 70% 70% 30% 30%; }
50% { border-radius: 30% 70% 70% 30% / 70% 30% 30% 70%; }
75% { border-radius: 70% 30% 30% 70% / 30% 70% 70% 30%; }
}
.hero h1 {
font-size: 4rem;
letter-spacing: -0.03em;
margin-bottom: 1.5rem;
position: relative;
z-index: 1;
}
.hero p {
color: var(--text-light);
font-size: 1.25rem;
margin-bottom: 2rem;
max-width: 600px;
position: relative;
z-index: 1;
}
.hero-highlight {
color: var(--accent);
font-weight: 700;
position: relative;
}
.hero-highlight::after {
content: '';
position: absolute;
bottom: 2px;
left: 0;
width: 100%;
height: 6px;
background: var(--accent-light);
z-index: -1;
}
.hero-bullets {
margin: 2rem 0;
padding: 0;
list-style: none;
position: relative;
z-index: 1;
}
.hero-bullets li {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 1rem;
padding: 0.75rem 1rem;
background: var(--white);
border-radius: var(--radius-sm);
box-shadow: var(--shadow);
transition: var(--transition);
}
.hero-bullets li:hover {
transform: translateX(10px);
box-shadow: var(--shadow-hover);
}
.hero-bullets i {
color: var(--accent);
font-size: 1.25rem;
background: var(--accent-light);
padding: 0.5rem;
border-radius: 10px;
}
.hero-image-container {
position: relative;
z-index: 1;
}
.hero-card {
/* ...cortado... */
.gal-gallery .carousel{max-width:980px;margin-inline:auto;position:relative}
.gal-frame{
height: clamp(220px, 48vh, 440px);
background:#fff;border-radius:16px;overflow:hidden;
box-shadow:0 12px 28px rgba(0,0,0,.12);
display:flex;align-items:center;justify-content:center;padding:8px
}
.gal-img{
width:auto !important;max-width:100%;
height:auto !important;max-height:100%;
object-fit:contain !important;object-position:center;display:block;cursor:zoom-in
}
/* Controles circulares con más contraste */
.gal-gallery .carousel-control-prev,
.gal-gallery .carousel-control-next{
z-index:20;width:50px;height:50px;top:50%;transform:translateY(-50%);
opacity:1;background:rgba(0,0,0,.55);border-radius:50%;margin:0 12px
}
.gal-gallery .carousel-control-prev{left:0}
.gal-gallery .carousel-control-next{right:0}
.gal-gallery .gal-ctrl-icon{width:2.6rem;height:2.6rem;background-size:60% 60%}
/* Indicadores: se sitúan fuera; agregamos espacio inferior para que no se corten */
.gal-gallery .carousel-indicators{z-index:10;bottom:-50px}
.gal-gallery .carousel-indicators button{
width:10px;height:10px;border-radius:50%;
background:rgba(0,0,0,.5);border:none
}
.gal-gallery .carousel-indicators button.active{background:#000}
.gal-gallery{padding-bottom:56px} /* espacio para indicadores */
/* Modal */
#galLightbox .modal-content{background:#000}
#galLightboxImg{max-height:86vh;width:100%;height:auto;object-fit:contain;background:#000}
.gal-lightbox-nav{
position:absolute;top:50%;transform:translateY(-50%);
border:0;width:44px;height:44px;border-radius:999px;
background:rgba(255,255,255,.18);color:#fff;font-size:30px;line-height:44px;text-align:center;z-index:5;cursor:pointer
}
.gal-lightbox-nav:hover{background:rgba(255,255,255,.28)}
.gal-lightbox-nav.gal-prev{left:10px}
.gal-lightbox-nav.gal-next{right:10px}
/* Pequeños ajustes móviles */
@media (max-width: 575.98px){
.gal-frame{height: clamp(200px, 40vh, 360px)}
}
:root{
--vc-wa:#25D366; /* WhatsApp oficial */
--vc-wa-dark:#128C7E; /* WhatsApp dark */
--vc-fb:#1877F2; /* Facebook oficial */
--vc-fb-dark:#0f5dc7;
--vc-dark:#0b0f18;
--vc-darker:#0a1324;
--vc-text:#ffffff;
--vc-muted:rgba(255,255,255,.72);
}
.vc-float{
position:fixed;
right:18px;
bottom:18px;
z-index:9999;
font-family:inherit;
}
.vc-stack{
display:flex;
flex-direction:column;
align-items:flex-end;
gap:10px;
}
/* Facebook */
.vc-fb-btn{
background:linear-gradient(135deg,var(--vc-fb),var(--vc-fb-dark));
color:#fff;
width:52px;
height:52px;
border-radius:50%;
display:grid;
place-items:center;
box-shadow:0 10px 30px rgba(0,0,0,.25);
text-decoration:none;
border:0;
cursor:pointer;
transition:transform .25s ease, box-shadow .25s ease;
}
.vc-fb-btn:hover{
transform:translateY(-2px) scale(1.03);
box-shadow:0 14px 36px rgba(0,0,0,.35);
}
/* WhatsApp */
.vc-wa-btn{
background:linear-gradient(135deg,var(--vc-wa),var(--vc-wa-dark));
color:#fff;
border:0;
width:60px;
height:60px;
border-radius:50%;
display:grid;
place-items:center;
box-shadow:0 10px 30px rgba(0,0,0,.25);
cursor:pointer;
transition:transform .25s ease, box-shadow .25s ease;
position:relative;
overflow:hidden;
}
.vc-wa-btn::after{
content:"";
position:absolute; inset:0;
background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.18), rgba(255,255,255,0) 70%);
opacity:0; transition:opacity .25s ease;
}
.vc-wa-btn:hover{
transform:translateY(-3px) scale(1.05);
box-shadow:0 14px 36px rgba(0,0,0,.35);
}
.vc-wa-btn:hover::after{ opacity:1; }
/* Card */
.vc-card{
position:absolute;
right:0;
bottom:74px;
width:min(360px,92vw);
background:var(--vc-dark);
color:var(--vc-text);
border-radius:18px;
overflow:hidden;
box-shadow:0 18px 60px rgba(0,0,0,.5);
border:1px solid rgba(255,255,255,.08);
transform:translateY(10px);
opacity:0;
transition:transform .25s ease, opacity .25s ease;
z-index:1;
}
.vc-card[aria-modal="true"]{
transform:translateY(0);
opacity:1;
}
.vc-head{
display:flex; align-items:center; gap:12px;
padding:14px;
background:linear-gradient(180deg,#0d162c,var(--vc-darker));
border-bottom:1px solid rgba(255,255,255,.06);
}
.vc-avatar{
width:40px; height:40px; border-radius:10px;
background:#0e1a33;
display:grid; place-items:center;
border:1px solid rgba(255,255,255,.10);
}
.vc-title{ font-weight:800; font-size:1.05rem; }
.vc-status{
font-size:.85rem; color:var(--vc-muted);
display:flex; align-items:center; gap:6px;
}
.vc-status::before{
content:""; width:8px; height:8px; border-radius:50%; background:var(--vc-wa);
}
.vc-close{
margin-left:auto;
background:transparent;
color:#fff;
border:0;
font-size:24px;
cursor:pointer;
opacity:.75;
width:32px; height:32px;
border-radius:50%;
display:flex; align-items:center; justify-content:center;
transition:.2s;
}
.vc-close:hover{ opacity:1; background:rgba(255,255,255,.1); }
.vc-body{
padding:12px 14px;
max-height:40vh;
overflow:auto;
display:flex;
flex-direction:column;
gap:8px;
}
.vc-bubble{
max-width:88%;
padding:10px 12px;
border-radius:14px;
line-height:1.35;
box-shadow:0 4px 14px rgba(0,0,0,.25);
animation:vcFadeIn .2s ease;
}
@keyframes vcFadeIn{ from{opacity:0; transform:translateY(5px)} to{opacity:1; transform:none} }
.vc-bot{
background:#0c1428;
border:1px solid rgba(255,255,255,.06);
align-self:flex-start;
border-bottom-left-radius:4px;
}
.vc-user{
background:var(--vc-wa-dark);
align-self:flex-end;
border-bottom-right-radius:4px;
}
.vc-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px;
border-top:1px solid rgba(255,255,255,.08);
background:var(--vc-dark);
}
.vc-compose textarea{
resize:none;
border-radius:12px;
padding:10px 12px;
border:1px solid rgba(255,255,255,.12);
background:var(--vc-darker);
color:var(--vc-text);
outline:none;
min-height:44px;
font-family:inherit;
transition:.2s;
}
.vc-compose textarea:focus{
border-color:var(--vc-wa);
box-shadow:0 0 0 2px rgba(37,211,102,.15);
}
.vc-send{
background:var(--vc-wa);
color:#0b1220;
border:0;
border-radius:12px;
padding:0 16px;
font-weight:800;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
transition:.2s;
}
.vc-send:hover{
background:var(--vc-wa-dark);
transform:scale(1.05);
}
@media (max-width:480px){
.vc-float{ right:12px; bottom:12px; }
.vc-card{ width:min(360px, calc(100vw - 24px)); max-width:calc(100vw - 24px); box-sizing:border-box; }
}
ggs.com.ar
https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.csshttps://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.csshttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css:root {
--ggs-blue: #0b3a72;
--ggs-sky: #2aa7ff;
--ggs-ice: #e9f6ff;
--ggs-text: #0b1526;
--ggs-muted: #5b6b80;
--ggs-card: #ffffff;
--ggs-border: rgba(12, 41, 77, 0.12);
--ggs-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
--ggs-gradient: linear-gradient(135deg, var(--ggs-blue), var(--ggs-sky));
--ggs-glow: 0 0 30px rgba(42, 167, 255, 0.25);
--ggs-radius: 20px;
--ggs-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
overflow-x: hidden;
}
body {
color: var(--ggs-text);
background: linear-gradient(180deg, #ffffff 0%, var(--ggs-ice) 100%);
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
overflow-x: hidden;
line-height: 1.6;
}
/* NUEVO: Animaciones sutiles */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes float {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
@keyframes gradientShift {
0%, 100% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
}
.animate-on-scroll {
opacity: 0;
transform: translateY(30px);
transition: var(--ggs-transition);
}
.animate-on-scroll.visible {
opacity: 1;
transform: translateY(0);
}
/* NAVBAR PREMIUM */
.navbar {
backdrop-filter: blur(20px);
background: rgba(255, 255, 255, 0.95) !important;
border-bottom: 1px solid var(--ggs-border);
padding: 1rem 0;
transition: var(--ggs-transition);
box-shadow: 0 4px 30px rgba(11, 58, 114, 0.08);
}
.navbar.scrolled {
padding: 0.7rem 0;
background: rgba(255, 255, 255, 0.98) !important;
box-shadow: 0 8px 32px rgba(11, 58, 114, 0.12);
}
.brand-badge {
width: 45px;
height: 45px;
border-radius: 14px;
background: var(--ggs-gradient);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-weight: 900;
letter-spacing: 0.5px;
box-shadow: 0 12px 28px rgba(10, 60, 120, 0.25);
transition: var(--ggs-transition);
position: relative;
overflow: hidden;
}
.brand-badge::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
transition: 0.5s;
}
.brand-badge:hover::after {
left: 100%;
}
.navbar-brand {
display: flex;
align-items: center;
gap: 12px;
}
.brand-text {
font-weight: 900;
color: var(--ggs-blue);
letter-spacing: -0.02em;
font-size: 1.4rem;
background: linear-gradient(135deg, var(--ggs-blue), var(--ggs-sky));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.navbar .nav-link {
color: var(--ggs-text);
font-weight: 600;
padding: 0.5rem 1rem !important;
margin: 0 0.25rem;
border-radius: 12px;
transition: var(--ggs-transition);
position: relative;
}
.navbar .nav-link::before {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 3px;
background: var(--ggs-gradient);
border-radius: 3px;
transition: var(--ggs-transition);
}
.navbar .nav-link:hover::before,
.navbar .nav-link.active::before {
width: 70%;
}
.navbar .nav-link:hover {
color: var(--ggs-blue);
background: rgba(11, 58, 114, 0.04);
}
.navbar .nav-link.active {
color: var(--ggs-blue);
font-weight: 700;
}
.btn-whatsapp {
background: var(--ggs-gradient);
border: 0;
color: #fff;
font-weight: 700;
box-shadow: var(--ggs-glow);
padding: 0.75rem 1.5rem;
border-radius: 14px;
transition: var(--ggs-transition);
position: relative;
overflow: hidden;
z-index: 1;
}
.btn-whatsapp::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: 0.5s;
z-index: -1;
}
.btn-whatsapp:hover::before {
left: 100%;
}
.btn-whatsapp:hover {
transform: translateY(-3px);
box-shadow: 0 20px 40px rgba(42, 167, 255, 0.3);
}
.btn-outline-ggs {
border: 2px solid rgba(11, 58, 114, 0.2);
color: var(--ggs-blue);
font-weight: 700;
padding: 0.75rem 1.5rem;
border-radius: 14px;
transition: var(--ggs-transition);
background: transparent;
}
.btn-outline-ggs:hover {
background: rgba(11, 58, 114, 0.06);
color: var(--ggs-blue);
border-color: var(--ggs-blue);
transform: translateY(-3px);
box-shadow: 0 10px 25px rgba(11, 58, 114, 0.1);
}
/* Sections */
.section {
padding: 100px 0;
position: relative;
}
@media (max-width: 767.98px) {
.section {
padding: 70px 0;
}
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1.2rem;
border-radius: 100px;
font-weight: 800;
font-size: 0.9rem;
color: var(--ggs-blue);
background: rgba(42, 167, 255, 0.12);
border: 1px solid rgba(42, 167, 255, 0.25);
letter-spacing: 0.5px;
text-transform: uppercase;
margin-bottom: 1.5rem;
animation: fadeInUp 0.6s ease-out;
}
.section-title {
font-weight: 900;
letter-spacing: -0.02em;
color: var(--ggs-blue);
font-size: clamp(2rem, 5vw, 3rem);
line-height: 1.1;
margin-bottom: 1.5rem;
position: relative;
display: inline-block;
}
.section-title::after {
content: '';
position: absolute;
bottom: -10px;
left: 0;
width: 80px;
height: 5px;
background: var(--ggs-gradient);
border-radius: 3px;
}
.section-subtitle {
color: var(--ggs-muted);
max-width: 62ch;
margin-inline: auto;
font-size: 1.1rem;
line-height: 1.7;
}
/* HERO PREMIUM */
.hero {
padding: 140px 0 100px;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #ffffff 0%, var(--ggs-ice) 100%);
}
.hero::before,
.hero::after {
content: '';
position: absolute;
border-radius: 50%;
filter: blur(60px);
opacity: 0.5;
z-index: 0;
pointer-events: none;
}
.hero::before {
width: 500px;
height: 500px;
background: radial-gradient(circle, rgba(42, 167, 255, 0.4) 0%, transparent 70%);
top: -200px;
right: -150px;
animation: float 6s ease-in-out infinite;
}
.hero::after {
width: 400px;
height: 400px;
background: radial-gradient(circle, rgba(11, 58, 114, 0.3) 0%, transparent 70%);
bottom: -150px;
left: -100px;
animation: float 8s ease-in-out infinite reverse;
}
.hero-content {
position: relative;
z-index: 1;
}
/* ...cortado... */
/* ===== Styles: Brand Ticker (auto-only) ===== */
.brand-section{ padding: 84px 0; }
.brand-ticker-wrap{
border-radius: 18px;
border: 1px solid rgba(11,58,114,.12);
background: rgba(255,255,255,.92);
box-shadow: 0 14px 34px rgba(0,0,0,.06);
padding: 14px;
overflow: hidden;
}
.brand-ticker{
overflow: hidden;
width: 100%;
/* desvanecido en bordes */
mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.brand-track{
display: flex;
align-items: center;
gap: 18px;
width: max-content;
will-change: transform;
animation: brand-scroll var(--brand-speed, 30s) linear infinite;
}
/* Tarjetita prolija por logo */
.brand-item{
flex: 0 0 auto;
width: 160px;
height: 86px;
border-radius: 14px;
border: 1px solid rgba(11,58,114,.10);
background: #fff;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
}
.brand-item img{
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
object-fit: contain;
display:block;
opacity: .95;
}
/* Responsive */
@media (max-width: 991.98px){
.brand-item{ width: 140px; height: 80px; }
}
@media (max-width: 575.98px){
.brand-section{ padding: 64px 0; }
.brand-item{ width: 120px; height: 72px; }
.brand-ticker-wrap{ padding: 12px; }
}
/* Animación base (distancia ajustada por JS) */
@keyframes brand-scroll{
from{ transform: translateX(0); }
to{ transform: translateX(calc(-1 * var(--brand-distance, 1200px))); }
}
.gal-gallery .carousel{max-width:980px;margin-inline:auto;position:relative}
.gal-frame{
height: clamp(220px, 48vh, 440px);
background:#fff;border-radius:16px;overflow:hidden;
box-shadow:0 12px 28px rgba(0,0,0,.12);
display:flex;align-items:center;justify-content:center;padding:8px
}
.gal-img{
width:auto !important;max-width:100%;
height:auto !important;max-height:100%;
object-fit:contain !important;object-position:center;display:block;cursor:zoom-in
}
/* Controles circulares con más contraste */
.gal-gallery .carousel-control-prev,
.gal-gallery .carousel-control-next{
z-index:20;width:50px;height:50px;top:50%;transform:translateY(-50%);
opacity:1;background:rgba(0,0,0,.55);border-radius:50%;margin:0 12px
}
.gal-gallery .carousel-control-prev{left:0}
.gal-gallery .carousel-control-next{right:0}
.gal-gallery .gal-ctrl-icon{width:2.6rem;height:2.6rem;background-size:60% 60%}
/* Indicadores: se sitúan fuera; agregamos espacio inferior para que no se corten */
.gal-gallery .carousel-indicators{z-index:10;bottom:-50px}
.gal-gallery .carousel-indicators button{
width:10px;height:10px;border-radius:50%;
background:rgba(0,0,0,.5);border:none
}
.gal-gallery .carousel-indicators button.active{background:#000}
.gal-gallery{padding-bottom:56px} /* espacio para indicadores */
/* Modal */
#galLightbox .modal-content{background:#000}
#galLightboxImg{max-height:86vh;width:100%;height:auto;object-fit:contain;background:#000}
.gal-lightbox-nav{
position:absolute;top:50%;transform:translateY(-50%);
border:0;width:44px;height:44px;border-radius:999px;
background:rgba(255,255,255,.18);color:#fff;font-size:30px;line-height:44px;text-align:center;z-index:5;cursor:pointer
}
.gal-lightbox-nav:hover{background:rgba(255,255,255,.28)}
.gal-lightbox-nav.gal-prev{left:10px}
.gal-lightbox-nav.gal-next{right:10px}
/* Pequeños ajustes móviles */
@media (max-width: 575.98px){
.gal-frame{height: clamp(200px, 40vh, 360px)}
}
/* ===== Styles: Brand Ticker (auto-only) ===== */
.brand-section{ padding: 84px 0; }
.brand-ticker-wrap{
border-radius: 18px;
border: 1px solid rgba(11,58,114,.12);
background: rgba(255,255,255,.92);
box-shadow: 0 14px 34px rgba(0,0,0,.06);
padding: 14px;
overflow: hidden;
}
.brand-ticker{
overflow: hidden;
width: 100%;
/* desvanecido en bordes */
mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.brand-track{
display: flex;
align-items: center;
gap: 18px;
width: max-content;
will-change: transform;
animation: brand-scroll var(--brand-speed, 30s) linear infinite;
}
/* Tarjetita prolija por logo */
.brand-item{
flex: 0 0 auto;
width: 160px;
height: 86px;
border-radius: 14px;
border: 1px solid rgba(11,58,114,.10);
background: #fff;
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
}
.brand-item img{
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
object-fit: contain;
display:block;
opacity: .95;
}
/* Responsive */
@media (max-width: 991.98px){
.brand-item{ width: 140px; height: 80px; }
}
@media (max-width: 575.98px){
.brand-section{ padding: 64px 0; }
.brand-item{ width: 120px; height: 72px; }
.brand-ticker-wrap{ padding: 12px; }
}
/* Animación base (distancia ajustada por JS) */
@keyframes brand-scroll{
from{ transform: translateX(0); }
to{ transform: translateX(calc(-1 * var(--brand-distance, 1200px))); }
}
:root{
/* WhatsApp oficiales */
--wa:#25D366;
--wa-dark:#1EBE57;
--wa-darker:#128C7E;
--light-bg:#ffffff;
--light-bg-soft:#f6f8f7;
--light-border:#dde4df;
--dark-text:#1c1f1d;
--muted-text:#6c756f;
}
.ig-float{
position:fixed; right:18px; bottom:92px;
z-index:9998;
width:54px; height:54px; border-radius:50%;
display:grid; place-items:center; color:#fff; text-decoration:none;
background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
box-shadow:0 10px 30px rgba(0,0,0,.25);
transition:transform .25s, box-shadow .25s;
}
.ig-float:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 14px 36px rgba(0,0,0,.35); }
.wa-float{ position:fixed; right:18px; bottom:18px; z-index:9999; font-family:inherit; }
/* BOTÓN: el click agarra toda el área (incl. SVG) */
.wa-btn{
background:var(--wa);
color:#fff;
border:0;
width:60px; height:60px; border-radius:50%;
display:grid; place-items:center;
box-shadow:0 8px 24px rgba(0,0,0,.18);
cursor:pointer; transition:transform .25s, box-shadow .25s, background .25s;
position:relative;
z-index:9999;
padding:0;
}
.wa-btn svg{ pointer-events:none; } /* IMPORTANTE: el click lo toma el botón, no el SVG */
.wa-btn:hover{ background:var(--wa-dark); transform:translateY(-3px) scale(1.05); box-shadow:0 14px 36px rgba(0,0,0,.28); }
.wa-card{
position:absolute; right:0; bottom:74px;
width:min(360px,92vw);
background:var(--light-bg);
color:var(--dark-text);
border-radius:18px;
overflow:hidden;
box-shadow:0 18px 60px rgba(0,0,0,.25);
border:1px solid var(--light-border);
transform:translateY(10px);
opacity:0;
transition:transform .25s, opacity .25s;
z-index:10000;
}
.wa-card[aria-modal="true"]{ transform:translateY(0); opacity:1; }
.wa-head{
display:flex; align-items:center; gap:12px;
padding:14px 16px;
background:linear-gradient(135deg, #ffffff, #e9fff2);
border-bottom:1px solid var(--light-border);
}
.wa-avatar{
width:40px; height:40px; border-radius:10px;
background:#e9fff2;
display:grid; place-items:center;
border:1px solid #c9f3da;
overflow:hidden;
}
.wa-title{ font-weight:800; font-size:1.02rem; }
.wa-status{
font-size:.85rem; color:var(--muted-text);
display:flex; align-items:center; gap:6px;
}
.wa-status::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--wa); }
.wa-close{
margin-left:auto;
background:transparent;
color:var(--muted-text);
border:0;
font-size:24px;
cursor:pointer;
opacity:.7;
width:32px; height:32px;
border-radius:50%;
display:flex; align-items:center; justify-content:center;
transition:.2s;
}
.wa-close:hover{ opacity:1; background:rgba(0,0,0,.04); }
.wa-body{
padding:12px 14px;
max-height:40vh;
overflow:auto;
background:var(--light-bg-soft);
display:flex; flex-direction:column; gap:8px;
}
.wa-bubble{
max-width:88%;
padding:9px 11px;
border-radius:14px;
line-height:1.35;
box-shadow:0 3px 10px rgba(0,0,0,.06);
font-size:0.9rem;
}
.wa-bot{
background:#ffffff;
border:1px solid var(--light-border);
align-self:flex-start;
border-bottom-left-radius:4px;
}
.wa-user{
background:var(--wa);
color:#fff;
align-self:flex-end;
border-bottom-right-radius:4px;
}
.wa-compose{
display:grid;
grid-template-columns:1fr auto;
gap:8px;
padding:10px 12px;
background:#ffffff;
border-top:1px solid var(--light-border);
}
.wa-compose textarea{
resize:none;
border-radius:12px;
padding:10px 12px;
border:1px solid var(--light-border);
background:#f9fbfa;
color:var(--dark-text);
outline:none;
min-height:44px;
font-family:inherit;
font-size:0.9rem;
transition:.2s;
}
.wa-compose textarea:focus{
border-color:var(--wa);
box-shadow:0 0 0 2px rgba(37,211,102,.18);
background:#ffffff;
}
.wa-send{
background:var(--wa);
color:#ffffff;
border:0;
border-radius:12px;
padding:0 16px;
font-weight:700;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
transition:.2s;
}
.wa-send:hover{ background:var(--wa-dark); transform:scale(1.04); }
@media (max-width:480px){
.ig-float{ right:12px; bottom:86px; width:52px; height:52px; }
.wa-float{ right:12px; bottom:12px; }
.wa-card{ width:calc(100vw - 24px); right:0; }
}