/* Generado por el motor de plantillas — Style: Optimus (optimus) */
:root{
  --c-bg:#f4f6fb;--c-surface:#ffffff;--c-surface-2:#ffffff;--c-border:#dddfe4;
  --c-text:#111111;--c-muted:#77787a;
  --c-primary:#4f46e5;--c-primary-h:#463eca;--c-accent:#4f46e5;
  --c-success:#16a34a;--c-danger:#e11d48;
  --radius:12px;--radius-sm:6px;--pill:999px;
  --grad:linear-gradient(135deg,#4f46e5 0%,#463eca 100%);
  --grad-hot:linear-gradient(135deg,#4f46e5 0%,#433bbb 100%);
  --shadow:0 6px 20px rgba(0,0,0,.08);--shadow-lg:0 24px 50px -18px rgba(0,0,0,.22);--glow:0 14px 34px -10px rgba(79,70,229,0.50);
  --font-head:'DM Serif Display',system-ui,sans-serif;--font-body:'DM Sans',system-ui,sans-serif;--font:var(--font-body);
}


*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);background:var(--c-bg);color:var(--c-text);line-height:1.6;display:flex;flex-direction:column;min-height:100vh;-webkit-font-smoothing:antialiased}
h1,h2{font-family:var(--font-head);margin:0}
a{color:var(--c-primary)}
.container{max-width:1520px;margin:0 auto;padding:0 12px}
.section{padding:48px 0}
.sec__t{font-size:1.6rem;text-align:center;margin:0 0 28px}
.btn{display:inline-block;padding:12px 26px;border-radius:12px;background:var(--c-primary,#e1762e);color:#fff;font-weight:700;font-family:var(--font-body);border:none;cursor:pointer;text-decoration:none;font-size:.95rem;transition:opacity .15s}
.btn:hover{opacity:.88;color:#fff}
.tb-contact-form{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.tb-contact-form input,.tb-contact-form textarea{width:100%;padding:11px 14px;border:1px solid var(--c-border,#e2e8f0);border-radius:12px;font:inherit;color:inherit;background:var(--c-surface,#fff)}
.tb-contact-form textarea{resize:vertical}
.tb-contact-feedback{font-size:.9rem;margin:0}
.tb-contact-ok{color:#16a34a}
.tb-contact-error{color:#e11d48}
/* ── Motor v2: keyframes ── */
@keyframes fx { from { opacity: 0; transform: translateY(var(--fx-y, 18px)); } to { opacity: 1; transform: none; } }
@keyframes kb { from { transform: scale(1); } to { transform: scale(1.16); } }
@keyframes sl { 0%,27% { opacity: 1; } 33%,94% { opacity: 0; } 100% { opacity: 1; } }
@keyframes grad { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes floaty { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-18px) rotate(2deg); } }
.fx { opacity: 0; animation: fx var(--fx-dur, .8s) var(--fx-ease, ease) forwards; }
.fx.d1 { animation-delay: .18s; } .fx.d2 { animation-delay: .36s; }
.split .word { display: inline-block; animation: fx .6s var(--fx-ease, ease) both; }

/* ── Hero base + variantes ── */
.hero { position: relative; min-height: 92vh; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; }
.hero__in { position: relative; z-index: 3; padding: 2rem; max-width: 960px; }
.hero h1 { font-size: clamp(2.6rem, 7vw, 5.2rem); line-height: 1.04; margin: 0 0 .6rem; }
.hero p { font-size: 1.15rem; margin: 0 0 1.4rem; }
.hero .btn { display: inline-block; background: var(--c-primary); color: #fff; text-decoration: none; padding: .8rem 1.8rem; border-radius: var(--pill, 999px); font-weight: 700; transition: transform .2s, filter .2s; }
.hero .btn:hover { filter: brightness(1.08); }
.hero__ov { position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.68)); }
.hero__ov--soft { background: rgba(0,0,0,.32); }
.hero__grad { position: absolute; inset: 0; z-index: 1; background: linear-gradient(120deg, var(--c-primary), var(--c-surface), var(--c-bg)); background-size: 220% 220%; animation: grad 14s ease infinite; opacity: .9; }
.hero--kb, .hero--slider, .hero--particles { color: #fff; }
.hero--kb .hero__bg { position: absolute; inset: 0; z-index: 1; background-size: cover; background-position: center; animation: kb 20s ease-in-out infinite alternate; }
.hero--slider .hero__slides, .hero--slider .hero__slide { position: absolute; inset: 0; z-index: 1; }
.hero--slider .hero__slide { background-size: cover; background-position: center; opacity: 0; animation: sl 15s infinite, kb 20s ease-in-out infinite alternate; }
.hero--slider .s1 { animation-delay: 0s; } .hero--slider .s2 { animation-delay: -5s; } .hero--slider .s3 { animation-delay: -10s; }
.hero--grad .hero__ov { display: none; }
.hero--floating .hero__float { position: absolute; inset: 0; z-index: 1; }
.hero--floating .hero__fimg { position: absolute; width: clamp(120px, 17vw, 250px); height: clamp(160px, 23vw, 330px); background-size: cover; background-position: center; border-radius: var(--radius); box-shadow: 0 24px 60px rgba(0,0,0,.35); animation: floaty 6s ease-in-out infinite; }
.hero--floating .f1 { top: 12%; left: 6%; } .hero--floating .f2 { top: 16%; right: 8%; animation-delay: -2s; } .hero--floating .f3 { bottom: 10%; left: 22%; animation-delay: -4s; }
.hero--editorial { min-height: auto; display: block; text-align: left; padding: 6rem 1.5rem 4rem; }
.hero--editorial .hero__ed { max-width: 1120px; margin: 0 auto; display: flex; gap: 2.5rem; align-items: center; flex-wrap: wrap; }
.hero--editorial .hero__ed-txt { flex: 1 1 380px; }
.hero--editorial .hero__rule { border: 0; border-top: 2px solid var(--c-primary); width: 64px; margin: 1.2rem 0 0; }
.hero--editorial .hero__ed-img { flex: 1 1 380px; min-height: 50vh; background-size: cover; background-position: center; border-radius: var(--radius); }
.hero--split { text-align: left; display: flex; min-height: 80vh; }
.hero--split .hero__col { flex: 1 1 50%; }
.hero--split .hero__col--txt { display: flex; flex-direction: column; justify-content: center; padding: 3rem clamp(1.5rem, 5vw, 5rem); z-index: 3; }
.hero--split .hero__col--img { background-size: cover; background-position: center; min-height: 56vh; }
.hero--bigtype { min-height: 70vh; }
.hero--bigtype .hero__in--big { max-width: 1120px; }
.hero--bigtype h1 { font-size: clamp(3rem, 12vw, 9rem); line-height: .94; }
.hero--particles { background: var(--c-bg); }
.hero__particles { position: absolute; inset: 0; z-index: 1; }
@media (max-width: 720px) { .hero--split { flex-direction: column; } .hero--editorial .hero__ed { flex-direction: column; } }

/* ── Marquee ── */
.marquee { overflow: hidden; white-space: nowrap; background: var(--c-primary); color: #fff; padding: .6rem 0; }
.marquee__t { display: inline-block; font-weight: 800; letter-spacing: .1em; animation: mq 22s linear infinite; }

/* ── Secciones ── */
.sec__t { font-family: var(--font-head); font-size: 2rem; text-align: center; margin: 0 auto 1.6rem; }
.about { max-width: 760px; margin: 0 auto; padding: 4.5rem 1.5rem; text-align: center; }
.about__body { color: var(--c-muted); font-size: 1.12rem; line-height: 1.7; }
.sec--dark { position: relative; overflow: hidden; color: #fff; min-height: 56vh; display: flex; align-items: center; padding: 5rem 1.5rem; }
.sec--dark .sec-in { position: relative; z-index: 2; width: 100%; max-width: 900px; margin: 0 auto; text-align: center; }
.sec--dark .about__body, .sec--dark p { color: rgba(255,255,255,.87); }
.sec-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; }
.sec-bg--img { animation: kb 24s ease-in-out infinite alternate; }
.sec-bg--grad { background: linear-gradient(120deg, var(--c-primary), var(--c-bg)); background-size: 220% 220%; animation: grad 16s ease infinite; }
.sec-ov { position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.6); }
.sec-ov--soft { background: rgba(0,0,0,.35); }
.gal-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.gal { display: block; height: 200px; background-size: cover; background-position: center; border-radius: var(--radius); cursor: zoom-in; transition: transform .25s; }
.gal:hover { transform: scale(1.03); }
.tb-cta { position: relative; padding: 4.5rem 1.5rem; text-align: center; }
.tb-cta .cta-inner { position: relative; z-index: 2; max-width: 640px; margin: 0 auto; }
.tb-cta .btn { display: inline-block; background: var(--c-primary); color: #fff; text-decoration: none; padding: .8rem 1.8rem; border-radius: var(--pill, 999px); font-weight: 700; }
.tb-cta.sec--dark .sec__t { color: #fff; }

/* ── Vidrieras destacados/ofertas (slider CSS puro — nunca el catálogo) ── */
.tb-slider-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.tb-slider-track::-webkit-scrollbar { height: 6px; }
.tb-slider-track::-webkit-scrollbar-thumb { background: var(--c-border, #e2e8f0); border-radius: 999px; }
.tb-slider-card { flex: 0 0 200px; scroll-snap-align: start; }

/* ── Contacto ── */
.tb-contact-form { display: flex; flex-direction: column; gap: 12px; max-width: 480px; margin: 0 auto; }
.tb-contact-form input, .tb-contact-form textarea { padding: 11px 14px; border: 1px solid var(--c-border, #e2e8f0); border-radius: var(--radius-sm, 10px); font: inherit; background: var(--c-surface, #fff); color: var(--c-text, #111); }
.tb-contact-form .btn { align-self: flex-start; background: var(--c-primary); color: #fff; border: 0; padding: .8rem 1.8rem; border-radius: var(--pill, 999px); font-weight: 700; cursor: pointer; }
.tb-contact-feedback { margin: 0; font-size: 14px; }
.tb-contact-ok { color: #16a34a; }
.tb-contact-error { color: #e11d48; }

/* ── Footer variantes ── */
.tb-foot-grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding-bottom: 1.2rem; }
.tb-foot-h { font-weight: 800; margin-bottom: .5rem; }
.tb-foot-desc { opacity: .75; font-size: .9rem; }
.tb-foot-bar { border-top: 1px solid rgba(128,128,128,.25); padding-top: 1rem; text-align: center; }
.tb-foot-flex { display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.tb-foot-brand-lg { font-size: 1.6rem; font-weight: 800; margin-bottom: .4rem; }
.tb-foot-right { text-align: right; }
.tb-foot--big { padding: 4rem 0 2.5rem; }
.tb-foot-bigtitle { font-family: var(--font-head); font-size: clamp(2.4rem, 8vw, 5rem); font-weight: 800; line-height: 1; }
.tb-foot-bigmail { display: inline-block; font-size: clamp(1.1rem, 3vw, 1.7rem); font-weight: 700; color: var(--c-primary); text-decoration: none; margin: .8rem 0 1rem; }
.tb-foot-social-row { display: flex; gap: 1.2rem; justify-content: center; margin-bottom: 1rem; }
@media (max-width: 640px) { .tb-foot-right { text-align: left; } }
.btn, .product-add-btn { transition: transform .15s ease-out; }
:root { --fx-dur: .7s; --fx-ease: cubic-bezier(.34,1.56,.64,1); --fx-y: 20px; }

.ld-header{padding:16px 0;border-bottom:1px solid var(--c-border,#e2e8f0)}
.ld-header-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ld-brand img{height:40px;width:auto;border-radius:12px}
.ld-brand span{font-weight:800;font-size:1.1rem}
.ld-cta{text-decoration:none}
.ld-hero{position:relative;overflow:hidden;padding:70px 0;text-align:center}
.ld-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.2}
.ld-hero-in{position:relative;max-width:720px;margin:0 auto}
.ld-hero-in h1{font-size:2.3rem;margin:0 0 14px}
.ld-hero-in p{font-size:1.1rem;opacity:.85;margin:0 0 26px}
.ld-prose{max-width:760px;margin:0 auto;white-space:pre-line;line-height:1.7;font-size:1.05rem}
.ld-gal-wrap{display:flex;align-items:center;gap:10px}
.ld-gal-slider{display:flex;gap:20px;flex:1;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 10px;-webkit-overflow-scrolling:touch}
.ld-gal-slider::-webkit-scrollbar{height:6px}
.ld-gal-slider::-webkit-scrollbar-thumb{background:var(--c-border,#e2e8f0);border-radius:999px}
.ld-gal-item{flex:0 0 420px;height:180px;scroll-snap-align:start;margin:0;display:flex;border-radius:12px;overflow:hidden;background:var(--c-surface,#f5f5f5)}
.ld-gal-photo{flex:0 0 40%;height:100%}
.ld-gal-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ld-gal-info{flex:1;min-width:0;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.ld-gal-info h3{font-size:1rem;margin:0 0 8px}
.ld-gal-info p{margin:0;font-size:.9rem;opacity:.8;line-height:1.5}
.ld-gal-arrow{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--c-border,#e2e8f0);background:var(--c-surface,#fff);color:inherit;cursor:pointer;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center}
.ld-gal-arrow:hover{border-color:var(--c-primary,#e1762e);color:var(--c-primary,#e1762e)}
@media (max-width:560px){.ld-gal-item{flex-basis:85vw;height:auto;flex-direction:column}.ld-gal-photo{flex:0 0 auto;height:auto;aspect-ratio:16/9}}
.ld-problema{max-width:760px;margin:0 auto;text-align:center}
.ld-problema .ld-prose{margin:0}
.ld-benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;text-align:center}
.ld-benefit h3{font-size:1.05rem;margin:0 0 8px}
.ld-benefit p{margin:0;opacity:.8;font-size:.95rem}
.ld-steps{display:flex;flex-wrap:nowrap;gap:18px;text-align:center}
.ld-step{flex:1 1 0;min-width:0}
.ld-step-n{width:36px;height:36px;border-radius:50%;background:var(--c-primary,#e1762e);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 12px}
.ld-step h3{font-size:1.02rem;margin:0 0 6px}
.ld-step p{margin:0;opacity:.8;font-size:.92rem}
@media (max-width:760px){.ld-steps{flex-wrap:wrap}.ld-step{flex:1 1 calc(50% - 18px)}}
.ld-items-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:24px;text-align:left}
.ld-item{border:1px solid var(--c-border,#e2e8f0);border-radius:12px;overflow:hidden;background:var(--c-surface,#fff)}
.ld-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ld-item h3{font-size:1rem;margin:14px 14px 6px}
.ld-item p{margin:0 14px 14px;opacity:.8;font-size:.9rem;line-height:1.5}
.ld-testi-wrap{display:flex;align-items:center;gap:10px}
.ld-testi-slider{display:flex;gap:20px;flex:1;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 10px;-webkit-overflow-scrolling:touch}
.ld-testi-slider::-webkit-scrollbar{height:6px}
.ld-testi-slider::-webkit-scrollbar-thumb{background:var(--c-border,#e2e8f0);border-radius:999px}
.ld-testi{flex:0 0 420px;scroll-snap-align:start;margin:0;border:1px solid var(--c-border,#e2e8f0);border-radius:12px;padding:32px 28px;background:var(--c-surface,#fff)}
.ld-testi p{margin:0 0 16px;font-style:italic;opacity:.9;font-size:1.1rem;line-height:1.6}
.ld-testi cite{font-size:.95rem;font-weight:700;font-style:normal;opacity:.75}
.ld-testi-arrow{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--c-border,#e2e8f0);background:var(--c-surface,#fff);color:inherit;cursor:pointer;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center}
.ld-testi-arrow:hover{border-color:var(--c-primary,#e1762e);color:var(--c-primary,#e1762e)}
@media (max-width:560px){.ld-testi{flex-basis:85vw}}
.ld-faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.ld-faq-item{border:1px solid var(--c-border,#e2e8f0);border-radius:12px;padding:14px 18px;background:var(--c-surface,#fff)}
.ld-faq-item summary{cursor:pointer;font-weight:700}
.ld-faq-item p{margin:10px 0 0;opacity:.8;line-height:1.6}
.ld-contact{text-align:center}
.ld-contact-sub{opacity:.75;margin:-14px 0 24px}
.ld-footer{padding:30px 0;text-align:center;border-top:1px solid var(--c-border,#e2e8f0);opacity:.85;font-size:.9rem}
.ld-footer .footer-brand{font-weight:800;margin-bottom:8px}
.ld-footer .footer-info{margin-bottom:10px}
.footer-social{display:flex;justify-content:center;gap:16px;margin-bottom:10px;flex-wrap:wrap}
.footer-social a{text-decoration:none;font-weight:600}

