:root{--black:#050505;--black-2:#0d0d0d;--card:#181818;--line:#292929;--muted:#999;--soft:#b5b5b5;--white-soft:#f2f2f2;--white:#fff;--red:#f51e46;--red-dark:#8a001a;--container:min(1180px,calc(100vw - 48px));--ease:cubic-bezier(.2,.75,.2,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black)}body{margin:0;color:var(--white);background:var(--black);font-family:Inter,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}
/* `overflow-x:hidden` en el body convierte a la página en un contenedor con
   desplazamiento propio, y eso anula cualquier `position:sticky` de adentro —
   por eso el panel del cotizador nunca se quedaba fijo. `clip` recorta igual
   pero sin crear ese contenedor. Se deja `hidden` arriba como respaldo para
   navegadores viejos que no entienden `clip`. */
@supports (overflow-x:clip){body{overflow-x:clip}}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{color:var(--white);background:var(--red)}.container{width:var(--container);margin-inline:auto}.section{position:relative;padding:132px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:999;padding:10px 16px;transform:translateY(-160%);color:var(--white);background:var(--red);border-radius:4px}.skip-link:focus{transform:translateY(0)}
.grain{position:fixed;inset:0;z-index:80;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.cursor-dot{position:fixed;top:0;left:0;z-index:1000;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid var(--white);border-radius:50%;background:var(--red);pointer-events:none;transform:translate3d(-50px,-50px,0);transition:width .2s,height .2s,background .2s;mix-blend-mode:difference}.cursor-dot.active{width:34px;height:34px;background:transparent}
.site-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;width:min(1320px,calc(100vw - 48px));min-height:84px;margin:0 auto;padding:0 20px;border-bottom:1px solid transparent;transition:background .3s,border .3s,min-height .3s}.site-header.scrolled{min-height:68px;background:rgba(5,5,5,.82);border-color:rgba(255,255,255,.08);backdrop-filter:blur(20px)}.logo{display:inline-flex;align-items:center;gap:13px;min-width:max-content}.logo-mark,.mini-mark,.cta-mark{position:relative;display:inline-flex;gap:4px;width:32px;height:28px}.logo-mark i,.mini-mark i,.cta-mark i{display:block;width:14px;height:26px;border:3px solid var(--red);border-radius:12px 2px 12px 2px;transform:skewY(-12deg);box-shadow:0 0 18px rgba(245,30,70,.25)}.logo-mark i:last-child,.mini-mark i:last-child,.cta-mark i:last-child{border-radius:2px 12px 2px 12px;transform:skewY(12deg)}.logo-copy{display:grid;line-height:1}.logo-copy strong{color:var(--white);font-size:1.16rem;letter-spacing:.18em}.logo-copy small{margin-top:6px;color:var(--white-soft);font-size:.56rem;letter-spacing:.065em}.site-nav{display:flex;align-items:center;gap:28px;font-size:.85rem;font-weight:600}.site-nav>a:not(.button){color:var(--white-soft);transition:color .25s}.site-nav>a:not(.button):hover,.site-nav>a:not(.button):focus-visible{color:var(--red)}.menu-toggle{display:none;width:44px;height:44px;padding:10px;border:0;background:transparent}.menu-toggle span{display:block;height:1px;margin:6px 0;background:var(--white);transition:transform .3s,opacity .3s}
.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:0 26px;color:var(--white);border:1px solid var(--red);border-radius:2px;background:var(--red);font-size:.88rem;font-weight:800;letter-spacing:.02em;box-shadow:0 12px 35px rgba(245,30,70,.16);transition:transform .25s var(--ease),box-shadow .25s,background .25s,border .25s}.button:hover{transform:translateY(-3px);background:#ff3157;box-shadow:0 18px 45px rgba(245,30,70,.28)}.button:active{transform:translateY(0) scale(.98)}.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--white);outline-offset:4px}.button-small{min-height:40px;padding:0 18px;font-size:.78rem}.button-outline{border-color:#4a4a4a;background:rgba(255,255,255,.02);box-shadow:none}.button-outline:hover{border-color:var(--red);background:rgba(245,30,70,.08)}
.hero{position:relative;display:grid;min-height:100svh;padding:150px 0 95px;overflow:hidden;isolation:isolate}.hero::before{content:"LOOVUS";position:absolute;left:-1vw;bottom:-6vw;z-index:-2;color:rgba(255,255,255,.018);font-size:clamp(7rem,20vw,19rem);font-weight:900;line-height:.8;letter-spacing:-.06em;white-space:nowrap}.hero-glow{position:absolute;top:3%;right:-14%;z-index:-1;width:70vw;height:70vw;background:radial-gradient(circle,rgba(245,30,70,.28) 0,rgba(138,0,26,.13) 24%,transparent 68%);filter:blur(20px)}.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);align-items:center;gap:6vw}.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 24px;color:var(--soft);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.eyebrow>span{width:36px;height:1px;background:var(--red);box-shadow:0 0 12px var(--red)}h1,h2,h3,p{margin-top:0}h1,h2{margin-bottom:28px;font-weight:800;line-height:.98;letter-spacing:-.055em}h1{max-width:780px;font-size:clamp(3.6rem,6vw,6.6rem)}h2{font-size:clamp(3rem,5.2vw,5.2rem)}h1 em,h2 em{color:var(--red);font-style:normal;background:linear-gradient(120deg,var(--red) 15%,#ff5573 48%,var(--red-dark));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-lead{max-width:640px;margin-bottom:34px;color:var(--white-soft);font-size:clamp(1.05rem,1.35vw,1.28rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-proof{display:flex;align-items:center;gap:12px;margin-top:56px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hero-proof i{width:4px;height:4px;border-radius:50%;background:var(--red)}
.hero-visual{position:relative;min-height:610px;display:grid;align-items:center}.hero-image-wrap{position:relative;z-index:2;width:min(760px,52vw);overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:55% 45% 48% 52%/42% 56% 44% 58%;box-shadow:0 40px 110px rgba(0,0,0,.7),0 0 80px rgba(245,30,70,.15);transform:rotate(-2deg)}.hero-image-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(0,0,0,.25),transparent 60%);pointer-events:none}.hero-image-wrap img{width:100%;height:520px;object-fit:cover;object-position:center 48%}.image-label{position:absolute;left:41%;bottom:58px;transform:translateX(-50%);z-index:2;display:flex;align-items:center;gap:10px;padding:10px 13px;color:var(--white);background:rgba(5,5,5,.74);border:1px solid rgba(255,255,255,.12);border-radius:2px;backdrop-filter:blur(12px);font-size:.72rem;font-weight:700}.image-label span{color:var(--red)}.orbit{position:absolute;left:46%;top:49%;width:590px;height:590px;border:1px solid rgba(245,30,70,.18);border-radius:50%;transform:translate(-50%,-50%);animation:spin 30s linear infinite}.orbit::before{content:"";position:absolute;left:50%;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 20px var(--red)}.orbit-two{width:460px;height:460px;border-color:rgba(255,255,255,.1);animation-direction:reverse;animation-duration:22s}.floating-badge{position:absolute;right:1%;bottom:2%;z-index:3;display:flex;align-items:center;gap:14px;width:152px;height:152px;padding:23px;color:var(--white);background:rgba(13,13,13,.82);border:1px solid rgba(245,30,70,.35);border-radius:50%;backdrop-filter:blur(16px);box-shadow:0 20px 70px rgba(0,0,0,.6)}.mini-mark{width:22px;height:20px}.mini-mark i{width:9px;height:18px;border-width:2px}.floating-badge b{font-size:.72rem;line-height:1.3;text-transform:uppercase;letter-spacing:.07em}.scroll-cue{position:absolute;left:50%;bottom:28px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transform:translateX(-50%)}.scroll-cue span{position:relative;width:1px;height:28px;overflow:hidden;background:var(--line)}.scroll-cue span::after{content:"";position:absolute;inset:-100% 0 auto;height:100%;background:var(--red);animation:scroll 1.8s infinite}
.marquee{overflow:hidden;padding:18px 0;color:var(--white);background:var(--red);transform:rotate(-1deg) scale(1.02)}.marquee div{width:max-content;font-size:.84rem;font-weight:900;letter-spacing:.12em;white-space:nowrap;animation:marquee 24s linear infinite}.marquee b{margin:0 20px;color:var(--black)}
.section-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);align-items:end;gap:60px;margin-bottom:70px}.section-head h2{max-width:850px;margin-bottom:0}.section-head>p{max-width:440px;margin:0 0 6px;color:var(--soft)}.services{background:var(--black-2)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{position:relative;min-height:420px;padding:34px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));transition:transform .35s var(--ease),border .35s,box-shadow .35s}.service-card::before{content:"";position:absolute;left:-30%;bottom:-55%;width:90%;height:90%;border-radius:50%;background:radial-gradient(circle,rgba(245,30,70,.22),transparent 67%);opacity:0;transition:opacity .35s}.service-card:hover{transform:translateY(-8px);border-color:rgba(245,30,70,.5);box-shadow:0 28px 80px rgba(0,0,0,.45),inset 0 0 45px rgba(245,30,70,.035)}.service-card:hover::before{opacity:1}.service-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:100px}.service-number{color:var(--red);font-size:.8rem;font-weight:900;letter-spacing:.12em}.service-top svg{width:44px;fill:none;stroke:var(--red);stroke-width:1.5}.service-card h3{margin-bottom:16px;font-size:2rem;letter-spacing:-.03em}.service-card p{min-height:78px;color:var(--soft)}.service-card a{position:relative;z-index:2;display:inline-flex;gap:10px;padding-bottom:4px;color:var(--white);border-bottom:1px solid var(--red);font-size:.8rem;font-weight:800}
.projects{overflow:hidden}.project-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:490px 410px;gap:18px}.project-card{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line)}.project-wide{grid-column:1/-1}.project-tall{grid-row:2}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .5s}.project-wide img{object-position:center 54%}.project-tall img{object-position:center 56%}.project-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:34px;color:var(--white);background:linear-gradient(180deg,transparent 22%,rgba(0,0,0,.15) 45%,rgba(0,0,0,.93));opacity:0;transform:translateY(12px);transition:opacity .35s,transform .35s}.project-overlay span{color:var(--red);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.project-overlay h3{margin:10px 0 4px;font-size:2rem}.project-overlay p{max-width:420px;margin-bottom:12px;color:var(--white-soft)}.project-overlay a{align-self:flex-start;font-size:.8rem;font-weight:800}.project-card:hover img{transform:scale(1.045);filter:brightness(.78)}.project-card:hover .project-overlay,.project-card:focus-within .project-overlay{opacity:1;transform:none}.category-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 24px;padding:28px 0 0;color:var(--muted);border-bottom:1px solid var(--line)}.category-strip span{padding-bottom:20px;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.value-section{overflow:hidden;background:linear-gradient(135deg,#090909 0%,#120005 50%,#050505 100%)}.value-section::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(255,255,255,.055) 50%,transparent 50.1%)}.value-orbit{position:absolute;right:-12vw;top:50%;width:58vw;height:58vw;border:1px solid rgba(245,30,70,.18);border-radius:50%;transform:translateY(-50%);box-shadow:0 0 120px rgba(245,30,70,.08)}.value-orbit::after{content:"";position:absolute;inset:12%;border:1px solid rgba(255,255,255,.08);border-radius:inherit}.value-grid{position:relative;display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:8vw}.value-copy h2{max-width:820px}.value-copy>p:last-child{max-width:670px;color:var(--soft);font-size:1.05rem}.stats{margin:0;border-top:1px solid var(--line)}.stats div{display:grid;gap:9px;padding:22px 0 24px;border-bottom:1px solid var(--line)}.stats dt{min-width:0;color:var(--white);font-size:clamp(1.45rem,2.1vw,1.95rem);font-weight:850;line-height:1.1;letter-spacing:-.035em;overflow-wrap:break-word}.stats dd{min-width:0;margin:0;color:var(--soft);font-size:.76rem;font-weight:700;line-height:1.6;letter-spacing:.06em;text-transform:uppercase;overflow-wrap:break-word}
.process-section{background:var(--black-2)}.process-list{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0;list-style:none}.process-list::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:linear-gradient(90deg,var(--red),var(--line))}.process-list li{position:relative;min-height:270px;padding:74px 28px 26px 0}.process-list li:not(:last-child){border-right:1px solid var(--line)}.process-list li:not(:first-child){padding-left:28px}.process-list li>span{position:absolute;top:22px;left:0;z-index:1;padding-right:10px;color:var(--red);background:var(--black-2);font-size:.75rem;font-weight:900}.process-list li:not(:first-child)>span{left:28px}.process-list h3{margin-bottom:18px;font-size:1.55rem}.process-list p{color:var(--soft)}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:9vw}.about-image{position:relative;min-height:620px;padding:18px 0 18px 18px}.about-image::before{content:"";position:absolute;left:0;top:0;width:55%;height:58%;border-left:1px solid var(--red);border-top:1px solid var(--red)}.about-image img{position:relative;height:600px;object-fit:cover;object-position:center;filter:saturate(.85) contrast(1.05)}.vertical-note{position:absolute;right:-39px;bottom:50%;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.2em;transform:rotate(90deg) translateX(50%)}.about-copy h2{max-width:700px}.about-copy>p{max-width:690px;color:var(--soft)}.about-copy .about-lead{color:var(--white-soft);font-size:clamp(1.1rem,1.7vw,1.5rem)}.about-manifesto{display:flex;align-items:center;gap:28px;margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}.about-manifesto span{color:var(--red);font-size:.72rem;font-weight:900;letter-spacing:.16em}.about-manifesto p{max-width:360px;margin:0;color:var(--white);font-size:.9rem;font-weight:700}
.testimonials{background:var(--black-2)}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}blockquote{position:relative;min-height:340px;margin:0;padding:40px 34px;border:1px solid var(--line);background:rgba(255,255,255,.018)}blockquote>span{position:absolute;top:22px;right:28px;color:rgba(245,30,70,.18);font:800 7rem/1 Georgia,serif}blockquote>p{position:relative;margin-top:70px;color:var(--white);font-size:1.05rem;line-height:1.65}blockquote footer{position:absolute;left:34px;right:34px;bottom:35px;display:grid}blockquote footer b{color:var(--red);font-size:.83rem}blockquote footer small{color:var(--muted)}
.cta-section{position:relative;display:grid;min-height:760px;place-items:center;overflow:hidden;text-align:center;background:#030303}.cta-section::before,.cta-section::after{content:"";position:absolute;left:50%;top:50%;width:760px;height:760px;border:1px solid rgba(245,30,70,.14);border-radius:50%;transform:translate(-50%,-50%)}.cta-section::after{width:520px;height:520px;border-color:rgba(255,255,255,.08)}.cta-halo{position:absolute;left:50%;bottom:-40%;width:120vw;height:80%;background:radial-gradient(ellipse,rgba(245,30,70,.42),rgba(138,0,26,.16) 32%,transparent 68%);transform:translateX(-50%);filter:blur(12px)}.cta-inner{position:relative;z-index:2;display:grid;justify-items:center}.cta-mark{width:58px;height:52px;gap:8px;margin-bottom:35px}.cta-mark i{width:25px;height:50px;border-width:5px}.cta-inner .eyebrow{color:var(--red)}.cta-inner h2{margin-bottom:24px}.cta-inner>p:not(.eyebrow){max-width:620px;margin-bottom:36px;color:var(--white-soft)}
.contact{background:var(--black-2)}.contact-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.contact-copy h2{font-size:clamp(3rem,5vw,5rem)}.contact-copy>p{color:var(--soft)}.contact-details{display:grid;gap:24px;margin-top:55px}.contact-details div{display:grid;padding-bottom:18px;border-bottom:1px solid var(--line)}.contact-details small{margin-bottom:5px;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.contact-details a,.contact-details span{color:var(--white);font-weight:700}.contact-form{padding:38px;border:1px solid var(--line);background:var(--card)}.field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.contact-form label{display:grid;gap:8px;margin-bottom:20px;color:var(--soft);font-size:.74rem;font-weight:800;letter-spacing:.04em}.contact-form input,.contact-form select,.contact-form textarea{width:100%;color:var(--white);background:#111;border:1px solid #303030;border-radius:0;outline:0;transition:border .25s,box-shadow .25s}.contact-form input,.contact-form select{height:50px;padding:0 14px}.contact-form textarea{min-height:140px;padding:13px 14px;resize:vertical}.contact-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px;background-size:5px 5px;background-repeat:no-repeat}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(245,30,70,.1)}.contact-form [aria-invalid="true"]{border-color:var(--red)}.contact-form ::placeholder{color:#686868}.form-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.form-status{margin:0;color:var(--soft);font-size:.78rem}.form-status.error{color:#ff718b}.form-status.success{color:var(--white)}
.footer{position:relative;overflow:hidden;padding:72px 0 28px;background:var(--black);border-top:1px solid var(--line)}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:55px}.footer-top>p{max-width:430px;margin:0;color:var(--white-soft);font-size:clamp(1.1rem,2vw,1.55rem);font-weight:700;text-align:right}.footer-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;gap:30px;padding-top:28px;border-top:1px solid var(--line)}.footer-bottom p,.footer-bottom nav{color:var(--muted);font-size:.7rem}.footer-bottom nav{display:flex;flex-wrap:wrap;gap:22px}.footer-bottom a:hover{color:var(--red)}.footer-word{margin:58px 0 -5vw;color:rgba(255,255,255,.035);font-size:clamp(8rem,22vw,20rem);font-weight:900;line-height:.68;letter-spacing:-.07em;text-align:center}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal.visible{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:.1s}.reveal[data-delay="2"]{transition-delay:.2s}.reveal[data-delay="3"]{transition-delay:.3s}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes scroll{to{transform:translateY(200%)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:1050px){:root{--container:min(100% - 40px,940px)}.site-nav{gap:18px}.hero-grid{grid-template-columns:1fr;gap:40px}.hero-copy{position:relative;z-index:4;min-width:0;max-width:760px}.hero-visual{min-height:490px}.hero-image-wrap{width:min(840px,90vw)}.hero-image-wrap img{height:470px}.floating-badge{right:3%;bottom:-2%}.service-card{min-height:390px;padding:28px}.service-top{margin-bottom:75px}.value-grid{grid-template-columns:1fr}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 26px}.stats div{padding-right:0}.process-list{grid-template-columns:repeat(2,1fr)}.process-list::before{display:none}.process-list li{padding:70px 28px 20px 0;border-top:1px solid var(--line)}.process-list li:nth-child(2n){padding-left:28px}.process-list li:nth-child(3){padding-left:0;border-right:1px solid var(--line)}.process-list li:nth-child(3)>span{left:0}.contact-grid{grid-template-columns:.8fr 1.2fr;gap:4vw}}
@media(max-width:760px){:root{--container:calc(100% - 34px)}.section{padding:92px 0}.site-header,.site-header.scrolled{width:100%;min-height:70px;padding:0 18px}.logo-copy small{display:none}.menu-toggle{position:relative;z-index:102;display:block}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.site-nav{position:fixed;inset:0;z-index:101;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding:80px 8vw;visibility:hidden;opacity:0;background:rgba(5,5,5,.97);backdrop-filter:blur(20px);transition:opacity .3s,visibility .3s}.site-nav.open{visibility:visible;opacity:1}.site-nav>a:not(.button){display:block;font-size:clamp(2rem,10vw,3.3rem);font-weight:800;letter-spacing:-.04em}.site-nav .button{margin-top:18px}.hero{min-height:auto;padding:125px 0 90px}.hero::before{bottom:2%}.hero-grid{gap:52px}h1{font-size:clamp(2.6rem,12vw,5.3rem)}h2{font-size:clamp(2.8rem,13vw,4.5rem)}.hero-actions{display:grid;grid-template-columns:1fr}.hero-proof{margin-top:38px}.hero-visual{min-height:370px}.hero-image-wrap{width:96%;border-radius:42% 58% 54% 46%/46% 44% 56% 54%}.hero-image-wrap img{height:360px;object-position:center 46%}.image-label{bottom:84px;font-size:.66rem;padding:8px 11px}.floating-badge{right:-2%;width:118px;height:118px;padding:18px}.floating-badge b{font-size:.58rem}.orbit{width:410px;height:410px}.orbit-two{width:310px;height:310px}.scroll-cue{display:none}.section-head{grid-template-columns:1fr;gap:24px;margin-bottom:48px}.service-grid{grid-template-columns:1fr}.service-card{min-height:340px}.service-top{margin-bottom:48px}.project-grid{display:grid;grid-template-columns:1fr;grid-template-rows:none}.project-wide,.project-tall,.project-square{grid-column:auto;grid-row:auto;height:460px}.project-wide{height:330px}.project-overlay{padding:24px;opacity:1;transform:none}.project-overlay h3{font-size:1.55rem}.category-strip{justify-content:flex-start}.value-section::before{display:none}.stats{grid-template-columns:1fr;gap:0}.process-list{grid-template-columns:1fr}.process-list li,.process-list li:nth-child(2n),.process-list li:nth-child(3){min-height:220px;padding:62px 0 18px;border-right:0}.process-list li>span,.process-list li:not(:first-child)>span,.process-list li:nth-child(3)>span{left:0}.about-grid{grid-template-columns:1fr;gap:70px}.about-image{min-height:500px}.about-image img{height:480px}.testimonial-grid{grid-template-columns:1fr}blockquote{min-height:300px}.cta-section{min-height:670px;padding:90px 0}.cta-section::before{width:600px;height:600px}.cta-section::after{width:390px;height:390px}.contact-grid{grid-template-columns:1fr;gap:58px}.contact-form{padding:24px 18px}.field-row{grid-template-columns:1fr;gap:0}.form-bottom{align-items:stretch;flex-direction:column}.form-bottom .button{width:100%}.footer-top,.footer-bottom{align-items:flex-start;flex-direction:column}.footer-top>p{text-align:left}.footer-word{margin-top:70px}}
@media(pointer:coarse){.cursor-dot{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Official LOOVUS identity and production portfolio */
.brand-logo{display:block;width:148px;height:auto}.footer-logo .brand-logo{width:230px}.mini-logo{width:34px;height:36px;object-fit:contain}.cta-logo{width:78px;height:auto;margin-bottom:30px;filter:drop-shadow(0 0 28px rgba(237,34,67,.28))}
.project-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:390px}.project-card{grid-column:span 6}.project-feature{grid-column:span 8;min-height:500px}.project-side{grid-column:span 4;min-height:500px}.project-feature img{object-position:center}.project-side img{object-position:center}.project-overlay h3{max-width:520px}.project-overlay p{max-width:500px}.about-image img{object-position:center}
@media(max-width:1050px){.brand-logo{width:138px}.project-feature,.project-side,.project-card{grid-column:span 6;min-height:430px}.project-grid{grid-auto-rows:430px}}
@media(max-width:760px){.brand-logo{width:118px}.footer-logo .brand-logo{width:205px}.project-feature,.project-side,.project-card{grid-column:1/-1;min-height:0;height:420px}.project-feature{height:350px}.project-grid{grid-template-columns:1fr;grid-auto-rows:auto}.project-overlay span{font-size:.66rem}}

/* Local SEO service pages */
.service-grid{grid-template-columns:repeat(4,1fr)}.service-grid .service-card{min-height:360px}.service-grid .service-top{margin-bottom:54px}.service-page-main{padding-top:84px}.service-page-hero{position:relative;padding:110px 0 84px;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 85% 20%,rgba(245,30,70,.2),transparent 32%),var(--black)}.service-page-hero::after{content:"LOOVUS";position:absolute;right:-2vw;bottom:-3vw;color:rgba(255,255,255,.025);font-size:clamp(7rem,18vw,17rem);font-weight:900;line-height:.7;letter-spacing:-.07em;pointer-events:none}.breadcrumb{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:34px;color:var(--muted);font-size:.78rem}.breadcrumb a:hover{color:var(--red)}.service-page-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);align-items:end;gap:8vw}.service-page-hero h1{max-width:900px;margin-bottom:26px;font-size:clamp(3.4rem,6.8vw,7rem)}.service-page-hero .hero-lead{max-width:760px}.service-summary{padding:28px;border:1px solid rgba(245,30,70,.38);background:rgba(13,13,13,.76);backdrop-filter:blur(12px)}.service-summary small{display:block;margin-bottom:18px;color:var(--red);font-weight:800;letter-spacing:.12em;text-transform:uppercase}.service-summary ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.service-summary li{padding-bottom:11px;color:var(--white-soft);border-bottom:1px solid var(--line)}.service-summary li:last-child{padding-bottom:0;border:0}.service-detail{padding:105px 0;background:var(--black-2)}.service-detail-grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:8vw}.service-detail h2{font-size:clamp(2.5rem,4.7vw,4.5rem)}.service-detail-copy>p{color:var(--soft);font-size:1.05rem}.service-media{margin:40px 0 0;border:1px solid var(--line);overflow:hidden}.service-media img{height:min(540px,55vw);object-fit:cover}.service-benefits{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:38px}.service-benefits article{min-height:190px;padding:27px;border:1px solid var(--line);background:rgba(255,255,255,.02)}.service-benefits span{display:block;margin-bottom:38px;color:var(--red);font-size:.72rem;font-weight:900}.service-benefits h3{margin-bottom:10px;font-size:1.3rem}.service-benefits p{margin:0;color:var(--soft);font-size:.92rem}.service-intent{padding:88px 0}.service-intent-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.service-intent h2{font-size:clamp(2.4rem,4vw,4rem)}.service-intent p,.service-intent li{color:var(--soft)}.service-intent ul{display:grid;gap:12px;padding-left:20px}.related-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.related-links a{padding:10px 14px;border:1px solid var(--line);color:var(--white-soft);font-size:.78rem;font-weight:800}.related-links a:hover{border-color:var(--red);color:var(--white)}.service-cta{padding:86px 0;text-align:center;border-top:1px solid var(--line);background:linear-gradient(135deg,#0b0b0b,#180006)}.service-cta h2{max-width:850px;margin-inline:auto;font-size:clamp(2.6rem,5vw,5rem)}.service-cta p{max-width:650px;margin:0 auto 30px;color:var(--soft)}
@media(max-width:1050px){.service-grid{grid-template-columns:repeat(2,1fr)}.service-page-grid,.service-detail-grid{grid-template-columns:1fr}.service-summary{max-width:680px}.service-detail-grid{gap:45px}}
@media(max-width:760px){.service-grid{grid-template-columns:1fr}.service-page-main{padding-top:70px}.service-page-hero{padding:78px 0 68px}.service-page-grid,.service-intent-grid{grid-template-columns:1fr}.service-page-hero h1{font-size:clamp(3rem,14vw,5rem)}.service-detail{padding:78px 0}.service-benefits{grid-template-columns:1fr}.service-benefits article{min-height:165px}.service-media img{height:320px}.service-intent{padding:72px 0}.service-intent-grid{gap:45px}}

/* ============================================================================
   COTIZADOR Y CARRITO DE COTIZACIÓN
   ========================================================================== */

/* ---- Botón del carrito en el header ---- */
.header-actions{display:flex;align-items:center;gap:10px;margin-left:18px}
.site-nav{margin-left:auto}
.cart-toggle{position:relative;display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 15px;color:var(--white-soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.03);font-size:.78rem;font-weight:800;letter-spacing:.03em;cursor:pointer;transition:color .25s,border .25s,background .25s,transform .25s var(--ease)}
.cart-toggle:hover{color:var(--white);border-color:var(--red);background:rgba(245,30,70,.1);transform:translateY(-2px)}
.cart-toggle svg{width:19px;height:19px;fill:none;stroke:var(--red);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cart-toggle circle{fill:var(--red);stroke:none}
.cart-count{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;color:var(--white);background:#2a2a2a;border-radius:11px;font-size:.68rem;font-weight:900;transition:background .25s,box-shadow .25s}
.cart-count.is-active{background:var(--red);box-shadow:0 0 16px rgba(245,30,70,.5)}

/* ---- Sección del cotizador ---- */
/* `overflow:hidden` aquí también anulaba el panel pegado. `clip` recorta los
   destellos del fondo igual, sin convertir la sección en un contenedor con
   desplazamiento propio. */
.quote-section{position:relative;overflow:hidden;background:var(--black)}
@supports (overflow:clip){.quote-section{overflow:clip}}
.quote-section::before{content:"";position:absolute;left:-12%;top:12%;width:46vw;height:46vw;border-radius:50%;background:radial-gradient(circle,rgba(245,30,70,.16),transparent 66%);filter:blur(24px);pointer-events:none}
.quote-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.32fr) minmax(320px,.68fr);align-items:start;gap:20px}
.quote-builder{padding:36px;border:1px solid var(--line);background:var(--card)}
.quote-step{display:flex;align-items:center;gap:12px;margin:0 0 22px;color:var(--white);font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.quote-step span{color:var(--red);font-weight:900}
.quote-step:not(:first-child){margin-top:38px;padding-top:30px;border-top:1px solid var(--line)}

/* ---- Chips de servicio ---- */
.quote-services{display:flex;flex-wrap:wrap;gap:8px}
.quote-chip{padding:12px 15px;color:var(--soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.02);font-size:.75rem;font-weight:800;letter-spacing:.03em;text-align:left;cursor:pointer;transition:color .25s,border .25s,background .25s,transform .25s var(--ease)}
.quote-chip:hover{color:var(--white);border-color:#4a4a4a;transform:translateY(-2px)}
.quote-chip[aria-pressed="true"]{color:var(--white);border-color:var(--red);background:rgba(245,30,70,.14);box-shadow:inset 0 0 0 1px rgba(245,30,70,.3),0 10px 30px rgba(245,30,70,.12)}

/* ---- Campos ---- */
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.quote-field{display:grid;gap:8px;color:var(--soft);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.quote-field input,.quote-field textarea{width:100%;color:var(--white);background:#111;border:1px solid #303030;border-radius:0;outline:0;font-weight:600;letter-spacing:0;text-transform:none;transition:border .25s,box-shadow .25s}
.quote-field input{height:50px;padding:0 14px}
.quote-field textarea{padding:12px 14px;resize:vertical}
.quote-field input:focus,.quote-field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(245,30,70,.1)}
.quote-field [aria-invalid="true"]{border-color:var(--red)}
.quote-field ::placeholder{color:#686868;text-transform:none}

/* ---- Grupos de opciones ---- */
.quote-group{margin-top:26px}
.quote-group-label{margin:0 0 12px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.quote-opts{display:flex;flex-wrap:wrap;gap:8px}
.quote-opt{position:relative;display:inline-flex}
.quote-opt input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.quote-opt span{display:inline-flex;align-items:center;gap:9px;padding:11px 15px;color:var(--soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.02);font-size:.78rem;font-weight:700;cursor:pointer;transition:color .22s,border .22s,background .22s}
.quote-opt span::before{content:"";width:9px;height:9px;border:1px solid #4a4a4a;border-radius:50%;transition:background .22s,border .22s,box-shadow .22s}
.quote-opt input[type="checkbox"]+span::before{border-radius:1px}
.quote-opt span:hover{color:var(--white);border-color:#4a4a4a}
/* Opciones con foto: el modelo se ve, no solo se lee. */
.quote-opt.con-foto span{padding:8px 14px 8px 8px}
.quote-opt-img{width:42px;height:42px;object-fit:cover;border-radius:2px;background:#141414;flex:0 0 auto}
@media(max-width:760px){.quote-opt-img{width:38px;height:38px}}
.quote-opt input:checked+span{color:var(--white);border-color:var(--red);background:rgba(245,30,70,.12)}
.quote-opt input:checked+span::before{background:var(--red);border-color:var(--red);box-shadow:0 0 10px rgba(245,30,70,.6)}
.quote-opt input:focus-visible+span{outline:2px solid var(--white);outline-offset:3px}

/* ---- Panel de estimado ---- */
.quote-panel{position:sticky;top:100px;max-height:calc(100vh - 124px);overflow-y:auto;overscroll-behavior:contain;padding:30px;border:1px solid rgba(245,30,70,.34);background:linear-gradient(165deg,rgba(245,30,70,.09),rgba(13,13,13,.94) 46%)}
.quote-panel-label{margin:0 0 6px;color:var(--red);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.quote-panel-title{margin:0 0 16px;font-size:1.5rem;letter-spacing:-.03em}
.quote-total{display:flex;align-items:baseline;gap:10px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.quote-total b{color:var(--white);font-size:clamp(2.1rem,3.6vw,2.9rem);font-weight:850;line-height:1;letter-spacing:-.05em}
.quote-currency{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.1em}
.quote-lines{display:grid;gap:9px;margin:0 0 24px;padding:0;list-style:none;font-size:.78rem}
.quote-lines li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:9px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.06)}
.quote-lines li:last-child{border-bottom:0;padding-bottom:0}
.quote-lines li b{color:var(--white-soft);font-weight:700;text-align:right}
.quote-lines li.is-discount b{color:var(--red)}
.quote-add{width:100%}
.quote-note{margin:16px 0 0;color:var(--muted);font-size:.68rem;line-height:1.55}

/* ---- Fondo del carrito ---- */
body.cart-open{overflow:hidden}
.cart-backdrop{position:fixed;inset:0;z-index:120;background:rgba(5,5,5,.72);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.cart-backdrop.open{opacity:1;visibility:visible}

/* ---- Panel lateral del carrito ---- */
.cart-drawer{position:fixed;top:0;right:0;bottom:0;z-index:121;display:flex;flex-direction:column;width:min(470px,100vw);background:var(--black-2);border-left:1px solid var(--line);box-shadow:-30px 0 90px rgba(0,0,0,.6);transform:translateX(103%);transition:transform .42s var(--ease)}
.cart-drawer.open{transform:none}
.cart-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 26px;border-bottom:1px solid var(--line)}
.cart-head-copy{display:grid;gap:5px}
.cart-head small{color:var(--red);font-size:.66rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.cart-head strong{color:var(--white);font-size:1.15rem;font-weight:800;letter-spacing:-.02em}
.cart-close{display:grid;place-items:center;width:40px;height:40px;color:var(--white-soft);border:1px solid var(--line);border-radius:2px;background:transparent;font-size:1rem;cursor:pointer;transition:color .25s,border .25s}
.cart-close:hover{color:var(--red);border-color:var(--red)}
.cart-body{flex:1;overflow-y:auto;padding:8px 26px 26px}
.cart-empty{display:grid;gap:10px;padding:60px 0;text-align:center}
.cart-empty p{margin:0;color:var(--white);font-size:1.05rem;font-weight:700}
.cart-empty small{color:var(--muted);font-size:.8rem;line-height:1.6}

/* ---- Partidas ---- */
.cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.cart-item-copy small{display:block;margin-bottom:5px;color:var(--red);font-size:.63rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.cart-item-copy h4{margin:0 0 6px;color:var(--white);font-size:1rem;font-weight:800;letter-spacing:-.02em}
.cart-item-copy p{margin:0;color:var(--muted);font-size:.75rem;line-height:1.55}
.cart-item-side{display:grid;justify-items:end;align-content:start;gap:10px}
.cart-item-price{color:var(--white);font-size:.95rem;font-weight:850;white-space:nowrap}
.cart-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:2px}
.cart-qty button{width:30px;height:30px;color:var(--white-soft);border:0;background:transparent;font-size:.95rem;font-weight:800;cursor:pointer;transition:color .2s}
.cart-qty button:hover{color:var(--red)}
.cart-qty span{min-width:34px;color:var(--white);font-size:.78rem;font-weight:800;text-align:center}
.cart-remove{padding:0;color:var(--muted);border:0;background:transparent;font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:color .2s}
.cart-remove:hover{color:var(--red)}

/* ---- Pie del carrito ---- */
.cart-foot{padding:22px 26px 26px;border-top:1px solid var(--line);background:rgba(5,5,5,.6)}
.cart-foot:empty{display:none}
.cart-totals{display:grid;gap:9px;margin-bottom:20px}
.cart-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;color:var(--muted);font-size:.8rem}
.cart-total-row b{color:var(--white-soft);font-weight:700}
.cart-total-row.is-total{padding-top:12px;border-top:1px solid var(--line);color:var(--white);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.cart-total-row.is-total b{color:var(--white);font-size:1.5rem;font-weight:850;letter-spacing:-.04em}
.cart-form{display:grid;gap:12px;margin-bottom:18px}
.cart-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.cart-actions{display:grid;gap:9px}
.cart-send{width:100%;gap:10px}
.cart-send svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cart-links{display:flex;justify-content:space-between;gap:14px;margin-top:14px}
.cart-link{padding:0;color:var(--muted);border:0;background:transparent;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .2s}
.cart-link:hover{color:var(--red)}
.cart-note{margin:16px 0 0;color:#6b6b6b;font-size:.66rem;line-height:1.55}
/* Condiciones de medidas y diseño: el cliente las confirma antes de enviar. */
.cart-condiciones{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:3px;background:rgba(255,255,255,.025);transition:border-color .3s,background .3s}
.cart-condiciones-titulo{margin:0 0 10px;color:var(--white);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.cart-condiciones ul{margin:0;padding-left:18px;display:grid;gap:7px}
.cart-condiciones li{color:var(--soft);font-size:.76rem;line-height:1.6}
.cart-condiciones li::marker{color:var(--red)}
.cart-acepto{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);cursor:pointer}
.cart-acepto input{flex:0 0 auto;width:17px;height:17px;margin-top:1px;accent-color:var(--red);cursor:pointer}
.cart-acepto span{color:var(--white-soft);font-size:.78rem;font-weight:700;line-height:1.5}
.cart-condiciones.falta{border-color:var(--red);background:rgba(245,30,70,.08);animation:condiciones-ojo .45s ease}
.cart-condiciones.falta .cart-acepto span{color:var(--white)}
@keyframes condiciones-ojo{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(prefers-reduced-motion:reduce){.cart-condiciones.falta{animation:none}}

/* ---- Aviso flotante ---- */
.toast{position:fixed;left:50%;bottom:30px;z-index:130;padding:13px 20px;color:var(--white);background:var(--red);border-radius:2px;box-shadow:0 18px 50px rgba(245,30,70,.35);font-size:.8rem;font-weight:800;opacity:0;visibility:hidden;transform:translate(-50%,16px);transition:opacity .28s,transform .28s var(--ease),visibility .28s}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ---- Adaptable ---- */
@media(max-width:1050px){
  .quote-layout{grid-template-columns:1fr}
  .quote-panel{position:static}
  .quote-builder{padding:28px}
  .cart-toggle span{display:none}
  .cart-toggle{padding:0 12px}
}
@media(max-width:760px){
  .header-actions{margin-left:0}
  .quote-builder{padding:22px 18px}
  .quote-grid{grid-template-columns:1fr}
  .quote-panel{padding:24px 20px}
  .quote-chip{flex:1 1 calc(50% - 4px)}
  .cart-drawer{width:100vw;border-left:0}
  .cart-head,.cart-body,.cart-foot{padding-inline:18px}
  .cart-item{grid-template-columns:1fr;gap:12px}
  .cart-item-side{justify-items:start}
  .cart-form-row{grid-template-columns:1fr}
  .toast{left:18px;right:18px;bottom:18px;transform:translateY(16px);text-align:center}
  .toast.show{transform:translateY(0)}
}

/* ---- Ajustes finos del cotizador ---- */
.quote-section{scroll-margin-top:96px}
.cart-total-row.is-discount b{color:var(--red)}
.cart-send .ico-wa{fill:currentColor;stroke:none}
.quote-panel .button:focus-visible,.cart-drawer .button:focus-visible{outline:2px solid var(--white);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.cart-drawer{transition:none}}

/* ---- Checkout en dos pasos ---- */
.cart-back{display:inline-flex;align-items:center;gap:8px;margin:18px 0 4px;padding:0;color:var(--muted);border:0;background:transparent;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .2s}
.cart-back:hover{color:var(--red)}
.cart-resumen{margin:16px 0 24px;padding:18px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.cart-resumen small{display:block;margin-bottom:12px;color:var(--red);font-size:.63rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.cart-resumen ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.cart-resumen li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;color:var(--soft);font-size:.8rem}
.cart-resumen li b{color:var(--white);font-weight:800;white-space:nowrap}
.cart-totals.is-compact{margin-bottom:16px}
.cart-totals.is-compact .cart-total-row.is-total{padding-top:0;border-top:0}
.cart-links:has(> :only-child){justify-content:flex-start}

/* ---- Cotizador: catálogo de productos y estados pendientes ---- */
.quote-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.quote-product{display:grid;gap:6px;padding:16px;color:var(--soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.02);text-align:left;cursor:pointer;transition:color .25s,border .25s,background .25s,transform .25s var(--ease)}
.quote-product:hover{color:var(--white);border-color:#4a4a4a;transform:translateY(-2px)}
.quote-product[aria-pressed="true"]{border-color:var(--red);background:rgba(245,30,70,.12);box-shadow:inset 0 0 0 1px rgba(245,30,70,.28)}
.quote-product strong{color:var(--white);font-size:.92rem;font-weight:800;letter-spacing:-.01em;line-height:1.25}
.quote-product span{color:var(--muted);font-size:.72rem;line-height:1.45}
.quote-product em{color:var(--red);font-size:.68rem;font-weight:900;font-style:normal;letter-spacing:.06em;text-transform:uppercase}
.quote-product[aria-pressed="true"] span{color:var(--soft)}

.quote-swatch{display:inline-block;width:12px;height:12px;margin-right:2px;border:1px solid rgba(255,255,255,.28);border-radius:50%}
.quote-field-wide{grid-column:1/-1;margin-top:24px}
.quote-info{margin-top:22px;padding:16px 18px;border-left:2px solid var(--red);background:rgba(255,255,255,.025)}
.quote-info small{display:block;margin-bottom:6px;color:var(--red);font-size:.63rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.quote-info p{margin:0;color:var(--soft);font-size:.8rem;line-height:1.55}
.quote-error{margin:0 0 18px;padding:13px 15px;color:#ffb3c1;border:1px solid rgba(245,30,70,.45);background:rgba(245,30,70,.1);font-size:.8rem;font-weight:700}
.quote-total-pendiente b{font-size:clamp(1.7rem,3vw,2.3rem);color:var(--white-soft)}
.quote-lines li.is-pendiente{color:var(--red)}
.quote-lines li.is-pendiente b{color:#ffb3c1;font-weight:800}
.quote-add[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.cart-badge{display:inline-block;margin-top:8px;padding:5px 9px;color:#ffb3c1;border:1px solid rgba(245,30,70,.4);border-radius:2px;background:rgba(245,30,70,.1);font-size:.65rem;font-weight:800;letter-spacing:.04em}
.cart-item-price.is-pendiente{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.cart-alerta{margin:0 0 18px;padding:12px 14px;color:var(--white-soft);border-left:2px solid var(--red);background:rgba(245,30,70,.08);font-size:.72rem;line-height:1.55}

@media(max-width:1050px){
  .quote-products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .quote-products{grid-template-columns:1fr}
  .quote-chip{flex:1 1 100%}
}
.cart-total-row.is-total.is-pendiente b{font-size:1.15rem;color:var(--white-soft);letter-spacing:.02em}

/* ============================================================================
   BANDA DEL COTIZADOR (landing y páginas de servicio)
   ========================================================================== */
.quote-band{position:relative;overflow:hidden;padding:96px 0;scroll-margin-top:104px;background:linear-gradient(135deg,#090909 0%,#150005 52%,#050505 100%);border-block:1px solid var(--line)}
.quote-band-glow{position:absolute;right:-14%;top:-40%;width:62vw;height:62vw;background:radial-gradient(circle,rgba(245,30,70,.3) 0,rgba(138,0,26,.12) 26%,transparent 66%);filter:blur(18px);pointer-events:none}
.quote-band-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:center;gap:7vw}
.quote-band-solo{grid-template-columns:minmax(0,1fr);max-width:820px}
.quote-band-copy h2{margin-bottom:20px;font-size:clamp(2.6rem,4.6vw,4.4rem)}
.quote-band-copy>p:not(.eyebrow){max-width:620px;margin-bottom:32px;color:var(--white-soft);font-size:clamp(1rem,1.25vw,1.15rem)}
.quote-band-actions{display:flex;flex-wrap:wrap;gap:12px}

.quote-band-shortcuts{display:grid;gap:2px;padding:26px;border:1px solid rgba(245,30,70,.32);background:rgba(13,13,13,.7);backdrop-filter:blur(12px)}
.quote-band-shortcuts small{margin-bottom:14px;color:var(--red);font-size:.64rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.quote-band-shortcuts a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);transition:padding .25s var(--ease),border .25s}
.quote-band-shortcuts a:last-child{border-bottom:0}
.quote-band-shortcuts b{color:var(--white);font-size:.92rem;font-weight:800;letter-spacing:-.01em}
.quote-band-shortcuts span{color:var(--muted);font-size:.72rem;font-weight:700;text-align:right;white-space:nowrap}
.quote-band-shortcuts a:hover{padding-left:10px;border-color:rgba(245,30,70,.5)}
.quote-band-shortcuts a:hover b{color:var(--red)}

/* ---- Página del cotizador ---- */
.quote-page-hero{padding-bottom:64px}
.quote-page-hero h1{max-width:760px}
body.service-page-body .quote-section{padding-top:64px}

@media(max-width:1050px){
  .quote-band{padding:80px 0}
  .quote-band-inner{grid-template-columns:1fr;gap:40px}
}
@media(max-width:760px){
  .quote-band{padding:64px 0}
  .quote-band-actions{display:grid;grid-template-columns:1fr}
  .quote-band-shortcuts{padding:20px}
  .quote-band-shortcuts a{flex-direction:column;gap:4px}
  .quote-band-shortcuts span{text-align:left}
  body.service-page-body .quote-section{padding-top:48px}
}

/* ---- Que el header fijo no tape el inicio de la sección al usar el menú ---- */
.hero,.section,.quote-band,.cta-section,.service-page-hero,.service-detail,.service-intent,.service-cta{scroll-margin-top:96px}
@media(max-width:760px){
  .hero,.section,.quote-band,.cta-section,.service-page-hero,.service-detail,.service-intent,.service-cta{scroll-margin-top:82px}
}
/* El carrito sigue alcanzable con el menú móvil abierto */
@media(max-width:760px){body.menu-open .header-actions{position:relative;z-index:102}}

/* ============================================================================
   MENÚ: en pantallas medianas los enlaces sí caben en el encabezado.
   Antes desaparecían entre 760 y 1050 px sin dejar ni el botón de menú.
   Los seis enlaces caben hasta ~840 px; abajo de 860 entra el desplegable.
   ========================================================================== */
@media(max-width:1050px){
  .site-header,.site-header.scrolled{width:100%;padding:0 20px}
  .site-nav{gap:16px;font-size:.8rem}
  .header-actions{margin-left:14px}
}
@media(max-width:860px){
  .menu-toggle{position:relative;z-index:102;display:block}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-nav{position:fixed;inset:0;z-index:101;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;margin-left:0;padding:80px 8vw;visibility:hidden;opacity:0;background:rgba(5,5,5,.97);backdrop-filter:blur(20px);transition:opacity .3s,visibility .3s}
  .site-nav.open{visibility:visible;opacity:1}
  .site-nav>a:not(.button){display:block;font-size:clamp(2rem,7vw,3.2rem);font-weight:800;letter-spacing:-.04em}
  .site-nav .button{margin-top:18px}
  body.menu-open .header-actions{position:relative;z-index:102}
}

/* ============================================================================
   GALERÍA — página completa con filtro y visor
   ========================================================================== */
.gal-hero{padding-bottom:56px}
.gal-hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr);align-items:end;gap:6vw}
.gal-hero h1{max-width:720px}
.gal-conteo{display:grid;justify-items:end;gap:4px;margin:0 0 8px;text-align:right}
.gal-conteo b{color:var(--white);font-size:clamp(2rem,3.4vw,2.8rem);font-weight:850;line-height:1;letter-spacing:-.04em}
.gal-conteo span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

.gal-section{padding-top:56px}
.gal-filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px;padding-bottom:30px;border-bottom:1px solid var(--line)}
.gal-filtros button{padding:11px 16px;color:var(--soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.02);font-size:.76rem;font-weight:800;letter-spacing:.03em;cursor:pointer;transition:color .25s,border .25s,background .25s,transform .25s var(--ease)}
.gal-filtros button:hover{color:var(--white);border-color:#4a4a4a;transform:translateY(-2px)}
.gal-filtros button[aria-pressed="true"]{color:var(--white);border-color:var(--red);background:rgba(245,30,70,.14);box-shadow:inset 0 0 0 1px rgba(245,30,70,.3)}

.gal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gal-item{position:relative;margin:0;display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012) 46%,rgba(255,255,255,0));transition:border-color .3s,box-shadow .3s,transform .35s var(--ease)}
.gal-item::after{content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.gal-item:hover{transform:translateY(-5px);border-color:rgba(245,30,70,.45);box-shadow:0 28px 64px rgba(0,0,0,.55)}
.gal-abrir{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--card);cursor:zoom-in}
.gal-abrir img{display:block;width:100%;height:300px;object-fit:cover;transition:transform .7s var(--ease),filter .4s}
.gal-abrir::after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,transparent,rgba(4,4,4,.62));pointer-events:none;transition:opacity .4s}
.gal-item:hover .gal-abrir img{transform:scale(1.055);filter:brightness(.8)}
.gal-abrir:focus-visible{outline:2px solid var(--white);outline-offset:-3px}
.gal-etiqueta{position:absolute;left:12px;top:12px;padding:6px 10px;color:var(--white);font-size:.58rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;background:rgba(5,5,5,.62);border:1px solid rgba(255,255,255,.16);border-radius:2px;backdrop-filter:blur(8px)}
.gal-lupa{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:38px;height:38px;color:var(--white);background:rgba(5,5,5,.7);border:1px solid rgba(255,255,255,.18);border-radius:50%;backdrop-filter:blur(10px);font-size:.95rem;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s var(--ease)}
.gal-item:hover .gal-lupa,.gal-abrir:focus-visible .gal-lupa{opacity:1;transform:none}
.gal-item figcaption{display:grid;align-content:start;gap:7px;padding:18px 18px 22px}
.gal-item small{color:var(--red);font-size:.63rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.gal-titulo{color:var(--white);font-size:1.12rem;font-weight:800;letter-spacing:-.02em;line-height:1.25}
.gal-desc{color:var(--muted);font-size:.82rem;line-height:1.6}
.gal-destacado{grid-column:span 2}
.gal-destacado .gal-abrir img{height:430px}
.gal-destacado figcaption{padding:22px 24px 26px}
.gal-destacado .gal-titulo{font-size:1.5rem}
.gal-destacado .gal-desc{max-width:62ch;font-size:.88rem}
.gal-vacio{margin-top:40px;color:var(--muted);text-align:center}

/* ---- Visor ampliado ---- */
body.gal-abierto{overflow:hidden}
.gal-visor{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:5vh 6vw;background:rgba(3,3,3,.94);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.gal-visor.open{opacity:1;visibility:visible}
.gal-visor-inner{display:grid;gap:18px;margin:0;max-width:min(1100px,100%);max-height:90vh}
.gal-visor-inner img{width:auto;max-width:100%;max-height:72vh;margin-inline:auto;object-fit:contain;border:1px solid rgba(255,255,255,.1);box-shadow:0 30px 90px rgba(0,0,0,.7)}
.gal-visor figcaption{display:grid;gap:6px;text-align:center}
.gal-visor figcaption small{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.12em}
.gal-visor figcaption strong{color:var(--white);font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.gal-visor figcaption span{color:var(--soft);font-size:.85rem}
.gal-cerrar,.gal-nav{position:absolute;display:grid;place-items:center;width:48px;height:48px;color:var(--white);border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.05);font-size:1.2rem;cursor:pointer;transition:color .25s,border .25s,background .25s}
.gal-cerrar:hover,.gal-nav:hover{color:var(--red);border-color:var(--red);background:rgba(245,30,70,.12)}
.gal-cerrar{top:22px;right:22px}
.gal-nav{top:50%;transform:translateY(-50%);font-size:1.7rem;line-height:0}
.gal-prev{left:18px}
.gal-next{right:18px}

@media(max-width:1050px){
  .gal-hero-grid{grid-template-columns:1fr;gap:26px}
  .gal-conteo{justify-items:start;text-align:left}
  .gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal-abrir img{height:250px}
  .gal-destacado .gal-abrir img{height:340px}
  .gal-destacado .gal-titulo{font-size:1.32rem}
}
@media(max-width:760px){
  .gal-grid{grid-template-columns:1fr;gap:22px}
  .gal-abrir img,.gal-destacado .gal-abrir img{height:250px}
  .gal-destacado{grid-column:auto}
  .gal-destacado figcaption{padding:18px 18px 22px}
  .gal-destacado .gal-titulo{font-size:1.18rem}
  .gal-destacado .gal-desc{font-size:.82rem}
  .gal-lupa{opacity:1;transform:none}
  .gal-filtros{gap:6px;margin-bottom:26px}
  .gal-filtros button{flex:1 1 calc(50% - 3px);padding:10px 12px;font-size:.72rem}
  .gal-visor{padding:0}
  .gal-visor-inner{gap:14px;padding:70px 16px 26px}
  .gal-visor-inner img{max-height:58vh}
  .gal-cerrar{top:14px;right:14px;width:42px;height:42px}
  .gal-nav{width:42px;height:42px}
  .gal-prev{left:10px}
  .gal-next{right:10px}
}
/* La tarjeta completa de la galería de inicio es un enlace */
a.project-card{display:block;color:inherit}
.project-link{align-self:flex-start;color:var(--white);font-size:.8rem;font-weight:800;border-bottom:1px solid var(--red);padding-bottom:3px}
a.project-card:hover .project-link{color:var(--red)}
.section-link{display:inline-block;margin-top:10px;color:var(--white);font-size:.82rem;font-weight:800;border-bottom:1px solid var(--red);padding-bottom:3px}
.section-link:hover{color:var(--red)}

/* ============================================================================
   FORMULARIO DE CONTACTO Y BOTÓN FLOTANTE DE WHATSAPP
   ========================================================================== */
.form-acciones{display:flex;flex-wrap:wrap;gap:9px}
.form-enviar{gap:10px}
.form-enviar svg{width:17px;height:17px;fill:currentColor;stroke:none}

.wa-fab{position:fixed;right:22px;bottom:22px;z-index:115;display:inline-flex;align-items:center;gap:10px;height:54px;padding:0 20px 0 17px;color:var(--white);background:#1fb955;border:1px solid rgba(255,255,255,.14);border-radius:40px;box-shadow:0 14px 40px rgba(31,185,85,.32);font-size:.84rem;font-weight:800;letter-spacing:.01em;transition:transform .25s var(--ease),box-shadow .25s,opacity .25s,visibility .25s}
.wa-fab svg{width:23px;height:23px;fill:currentColor;stroke:none}
.wa-fab:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(31,185,85,.45)}
.wa-fab:active{transform:translateY(0) scale(.97)}
.wa-fab:focus-visible{outline:2px solid var(--white);outline-offset:4px}
.wa-fab.oculto{opacity:0;visibility:hidden;transform:translateY(12px)}

@media(max-width:760px){
  .form-acciones{display:grid;grid-template-columns:1fr;width:100%}
  .wa-fab{right:16px;bottom:16px;height:50px;padding:0 16px}
  .wa-fab b{display:none}
  .wa-fab{padding:0;width:50px;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.wa-fab{transition:opacity .01ms,visibility .01ms}}

/* ============================================================================
   COTIZADOR: controles de los formularios completos
   ========================================================================== */
.quote-espera{display:grid;gap:7px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.quote-espera b{color:var(--white-soft);font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:850;line-height:1.1;letter-spacing:-.03em}
.quote-espera span{color:var(--red);font-size:.8rem;font-weight:700}

.quote-alta{margin-top:22px;padding:22px;border:1px solid var(--line);background:rgba(255,255,255,.022)}
.quote-alta .quote-group:first-of-type{margin-top:0}
.quote-mas{width:100%;margin-top:18px}
.quote-chip-mini{padding:9px 13px;font-size:.72rem}

.quote-paleta{display:flex;flex-wrap:wrap;gap:7px}
.quote-color{width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s,border .2s}
.quote-color:hover{transform:scale(1.14)}
.quote-color[aria-pressed="true"]{border-color:var(--red);box-shadow:0 0 0 2px var(--black),0 0 0 4px var(--red)}
.quote-color:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.quote-color-nombre{margin:10px 0 0;color:var(--muted);font-size:.74rem;font-weight:700}

.quote-lista{display:grid;gap:6px;margin:16px 0 0;padding:0;list-style:none}
.quote-lista li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;color:var(--white-soft);border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:.8rem;font-weight:600}
.quote-quitar{padding:0;color:var(--muted);border:0;background:transparent;font-size:.67rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .2s}
.quote-quitar:hover{color:var(--red)}

.quote-field select{width:100%;height:50px;padding:0 14px;color:var(--white);background:#111;border:1px solid #303030;border-radius:0;outline:0;font-weight:600;letter-spacing:0;text-transform:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px;background-size:5px 5px;background-repeat:no-repeat;transition:border .25s,box-shadow .25s}
.quote-field select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(245,30,70,.1)}

@media(max-width:760px){
  .quote-alta{padding:16px 14px}
  .quote-color{width:34px;height:34px}
  .quote-lista li{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ============================================================================
   ASISTENTE GUIADO
   ----------------------------------------------------------------------------
   El lanzador va encima del botón de WhatsApp, en la misma columna derecha.
   ========================================================================== */
.chat-fab{position:fixed;right:22px;bottom:88px;z-index:118;display:grid;place-items:center;width:54px;height:54px;color:var(--white);background:var(--red);border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 14px 40px rgba(245,30,70,.34);cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,opacity .25s,visibility .25s,background .25s}
.chat-fab:hover{transform:translateY(-3px);background:#ff3157;box-shadow:0 20px 50px rgba(245,30,70,.46)}
.chat-fab:active{transform:translateY(0) scale(.96)}
.chat-fab:focus-visible{outline:2px solid var(--white);outline-offset:4px}
.chat-fab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:opacity .2s,transform .25s var(--ease)}
.chat-fab circle{fill:currentColor;stroke:none}
.chat-ico-cerrar{position:absolute;opacity:0;transform:rotate(-90deg)}
.chat-fab.abierto .chat-ico-abrir{opacity:0;transform:rotate(90deg)}
.chat-fab.abierto .chat-ico-cerrar{opacity:1;transform:none}
.chat-fab.oculto{opacity:0;visibility:hidden;transform:translateY(12px)}

.chat-saludo{position:fixed;right:88px;bottom:96px;z-index:117;max-width:210px;padding:12px 34px 12px 15px;color:var(--white);background:var(--card);border:1px solid rgba(245,30,70,.4);border-radius:2px;box-shadow:0 16px 44px rgba(0,0,0,.55);font-size:.82rem;font-weight:700;line-height:1.4;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s,visibility .35s,transform .35s var(--ease)}
.chat-saludo.visible{opacity:1;visibility:visible;transform:none}
.chat-saludo-x{position:absolute;top:6px;right:6px;width:22px;height:22px;color:var(--muted);border:0;background:transparent;font-size:.7rem;cursor:pointer}
.chat-saludo-x:hover{color:var(--red)}

.chat-panel{position:fixed;right:22px;bottom:154px;z-index:119;display:flex;flex-direction:column;width:min(370px,calc(100vw - 44px));max-height:min(560px,calc(100vh - 190px));background:var(--black-2);border:1px solid var(--line);border-radius:3px;box-shadow:0 30px 90px rgba(0,0,0,.66);opacity:0;visibility:hidden;transform:translateY(14px) scale(.98);transform-origin:bottom right;transition:opacity .3s,visibility .3s,transform .3s var(--ease)}
.chat-panel.open{opacity:1;visibility:visible;transform:none}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(160deg,rgba(245,30,70,.14),transparent)}
.chat-head strong{display:block;color:var(--white);font-size:.95rem;font-weight:800;letter-spacing:-.01em}
.chat-head small{display:block;margin-top:3px;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.05em}
.chat-cerrar{display:grid;place-items:center;width:32px;height:32px;color:var(--white-soft);border:1px solid var(--line);border-radius:2px;background:transparent;font-size:.8rem;cursor:pointer;transition:color .25s,border .25s}
.chat-cerrar:hover{color:var(--red);border-color:var(--red)}

.chat-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:18px}
.chat-msg{max-width:84%;padding:11px 14px;font-size:.83rem;line-height:1.5;border-radius:3px}
.chat-bot{align-self:flex-start;color:var(--white-soft);background:rgba(255,255,255,.045);border:1px solid var(--line)}
.chat-yo{align-self:flex-end;color:var(--white);background:rgba(245,30,70,.16);border:1px solid rgba(245,30,70,.4);font-weight:700}
.chat-puntos{display:flex;gap:5px;padding:14px}
.chat-puntos i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chatlat 1.1s infinite}
.chat-puntos i:nth-child(2){animation-delay:.15s}
.chat-puntos i:nth-child(3){animation-delay:.3s}
@keyframes chatlat{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.chat-acciones{display:grid;gap:6px;padding:0 18px}
.chat-acciones:empty{padding:0}
.chat-opcion{padding:11px 14px;color:var(--white-soft);border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.02);font-size:.79rem;font-weight:700;text-align:left;cursor:pointer;transition:color .2s,border .2s,background .2s,transform .2s var(--ease)}
.chat-opcion:hover{color:var(--white);border-color:var(--red);background:rgba(245,30,70,.1);transform:translateX(3px)}
.chat-pie{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px 14px}
.chat-link{flex:0 0 auto;padding:0;color:var(--muted);border:0;background:transparent;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .2s}
.chat-link:hover{color:var(--red)}
.chat-aviso{color:var(--muted);font-size:.63rem;font-weight:600;line-height:1.35;letter-spacing:.01em}
.chat-aviso:empty{display:none}

/* --- Conversación libre (modo IA) ------------------------------------- */
.chat-msg strong{color:var(--white);font-weight:800}
.chat-ia .chat-acciones{margin-top:10px}
.chat-ia .chat-acciones:not(:empty){padding-bottom:2px}

.chat-acciones-linea{display:grid;gap:6px;padding:0;margin:1px 0 3px}
.chat-sug{display:grid;gap:6px;margin-top:4px}
.chat-chip{padding:9px 13px;color:var(--white-soft);border:1px dashed rgba(255,255,255,.16);border-radius:2px;background:transparent;font-family:inherit;font-size:.76rem;font-weight:700;text-align:left;cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s var(--ease)}
.chat-chip:hover{color:var(--white);border-style:solid;border-color:var(--red);background:rgba(245,30,70,.08);transform:translateX(3px)}

.chat-form{display:flex;align-items:flex-end;gap:8px;margin:12px 18px 0;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:3px;background:rgba(255,255,255,.03);transition:border-color .2s}
.chat-form:focus-within{border-color:rgba(245,30,70,.55)}
.chat-form.esperando{opacity:.55}
.chat-form[hidden]{display:none}
.chat-input{flex:1;min-height:22px;max-height:104px;padding:4px 0;color:var(--white);border:0;background:transparent;font-family:inherit;font-size:.83rem;line-height:1.45;resize:none;overflow-y:auto}
.chat-input::placeholder{color:var(--muted)}
.chat-input:focus{outline:0}
.chat-enviar{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;color:var(--white);border:0;border-radius:2px;background:var(--red);cursor:pointer;transition:background .2s,transform .2s var(--ease),opacity .2s}
.chat-enviar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-enviar:hover{background:#ff3157;transform:translateX(2px)}
.chat-enviar:disabled{opacity:.5;cursor:default;transform:none}
.chat-enviar:focus-visible{outline:2px solid var(--white);outline-offset:2px}

@media(max-width:760px){
  .chat-fab{right:16px;bottom:76px;width:50px;height:50px}
  .chat-saludo{right:76px;bottom:82px;max-width:170px;font-size:.76rem}
  .chat-panel{right:12px;left:12px;bottom:136px;width:auto;max-height:calc(100vh - 170px)}
  .chat-form{margin:10px 14px 0}
  .chat-pie{padding:8px 14px 12px}
  .chat-aviso{font-size:.6rem}
  body.chat-abierto .wa-fab{opacity:0;visibility:hidden}
}
@media(prefers-reduced-motion:reduce){
  .chat-puntos i{animation:none}
  .chat-fab,.chat-panel,.chat-saludo{transition:opacity .01ms,visibility .01ms}
}


/* ============================================================================
   CONTACTO — dirección, horario y mapa
   ========================================================================== */
.contact-details a{color:inherit;text-decoration:none;transition:color .2s}
.contact-details a:hover{color:var(--red)}
.contact-mini{display:inline-flex;align-items:center;gap:5px;margin-top:8px;color:var(--red);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.contact-mini:hover{color:var(--white)}

/* El mapa va de lado a lado, debajo de las dos columnas: metido en la columna
   angosta se veía diminuto y dejaba un hueco enorme a la derecha. */
.mapa-banda{margin-top:70px}
.contact-mapa{position:relative;aspect-ratio:21/7;min-height:280px;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:var(--black-2)}

/* Google sirve el mapa en claro. Invertir y girar el tono lo pasa a oscuro sin
   dejar los letreros ilegibles, que es lo que pasaba antes. */
.contact-mapa iframe{position:relative;z-index:1;display:block;width:100%;height:100%;border:0;filter:invert(88%) hue-rotate(180deg) saturate(.85) contrast(1.15) brightness(1.15);transition:filter .35s}
.contact-mapa:hover iframe{filter:none}
.contact-mapa.sin-mapa iframe{display:none}

/* Se ve si el mapa no carga. */
.mapa-respaldo{position:absolute;inset:0;z-index:0;display:grid;place-content:center;gap:14px;padding:22px;text-align:center}
.mapa-respaldo p{margin:0;color:var(--white);font-size:.86rem;font-weight:700;line-height:1.5}

@media(max-width:1050px){
  .mapa-banda{margin-top:55px}
  .contact-mapa{aspect-ratio:16/9}
}
@media(max-width:760px){
  .mapa-banda{margin-top:45px}
  .contact-mapa{aspect-ratio:4/3;min-height:240px}
}
@media(prefers-reduced-motion:reduce){
  .contact-mapa iframe{transition:none}
}


/* ============================================================================
   COTIZADOR — que el resumen no se pierda al hacer scroll
   ========================================================================== */

/* En escritorio el panel ya se queda pegado arriba. Si el pedido crece y el
   panel no cabe en la pantalla, se desplaza por dentro, y el botón se queda
   pegado al fondo del panel para que nunca haya que buscarlo. */
.quote-panel.tiene-scroll .quote-add{position:sticky;bottom:0;z-index:2;margin-top:4px}
.quote-panel.tiene-scroll .quote-add::before{content:"";position:absolute;inset:-16px -30px -10px;z-index:-1;background:rgba(11,11,11,.72);backdrop-filter:blur(8px);pointer-events:none}
.quote-panel::-webkit-scrollbar{width:6px}
.quote-panel::-webkit-scrollbar-thumb{background:rgba(245,30,70,.4);border-radius:3px}

/* En pantallas chicas el panel queda al final del formulario: esta barra trae
   el estado y el botón siempre a la mano, y se esconde sola cuando el panel
   de verdad ya se ve. */
.quote-bar{position:fixed;left:0;right:0;bottom:0;z-index:116;display:flex;align-items:center;gap:14px;padding:11px 16px calc(11px + env(safe-area-inset-bottom));background:rgba(10,10,10,.96);border-top:1px solid rgba(245,30,70,.4);box-shadow:0 -14px 40px rgba(0,0,0,.6);backdrop-filter:blur(14px);transform:translateY(0);transition:transform .28s var(--ease)}
.quote-bar[hidden]{display:none}
.quote-bar-info{display:grid;gap:2px;min-width:0;flex:1}
.quote-bar-info small{color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quote-bar-info b{color:var(--white);font-size:.98rem;font-weight:800;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quote-bar-info b.es-aviso{color:var(--soft);font-size:.78rem;font-weight:700;letter-spacing:0}
.quote-bar-add{flex:0 0 auto;height:46px;padding:0 20px;font-size:.82rem}
.quote-bar-add:disabled{opacity:.45;cursor:default}

/* Deja aire abajo para que la barra no tape el final de la página. */
@media(max-width:1050px){
  body.con-barra-cotizador{padding-bottom:74px}
}

/* Los botones flotantes se hacen a un lado para no encimarse con la barra. */
body.barra-cotizador-visible .wa-fab{bottom:88px}
body.barra-cotizador-visible .chat-fab{bottom:150px}
body.barra-cotizador-visible .chat-saludo{bottom:156px}

/* Si hay un panel abierto encima, la barra se baja sola. */
body.cart-open .quote-bar,
body.menu-open .quote-bar,
body.chat-abierto .quote-bar,
body.gal-abierto .quote-bar{transform:translateY(110%)}

@media(max-width:760px){
  .quote-bar{gap:10px;padding:9px 13px calc(9px + env(safe-area-inset-bottom))}
  .quote-bar-add{height:42px;padding:0 15px;font-size:.76rem}
  body.barra-cotizador-visible .wa-fab{bottom:78px}
  body.barra-cotizador-visible .chat-fab{bottom:146px}
}
@media(prefers-reduced-motion:reduce){
  .quote-bar{transition:none}
}


/* ============================================================================
   COTIZADOR — categorías y productos ilustrados
   ========================================================================== */

/* --- botones de categoría: el dibujo a la izquierda del nombre --- */
.quote-chip{display:flex;align-items:center;gap:11px}
.quote-chip-ico{display:grid;place-items:center;flex:0 0 auto;width:34px;height:26px;color:var(--muted);transition:color .25s,transform .25s var(--ease)}
.quote-chip-ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.quote-chip-txt{min-width:0}
.quote-chip:hover .quote-chip-ico{color:var(--white);transform:translateX(1px)}
.quote-chip[aria-pressed="true"] .quote-chip-ico{color:var(--red)}

/* --- tarjetas de producto: foto o dibujo arriba --- */
.quote-product{gap:0;padding:0;overflow:hidden}
.quote-product-img{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#101010;border-bottom:1px solid var(--line)}
.quote-product-img img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.04);transition:filter .35s,transform .45s var(--ease)}
.quote-product:hover .quote-product-img img,
.quote-product[aria-pressed="true"] .quote-product-img img{filter:none;transform:scale(1.04)}

/* Cuando no hay foto, el dibujo se centra sobre un fondo con un toque de rojo,
   para que la tarjeta no se vea vacía al lado de las que sí traen foto. */
.quote-product-img.es-dibujo{display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 20%,rgba(245,30,70,.13),rgba(255,255,255,.02) 62%)}
.quote-product-img.es-dibujo svg{width:56px;height:40px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s,transform .4s var(--ease)}
.quote-product:hover .quote-product-img.es-dibujo svg{stroke:var(--white);transform:translateY(-2px)}
.quote-product[aria-pressed="true"] .quote-product-img.es-dibujo svg{stroke:var(--red)}

/* El texto va debajo, con su propio aire. */
.quote-product strong,
.quote-product > span:not(.quote-product-img),
.quote-product em{padding:0 14px}
.quote-product strong{padding-top:13px}
.quote-product span{padding-top:5px}
.quote-product em{display:block;padding-top:8px;padding-bottom:14px}

@media(max-width:1050px){
  .quote-product-img.es-dibujo svg{width:50px;height:36px}
}
@media(max-width:760px){
  .quote-product{grid-template-columns:96px 1fr;align-items:start}
  .quote-product-img{aspect-ratio:1/1;height:100%;border-bottom:0;border-right:1px solid var(--line)}
  .quote-product-img.es-dibujo svg{width:42px;height:30px}
  .quote-product strong{grid-column:2;padding-top:14px}
  .quote-product > span:not(.quote-product-img){grid-column:2}
  .quote-product em{grid-column:2}
  /* Sin columna explícita el navegador la manda a la 2, junto al texto. */
  .quote-product-img{grid-column:1;grid-row:1 / span 3}
  /* La foto llena su columna de 96 px sin taparse con el texto. */
  .quote-product-img{aspect-ratio:auto;width:100%;height:auto;min-height:96px;align-self:stretch}
}

/* Aire entre el menú de productos y la foto grande del producto. */
.quote-vitrina{margin-top:26px}
@media(prefers-reduced-motion:reduce){
  .quote-product-img img,.quote-product-img.es-dibujo svg,.quote-chip-ico{transition:none}
  .quote-product:hover .quote-product-img img{transform:none}
}

/* Con el chat de GHL prendido, el botón de WhatsApp se pasa a la izquierda
   para no encimarse con la burbuja del chat, que GHL pone a la derecha.
   La clase la agrega ghl.js solo cuando el chat sí se carga. */
.con-chat-ghl .wa-fab{right:auto;left:22px}
@media(max-width:760px){.con-chat-ghl .wa-fab{left:16px;right:auto}}

/* ============================================================================
   HOJA DE COTIZACIÓN PARA IMPRIMIR / GUARDAR COMO PDF
   ----------------------------------------------------------------------------
   Vive escondida hasta que se manda a imprimir. En papel el sitio entero se
   oculta y solo queda la hoja, en blanco y negro sobre blanco: el fondo oscuro
   del sitio se comería el tóner y se vería sucio en pantalla del cliente.
   ========================================================================== */
.hoja-cotizacion{display:none}

@media print{
  body.imprimiendo-hoja>*{display:none!important}
  body.imprimiendo-hoja .hoja-cotizacion{display:block!important}
  body.imprimiendo-hoja,html:has(body.imprimiendo-hoja){background:#fff!important;overflow:visible!important;height:auto!important;min-height:0!important}

  @page{size:letter;margin:14mm 12mm}

  .hoja-cotizacion{
    color:#151515;background:#fff;
    font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
    font-size:11pt;line-height:1.5;
  }
  .hoja-cotizacion *{box-sizing:border-box}

  .hoja-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
  /* Logotipo original a color, el mismo de tu membrete. */
  .hoja-logo{height:46px;width:auto}
  .hoja-folio{text-align:right}
  .hoja-folio small{display:block;color:#C8102E;font-size:8pt;font-weight:800;letter-spacing:.09em}
  .hoja-folio strong{display:block;font-size:17pt;font-weight:800;letter-spacing:-.02em;line-height:1.2}
  .hoja-folio span{display:block;color:#666;font-size:8pt}
  .hoja-regla{border-top:2.5px solid #C8102E;margin:9px 0 16px}

  .hoja-eti{color:#888;font-size:7.5pt;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}
  .hoja-datos{display:flex;gap:16px;padding-bottom:13px;margin-bottom:16px;border-bottom:1px solid #ddd}
  .hoja-datos>div{flex:1;min-width:0}
  .hoja-datos b{font-size:11pt;font-weight:700}
  .hoja-datos span{font-size:10pt}

  .hoja-seccion{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
  .hoja-cuenta{color:#888;font-size:8pt}

  .hoja-tabla{width:100%;border-collapse:collapse}
  .hoja-tabla th{background:#f3f3f3;color:#888;font-size:7.5pt;font-weight:800;letter-spacing:.1em;
    text-transform:uppercase;text-align:left;padding:6px 10px;border:1px solid #ddd}
  .hoja-tabla td{padding:9px 10px;border:1px solid #ddd;vertical-align:top;font-size:10pt}
  .hoja-tabla tr{break-inside:avoid;page-break-inside:avoid}
  .hoja-importe{text-align:right;white-space:nowrap}
  .hoja-detalle{color:#666;font-size:8.5pt;margin-top:3px;line-height:1.45}
  .hoja-pend{color:#C8102E;font-size:8.5pt;margin-top:3px}
  .hoja-pordef{color:#C8102E;font-weight:700}

  .hoja-totales{width:250px;margin:14px 0 0 auto;break-inside:avoid}
  .hoja-tot-fila{display:flex;justify-content:space-between;font-size:10pt;margin-bottom:4px}
  .hoja-tot-final{display:flex;justify-content:space-between;align-items:baseline;
    border-top:1.5px solid #151515;padding-top:6px;margin-top:6px;
    color:#C8102E;font-size:13pt;font-weight:800}
  .hoja-parcial{margin:6px 0 0;color:#666;font-size:8pt;line-height:1.5}

  .hoja-obs{margin-top:18px;break-inside:avoid}
  .hoja-obs p{margin:0;font-size:10pt}
  .hoja-renglon{border-bottom:1px solid #ddd;height:17px}

  .hoja-condiciones{margin-top:16px;padding:10px 12px;border:1px solid #ddd;border-radius:3px;break-inside:avoid}
  .hoja-condiciones ul{margin:0;padding-left:15px}
  .hoja-condiciones li{color:#333;font-size:8.5pt;line-height:1.6;margin-bottom:2px}
  .hoja-condiciones li::marker{color:#C8102E}

  .hoja-cierre{break-inside:avoid;page-break-inside:avoid;margin-top:34px}
  .hoja-firmas{display:flex;justify-content:space-between;break-inside:avoid}
  .hoja-firmas>div{width:45%;border-top:1px solid #151515;padding-top:6px;text-align:center;font-size:9pt}

  .hoja-contacto{margin-top:16px;text-align:center;color:#555;font-size:8pt}
  .hoja-pie{margin:4px 0 0;text-align:center;color:#999;font-size:7.5pt}
}

/* Iconografía del manual de identidad (03.7): una sola tinta, blanco sobre negro o rojo */
.service-top{align-items:center}.service-icon{width:56px;height:56px;opacity:.95;transition:transform .35s var(--ease)}.service-card:hover .service-icon{transform:translateY(-4px) rotate(-6deg)}
.marquee-icons div{display:flex;align-items:center;gap:22px}.marquee-icons img{width:34px;height:34px;flex:none}
.quote-icon{display:block;width:64px;height:64px;margin-bottom:22px}
.quote-band-shortcuts a{align-items:center}.quote-band-shortcuts b{display:inline-flex;align-items:center;gap:12px}.short-icon{width:26px;height:26px;flex:none}
.stat-icon{display:block;width:44px;height:44px;margin-bottom:12px}
.step-icon{display:block;width:44px;height:44px;margin-bottom:16px}
.contact-details small{display:flex;align-items:center;gap:8px}.contact-icon{width:22px;height:22px;flex:none}
.hero-service-icon{display:block;width:72px;height:72px;margin-bottom:26px}
@media(max-width:760px){.service-icon{width:48px;height:48px}.marquee-icons img{width:28px;height:28px}.stats div .stat-icon{grid-column:1/-1}.hero-service-icon{width:56px;height:56px;margin-bottom:20px}}

/* TikTok */
.tiktok-link{display:inline-flex;align-items:center;gap:10px;color:var(--white);font-weight:700}.tiktok-link svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tiktok-link:hover{color:var(--red)}
.footer-top .tiktok-link{padding:10px 14px;border:1px solid var(--line);font-size:.85rem}.footer-top .tiktok-link:hover{border-color:var(--red)}

/* Cotizador: botones que explican qué falta, ayuda y vitrina de fotos */
.is-bloqueado{opacity:.45;cursor:help;transform:none!important;box-shadow:none!important}
.falta-dato{animation:faltaDato .5s ease 2;border-radius:6px;outline:2px solid var(--red);outline-offset:6px}
.falta-dato input,.falta-dato textarea,.falta-dato select{border-color:var(--red)!important}
@keyframes faltaDato{0%,100%{transform:none}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.quote-help{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:8px 14px 8px 8px;color:var(--white);background:transparent;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;transition:border-color .2s}
.quote-help span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;font-weight:900}
.quote-help:hover{border-color:var(--red)}
.quote-guide{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:16px;background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}
.quote-guide.show{display:grid}
.quote-guide-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:30px;border:1px solid rgba(245,30,70,.4);background:var(--card)}
.quote-guide-card h3{margin:6px 0 20px;font-size:1.7rem}
.quote-guide-card ol{display:grid;gap:16px;margin:0 0 24px;padding:0;list-style:none}
.quote-guide-card li{display:grid;grid-template-columns:34px 1fr;gap:12px}
.quote-guide-card li>span{color:var(--red);font-size:.8rem;font-weight:900;padding-top:3px}
.quote-guide-card li b{display:block;margin-bottom:4px}
.quote-guide-card li p{margin:0;color:var(--soft);font-size:.9rem}
.quote-guide-close{position:absolute;right:14px;top:12px;width:34px;height:34px;color:var(--white);background:none;border:0;font-size:1rem;cursor:pointer}
.quote-guide-ok{width:100%}
body.guia-abierta{overflow:hidden}
.quote-show{position:relative;margin:0 0 26px;overflow:hidden;border:1px solid var(--line);background:#000;aspect-ratio:4/3}
.quote-show-track{display:flex;height:100%;transition:transform .6s var(--ease)}
.quote-show figure{position:relative;flex:0 0 100%;height:100%;margin:0}
.quote-show img{width:100%;height:100%;object-fit:cover}
.quote-show figcaption{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;color:#fff;background:rgba(5,5,5,.72);backdrop-filter:blur(8px);font-size:.75rem;font-weight:800;letter-spacing:.04em}
.quote-show figcaption b{color:var(--red)}
.quote-show-dots{position:absolute;right:14px;bottom:20px;display:flex;gap:6px}
.quote-show-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer}
.quote-show-dots button[aria-current="true"]{width:24px;border-radius:5px;background:var(--red)}
.quote-show-nav{position:absolute;top:50%;width:40px;height:40px;margin-top:-20px;color:#fff;background:rgba(5,5,5,.55);border:0;font-size:1.1rem;cursor:pointer}
.quote-show-nav.prev{left:10px}.quote-show-nav.next{right:10px}
@media(max-width:760px){.quote-show{aspect-ratio:4/3}.quote-show-nav{display:none}.quote-guide-card{padding:22px}}
.quote-iva{margin:-6px 0 14px;color:var(--soft);font-size:.82rem}.quote-iva b{color:var(--white)}

/* Segundo botón: agregar con diseño distinto */
.quote-add.quote-add-otro{margin-top:10px}
.quote-panel.tiene-scroll .quote-add.quote-add-otro{position:static}
/* Tabla de medidas de las prendas (ventana emergente) */
.quote-medidas-btn{display:flex;align-items:center;gap:8px;width:100%;margin:6px 0 18px;padding:12px 14px;color:var(--white);background:#111;border:1px solid var(--line);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-align:left;cursor:pointer;transition:border .25s}
.quote-medidas-btn:hover{border-color:var(--red)}.quote-medidas-btn span{color:var(--red);font-weight:900;font-size:1rem}
.quote-medidas-fondo{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
body.quote-medidas-abierta{overflow:hidden}
.quote-medidas{width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#111;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,.6)}
.quote-medidas-cab{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#111;border-bottom:1px solid var(--line)}
.quote-medidas-cab h3{margin:0;font-size:1rem;letter-spacing:-.01em}
.quote-medidas-x{flex:none;width:40px;height:40px;color:var(--white);background:transparent;border:1px solid var(--line);font-size:1.4rem;line-height:1;cursor:pointer}
.quote-medidas-x:hover{border-color:var(--red);color:var(--red)}
.quote-medidas-nota{margin:14px 16px 12px;color:var(--soft);font-size:.74rem;line-height:1.5}
.quote-medidas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;padding:0 16px 18px}
@media (max-width:600px){.quote-medidas-fondo{padding:0;align-items:stretch}.quote-medidas{max-height:100vh;height:100%;border:0}}
.quote-medidas table{width:100%;border-collapse:collapse;font-size:.74rem}
.quote-medidas caption{text-align:left;padding:0 0 6px;color:var(--white);font-size:.78rem}
.quote-medidas caption span{color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:.06em}
.quote-medidas th{padding:6px 8px;text-align:left;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--red)}
.quote-medidas td{padding:7px 8px;color:var(--white-soft);border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}
.quote-medidas td small{display:block;color:var(--muted);font-size:.62rem;font-weight:600}
/* Colores de vinil sobre pedido: borde gris punteado discreto, y aire antes de los campos de medida */
.quote-color.quote-color-pedido{outline:1.5px dashed #6e6e6e;outline-offset:3px}
.quote-color.quote-color-pedido[aria-pressed="true"]{outline:none}
.quote-paleta{gap:14px 12px}
.quote-group + .quote-grid{margin-top:22px}

/* ============================================================================
   BARRA DEL LOGO al bajar la página: el fondo negro va de lado a lado
   de la pantalla; el logo y los botones se quedan en su lugar.
   ========================================================================== */
.site-header::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;background:transparent;border-bottom:1px solid transparent;transition:background .3s,border-color .3s;pointer-events:none}
.site-header.scrolled{background:transparent;border-color:transparent;backdrop-filter:none}
.site-header.scrolled::before{background:rgba(5,5,5,.82);border-bottom-color:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}

/* ============================================================================
   RUEDA DE LA PORTADA: close-up del dragón impreso (muestra el detalle de la
   impresión). La foto llena toda la rueda.
   ========================================================================== */
.floating-badge.badge-foto{padding:0;gap:0;overflow:hidden;background:#0d0d0d;border:2px solid rgba(245,30,70,.55)}
.floating-badge.badge-foto img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}

/* ============================================================================
   BOTÓN "REVISAR TALLAS": pastilla roja chica, distinta a las opciones,
   para que se note sin verse exagerada.
   ========================================================================== */
button.quote-medidas-btn{display:inline-flex;align-items:center;gap:7px;width:auto;margin:12px 0 20px;padding:8px 16px 8px 13px;color:#fff;background:var(--red);border:0;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.03em;line-height:1;box-shadow:0 6px 18px rgba(245,30,70,.28);transition:background .2s,transform .2s,box-shadow .2s}
button.quote-medidas-btn::before,button.quote-medidas-btn::after{display:none}
button.quote-medidas-btn span{display:inline-grid;place-items:center;width:16px;height:16px;color:var(--red);background:#fff;border-radius:50%;font-size:.8rem;font-weight:900;line-height:1}
button.quote-medidas-btn:hover,button.quote-medidas-btn:focus-visible{background:#d4123a;transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,30,70,.4)}

/* ---- Carrito: entrega, fecha y folio del ERP (oct 2026) ---- */
.cart-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cart-entrega{display:grid;gap:16px;margin-top:6px}
.cart-grupo{display:grid;gap:8px;margin:0;padding:0;border:0;min-width:0}
.cart-grupo legend{margin-bottom:8px;padding:0;color:var(--soft);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.cart-opcion{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #303030;background:#111;cursor:pointer;transition:border-color .2s,background .2s}
.cart-opcion:hover{border-color:#4a4a4a}
.cart-opcion:has(input:checked){border-color:var(--red);background:rgba(245,30,70,.08)}
.cart-opcion input{flex:0 0 auto;width:17px;height:17px;margin:2px 0 0;accent-color:var(--red);cursor:pointer}
.cart-opcion span{display:grid;gap:2px;min-width:0}
.cart-opcion b{color:var(--white);font-size:.84rem;font-weight:800;line-height:1.35}
.cart-opcion small{color:var(--muted);font-size:.72rem;line-height:1.4}
.cart-dir[hidden]{display:none}
.quote-field input[type="date"]{color-scheme:dark;cursor:pointer}
.cart-estimada{margin:2px 0 0;color:var(--muted);font-size:.74rem;line-height:1.55}
.cart-aviso-fecha{padding:14px 16px;border:1px solid rgba(245,30,70,.55);border-radius:3px;background:rgba(245,30,70,.08)}
.cart-aviso-fecha[hidden],.cart-fecha-ok[hidden]{display:none}
.cart-aviso-fecha p{margin:0 0 12px;color:var(--white-soft);font-size:.8rem;line-height:1.55}
.cart-aviso-fecha p b{color:var(--white)}
.cart-aviso-fecha.ojo{animation:condiciones-ojo .45s ease}
.cart-aviso-botones{display:flex;flex-wrap:wrap;gap:8px}
.button.cart-mini{min-height:40px;padding:0 16px;gap:8px;font-size:.76rem}
.cart-fecha-ok{margin:0;color:var(--soft);font-size:.76rem;line-height:1.55}
.cart-respaldo{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--line);background:rgba(255,255,255,.025)}
.cart-respaldo p{margin:0;color:var(--soft);font-size:.78rem;line-height:1.55}
.cart-send.is-enviando{opacity:.7;cursor:progress;transform:none}
.cart-listo{display:grid;justify-items:center;gap:6px;margin:26px 0 8px;text-align:center}
.cart-listo-ico{display:grid;place-items:center;width:58px;height:58px;margin-bottom:8px;border-radius:50%;background:var(--red);box-shadow:0 12px 35px rgba(245,30,70,.3)}
.cart-listo-ico svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.cart-listo h3{margin:0 0 6px;color:var(--white);font-size:1.3rem;font-weight:850;letter-spacing:-.03em}
.cart-listo-eti{margin:6px 0 0;color:var(--red);font-size:.63rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.cart-folio{color:var(--white);font-size:2.3rem;font-weight:900;letter-spacing:-.02em;line-height:1.1}
.cart-listo p:last-child{max-width:360px;margin:8px 0 0;color:var(--soft);font-size:.8rem;line-height:1.6}
.cart-listo-datos{display:grid;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.cart-listo-datos:empty{display:none}
.cart-listo-datos p{display:flex;justify-content:space-between;gap:14px;margin:0;color:var(--white-soft);font-size:.78rem;text-align:right}
.cart-listo-datos span{color:var(--muted);text-align:left}

/* banda: cada icono va pegado a su palabra */
.marquee-icons div{gap:44px;padding-right:44px}
.marquee-icons span{display:inline-flex;align-items:center;gap:10px}
@media (max-width:700px){.marquee-icons div{gap:32px;padding-right:32px}.marquee-icons span{gap:8px}}
