/* ==========================================================
   Murcia Multimedia · murciamultimedia.com · v2026
   Diseño y desarrollo: Murcia Multimedia
   ========================================================== */

/* ---------- fuentes (alojadas en el propio servidor) ---------- */
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-tight-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-tight-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-tight-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/inter-tight-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}

:root{
  --paper:#EFEDE8;
  --paper-2:#E3E0D9;
  --ink:#141414;
  --ink-2:#2B2A28;
  --muted:#65615A;
  --line:rgba(20,20,20,.14);
  --accent:#FF4A1C;          /* color de acento: cambiar aquí */
  --street:#FFE600;          /* amarillo Eco Street Marketing */
  --radius:22px;
  --gutter:clamp(16px,4vw,56px);
  --hdr:76px;
  --sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* transiciones entre páginas (Chrome, Edge, Safari 18+) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .35s var(--ease) both}
::view-transition-new(root){animation:vt-in .6s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(18px)}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 12px)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}
.wrap{padding-inline:var(--gutter)}
.eyebrow{font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--paper);padding:.7em 1.2em;border-radius:100px;font-weight:600;transition:top .3s}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ---------- botones y enlaces ---------- */
.btn{display:inline-flex;align-items:center;gap:.7em;padding:1em 1.6em;border-radius:100px;font-weight:600;font-size:.95rem;background:var(--ink);color:var(--paper);border:0;cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease)}
.btn .arr{display:inline-block;transition:transform .4s var(--ease)}
.btn:hover{background:var(--accent);color:var(--ink)}
.btn:hover .arr{transform:translateX(4px) rotate(-45deg)}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.link-u{position:relative;font-weight:600}
.link-u::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(1);transform-origin:right;transition:transform .5s var(--ease)}
.link-u:hover::after{transform:scaleX(0)}

/* ---------- cabecera ---------- */
.hdr{position:fixed;inset:0 0 auto 0;height:var(--hdr);z-index:50;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);transition:transform .6s var(--ease),background .4s;view-transition-name:site-header}
.hdr.is-scrolled{background:rgba(239,237,232,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr__logo img{height:34px;width:auto;filter:brightness(0);transition:filter .4s}
.menu-open .hdr{z-index:60;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.menu-open .hdr__logo img{filter:none}
.menu-open .burger{background:var(--paper)}
.menu-open .burger span{background:var(--ink)}
.hdr__nav{display:flex;align-items:center;gap:2.2rem;font-size:.95rem;font-weight:500}
.hdr__nav > a:not(.btn),.dd > a{position:relative;padding-block:8px}
.hdr__nav > a:not(.btn)::after,.dd > a::after{content:"";position:absolute;left:0;bottom:2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.hdr__nav > a:not(.btn):hover::after,.dd:hover > a::after,.hdr__nav a[aria-current="page"]::after,.dd > a[aria-current="page"]::after{transform:scaleX(1)}
.hdr__nav .btn{padding:.75em 1.25em;font-size:.88rem}
.dd{position:relative}
.dd__panel{position:absolute;top:100%;left:-20px;min-width:250px;padding:12px;background:var(--paper);border-radius:16px;box-shadow:0 24px 60px -20px rgba(20,20,20,.25),0 0 0 1px var(--line);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,transform .4s var(--ease),visibility .3s}
.dd:hover .dd__panel,.dd:focus-within .dd__panel{opacity:1;visibility:visible;transform:none}
.dd__panel a{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:10px;font-size:.95rem}
.dd__panel a span{color:var(--muted);font-size:.8rem}
.dd__panel a:hover{background:var(--paper-2)}
.burger{display:none;width:46px;height:46px;border-radius:50%;background:var(--ink);border:0;cursor:pointer;position:relative;z-index:60}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:var(--paper);transition:transform .45s var(--ease)}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:26px}
.menu-open .burger span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.menu-open .burger span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

.mnav{position:fixed;inset:0;z-index:55;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--hdr) + 20px) var(--gutter) 36px;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);visibility:hidden;overflow-y:auto}
.menu-open .mnav{clip-path:inset(0 0 0 0);visibility:visible}
.mnav a.big{display:block;font-size:clamp(2.4rem,11vw,4.2rem);font-weight:600;letter-spacing:-.04em;line-height:1.08;overflow:hidden}
.mnav a.big span{display:inline-block;transform:translateY(105%);transition:transform .8s var(--ease)}
.menu-open .mnav a.big span{transform:none}
.menu-open .mnav a.big:nth-child(2) span{transition-delay:.05s}
.menu-open .mnav a.big:nth-child(3) span{transition-delay:.1s}
.menu-open .mnav a.big:nth-child(4) span{transition-delay:.15s}
.menu-open .mnav a.big:nth-child(5) span{transition-delay:.2s}
.mnav__sub{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.mnav__sub a{padding:.45em .95em;border-radius:100px;box-shadow:inset 0 0 0 1px rgba(239,237,232,.25);font-size:.9rem}
.mnav__foot{margin-top:28px;display:flex;flex-direction:column;gap:6px;color:rgba(239,237,232,.65);font-size:.95rem}

/* ---------- HOME · hero ---------- */
.hero{padding-top:calc(var(--hdr) + clamp(40px,8vh,96px))}
.hero__top{display:flex;justify-content:space-between;gap:24px;margin-bottom:clamp(20px,4vh,40px)}
.hero__title{font-size:clamp(3.1rem,11.2vw,11.5rem);font-weight:600;letter-spacing:-.055em;line-height:.9}
.hero__title em{letter-spacing:-.02em;padding-right:.04em}
.dot{color:var(--accent)}
.hero__row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:32px;margin-top:clamp(28px,5vh,56px);padding-bottom:clamp(32px,6vh,64px)}
.hero__lead{max-width:36ch;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.45;color:var(--ink-2)}
.hero__lead strong{font-weight:600;color:var(--ink)}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.hero__media{position:relative;height:88vh;min-height:420px;overflow:hidden;border-radius:var(--radius);margin-inline:var(--gutter);background:var(--paper-2)}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__media .tag{position:absolute;left:24px;bottom:22px;color:#fff;font-size:.85rem;font-weight:500;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.js .hero__media{margin-inline:0;border-radius:0}
/* evita el parpadeo del titular antes de animarse (y lo muestra si algo falla) */
.js [data-split]{visibility:hidden;animation:show-anyway 0s 2.5s forwards}
.js [data-split].is-split{visibility:visible;animation:none}
@keyframes show-anyway{to{visibility:visible}}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:clamp(18px,3vw,30px);margin-top:clamp(56px,10vh,120px);white-space:nowrap;display:flex}
.marquee__track{display:inline-flex;flex-shrink:0;animation:marq 38s linear infinite}
.marquee__track span{font-size:clamp(1.8rem,4.6vw,4rem);font-weight:600;letter-spacing:-.04em;padding-inline:.5em;display:inline-flex;align-items:center;gap:1em}
.marquee__track span::after{content:"";width:.28em;height:.28em;border-radius:50%;background:var(--accent)}
.marquee__track span:nth-child(even){font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
@keyframes marq{to{transform:translateX(-100%)}}

/* ---------- statement ---------- */
.statement{padding-block:clamp(90px,16vh,200px)}
.statement__grid{display:grid;grid-template-columns:minmax(180px,1fr) 3fr;gap:40px}
.statement__text{font-size:clamp(1.9rem,4.4vw,4.2rem);font-weight:500;letter-spacing:-.035em;line-height:1.08}
.statement__text em{color:var(--accent)}

/* ---------- servicios (tarjetas apiladas) ---------- */
.services{padding-bottom:clamp(60px,10vh,120px)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,6vh,64px)}
.sec-head h2{font-size:clamp(2.6rem,7vw,6.5rem);font-weight:600;letter-spacing:-.05em;line-height:.95}
.stack{display:flex;flex-direction:column;gap:clamp(20px,3vh,32px)}
.svc{position:sticky;top:var(--hdr)}
.svc:nth-child(2){top:calc(var(--hdr) + 14px)}
.svc:nth-child(3){top:calc(var(--hdr) + 28px)}
.svc:nth-child(4){top:calc(var(--hdr) + 42px)}
.svc:nth-child(5){top:calc(var(--hdr) + 56px)}
.svc__inner{position:relative;display:grid;grid-template-columns:1.05fr 1fr;min-height:min(78vh,720px);border-radius:var(--radius);overflow:hidden;background:var(--paper-2);transform-origin:50% 0;will-change:transform;--dim:0}
.svc__inner::after{content:"";position:absolute;inset:0;background:#0b0b0b;opacity:var(--dim);pointer-events:none}
.svc--dark .svc__inner{background:var(--ink);color:var(--paper)}
.svc--accent .svc__inner{background:var(--accent);color:var(--ink)}
.svc__body{display:flex;flex-direction:column;padding:clamp(28px,4vw,56px)}
.svc__num{display:flex;justify-content:space-between;font-size:.85rem;font-weight:500;opacity:.7}
.svc__title{font-size:clamp(2.6rem,6vw,5.6rem);font-weight:600;letter-spacing:-.05em;line-height:.95;margin-top:auto}
.svc__desc{max-width:38ch;margin-top:20px;font-size:1.08rem;line-height:1.5;opacity:.88}
.svc__list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:28px;border-top:1px solid rgba(127,127,127,.35)}
.svc__list li{padding:12px 0;border-bottom:1px solid rgba(127,127,127,.35);font-size:.95rem;font-weight:500}
.svc__more{margin-top:28px;align-self:flex-start}
.svc__media{position:relative;display:block;overflow:hidden}
.svc__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.js .svc__media img{transform:scale(1.12)}

/* ---------- street marketing ---------- */
.street{background:var(--street);color:var(--ink);margin-inline:var(--gutter);border-radius:var(--radius);display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.street__body{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;gap:22px}
.street__body .eyebrow{color:rgba(20,20,20,.65)}
.street__body h2{font-size:clamp(2.4rem,5.5vw,5rem);font-weight:600;letter-spacing:-.05em;line-height:.95}
.street__body p{max-width:40ch;font-size:1.08rem}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills li{padding:.5em 1em;border-radius:100px;box-shadow:inset 0 0 0 1px rgba(20,20,20,.35);font-size:.9rem;font-weight:500}
.street__actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:auto}
.street__media{min-height:420px;position:relative;overflow:hidden}
.street__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.street--page{margin-bottom:clamp(70px,12vh,140px)}
.street .btn:hover{background:var(--ink-2);color:var(--paper)}

/* ---------- proyectos (scroll horizontal) ---------- */
.projects{padding-top:clamp(90px,16vh,180px);padding-bottom:clamp(40px,8vh,80px);overflow:hidden}
.projects__viewport{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}
.projects__viewport::-webkit-scrollbar{display:none}
.projects__track{display:flex;gap:clamp(16px,2vw,28px);padding-inline:var(--gutter);width:max-content}
.proj{width:clamp(270px,36vw,560px);scroll-snap-align:start}
.proj:nth-child(even){margin-top:clamp(0px,8vh,90px)}
.proj__img{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}
.proj:nth-child(3n) .proj__img{aspect-ratio:1/1}
.proj__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.proj:hover .proj__img img{transform:scale(1.05)}
.proj__meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:14px}
.proj__meta h3{font-size:1.2rem;font-weight:600;letter-spacing:-.02em}
.proj__meta span{color:var(--muted);font-size:.88rem;text-align:right}
.js-pin .projects__viewport{overflow:visible;scroll-snap-type:none}

/* ---------- resultado + clientes ---------- */
.result{padding-block:clamp(80px,14vh,160px);text-align:center}
.result h2{font-size:clamp(1.9rem,4.4vw,4rem);font-weight:500;letter-spacing:-.035em;line-height:1.08;max-width:22ch;margin-inline:auto}
.result h2 em{color:var(--accent)}
.clients{margin-top:clamp(56px,9vh,100px)}
.clients .eyebrow{display:block;margin-bottom:28px}
.logos{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.logos__track{display:inline-flex;flex-shrink:0;align-items:center;gap:clamp(48px,7vw,110px);padding-right:clamp(48px,7vw,110px);animation:marq 30s linear infinite}
.logos__track img{height:clamp(38px,4.6vw,58px);width:auto;filter:grayscale(1);mix-blend-mode:multiply;opacity:.75;transition:opacity .3s,filter .3s}
.logos__track img:hover{filter:none;opacity:1}

/* ---------- CTA final ---------- */
.cta{background:var(--ink);color:var(--paper);border-radius:var(--radius) var(--radius) 0 0;padding:clamp(80px,14vh,160px) var(--gutter) clamp(60px,10vh,110px);position:relative;overflow:hidden}
.cta .eyebrow{color:rgba(239,237,232,.6)}
.cta__title{font-size:clamp(3.4rem,13vw,13rem);font-weight:600;letter-spacing:-.06em;line-height:.88;margin-top:24px}
.cta__title em{color:var(--accent)}
.cta__row{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;margin-top:clamp(40px,7vh,80px)}
.cta__contact{display:flex;flex-direction:column;gap:6px;font-size:clamp(1.2rem,2.2vw,1.8rem);font-weight:500;letter-spacing:-.02em}
.cta__contact a{width:fit-content}
.magnet{width:clamp(150px,16vw,210px);aspect-ratio:1;border-radius:50%;background:var(--accent);color:var(--ink);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:600;font-size:1rem;line-height:1.2;padding:20px}
.magnet span{pointer-events:none}

/* ---------- páginas interiores ---------- */
.phero{padding-top:calc(var(--hdr) + clamp(36px,7vh,80px));padding-bottom:clamp(32px,6vh,64px)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--muted);margin-bottom:clamp(20px,4vh,36px)}
.crumbs a:hover{color:var(--ink)}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.phero__title{font-size:clamp(2.8rem,9vw,9rem);font-weight:600;letter-spacing:-.055em;line-height:.92;max-width:14ch}
.phero__title--wide{max-width:none}
.phero__lead{margin-top:clamp(20px,4vh,36px);max-width:40ch;font-size:clamp(1.1rem,1.7vw,1.45rem);line-height:1.4;color:var(--ink-2)}
.pmedia{height:72vh;min-height:360px;margin-inline:var(--gutter);border-radius:var(--radius);overflow:hidden;background:var(--paper-2)}
.pmedia img{width:100%;height:100%;object-fit:cover}

.intro{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:40px;padding-block:clamp(70px,12vh,140px)}
.intro__text{font-size:clamp(1.5rem,2.8vw,2.6rem);font-weight:500;letter-spacing:-.03em;line-height:1.15}
.intro__text em{color:var(--accent)}
.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));border-top:1px solid var(--line);margin-top:clamp(32px,5vh,56px)}
.checklist li{display:flex;align-items:baseline;gap:16px;padding:20px 8px 20px 0;border-bottom:1px solid var(--line);font-size:1.12rem;font-weight:500;letter-spacing:-.01em}
.checklist li span{font-size:.8rem;color:var(--muted);font-weight:500;min-width:2ch}

.gallery{padding-bottom:clamp(70px,12vh,140px)}
.gallery__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.6vw,24px)}
.gallery__grid a{position:relative;display:block;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}
.gallery__grid figure{height:100%}
.gallery__grid .g-7{grid-column:span 7;aspect-ratio:7/5}
.gallery__grid .g-5{grid-column:span 5;aspect-ratio:5/5}
.gallery__grid .g-4{grid-column:span 4;aspect-ratio:4/5}
.gallery__grid .g-12{grid-column:1/-1;aspect-ratio:21/9}
.gallery__grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.gallery__grid a:hover img{transform:scale(1.04)}
.gallery__grid figcaption{position:absolute;left:16px;bottom:14px;right:16px;color:#fff;font-size:.85rem;font-weight:500;text-shadow:0 1px 10px rgba(0,0,0,.5)}

.keyline{padding-block:clamp(70px,12vh,140px);border-top:1px solid var(--line)}
.keyline p{font-size:clamp(2rem,5vw,4.6rem);font-weight:500;letter-spacing:-.04em;line-height:1.05;max-width:20ch}
.keyline p em{color:var(--accent)}

.others{padding-bottom:clamp(70px,12vh,140px)}
.others__list{border-top:1px solid var(--line)}
.others__list a{display:grid;grid-template-columns:4ch 1fr auto;align-items:center;gap:20px;padding:clamp(16px,2.6vh,28px) 0;border-bottom:1px solid var(--line);font-size:clamp(1.6rem,4vw,3.4rem);font-weight:600;letter-spacing:-.04em;line-height:1;transition:color .3s,padding .5s var(--ease)}
.others__list a span:first-child{font-size:.9rem;font-weight:500;letter-spacing:0;color:var(--muted)}
.others__list a .arr{font-size:1.4rem;transition:transform .5s var(--ease)}
.others__list a:hover{color:var(--accent);padding-left:14px}
.others__list a:hover .arr{transform:rotate(-45deg)}

/* índice de servicios */
.hub{padding-bottom:clamp(70px,12vh,140px)}
.hub__item{display:grid;grid-template-columns:4ch 1.2fr 1fr 240px;gap:clamp(16px,3vw,48px);align-items:start;padding-block:clamp(28px,5vh,56px);border-top:1px solid var(--line)}
.hub__item:last-child{border-bottom:1px solid var(--line)}
.hub__num{font-size:.9rem;color:var(--muted);font-weight:500;padding-top:.6em}
.hub__item h2{font-size:clamp(2.2rem,5vw,4.4rem);font-weight:600;letter-spacing:-.05em;line-height:.95}
.hub__item h2 a:hover{color:var(--accent)}
.hub__item p{font-size:1.05rem;color:var(--ink-2);margin-bottom:18px}
.hub__item ul li{padding:6px 0;border-bottom:1px solid var(--line);font-size:.95rem;font-weight:500}
.hub__item .link-u{display:inline-block;margin-top:18px}
.hub__img{aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:var(--paper-2)}
.hub__img img{width:100%;height:100%;object-fit:cover}

/* contacto */
.contact{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(32px,6vw,96px);padding-bottom:clamp(70px,12vh,140px)}
.contact__info{display:flex;flex-direction:column;gap:32px}
.contact__big a{display:block;width:fit-content;font-size:clamp(1.5rem,2.8vw,2.4rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}
.contact__big a:hover{color:var(--accent)}
.contact__info h2{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:10px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;background:var(--paper-2);padding:clamp(24px,4vw,48px);border-radius:var(--radius)}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font-size:.85rem;font-weight:600}
.field label small{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;background:var(--paper);border:1px solid transparent;border-radius:12px;padding:14px 16px;font-size:1rem;transition:border-color .3s}
.field textarea{min-height:160px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:.9rem}
.consent input{width:20px;height:20px;margin-top:2px;accent-color:var(--ink);flex-shrink:0}
.consent a{text-decoration:underline}
.form__legal{grid-column:1/-1;font-size:.78rem;line-height:1.5;color:var(--muted)}
.form__legal a{text-decoration:underline}
.form__foot{grid-column:1/-1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.form__status{font-size:.95rem;font-weight:500}
.form__status.ok{color:#1d7a3e}.form__status.err{color:#b3261e}

/* textos legales */
.prose{max-width:760px;padding-bottom:clamp(70px,12vh,140px)}
.prose h2{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin:2.2em 0 .6em}
.prose h3{font-size:1.1rem;font-weight:600;margin:1.6em 0 .4em}
.prose p,.prose li{color:var(--ink-2);margin-bottom:1em}
.prose ul{list-style:disc;padding-left:1.3em}
.prose a{text-decoration:underline}
.prose table{width:100%;border-collapse:collapse;margin:1em 0 1.6em;font-size:.92rem}
.prose th,.prose td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font-weight:600}
.prose .updated{font-size:.85rem;color:var(--muted)}

/* 404 */
.e404{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--hdr)}
.e404 h1{font-size:clamp(6rem,26vw,22rem);font-weight:600;letter-spacing:-.07em;line-height:.8}
.e404 p{font-size:clamp(1.2rem,2vw,1.6rem);margin:28px 0 32px;max-width:32ch}
.e404 .actions{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- lightbox ---------- */
.lb{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100vh;height:100dvh;margin:0;inset:0}
.lb::backdrop{background:rgba(12,12,12,.94)}
.lb[open]{display:flex;align-items:center;justify-content:center}
.lb img{max-width:92vw;max-height:84vh;width:auto;height:auto;border-radius:12px}
.lb__cap{position:absolute;left:0;right:0;bottom:22px;text-align:center;color:rgba(255,255,255,.8);font-size:.9rem}
.lb button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;width:52px;height:52px;border-radius:50%;cursor:pointer;font-size:1.2rem;transition:background .3s}
.lb button:hover{background:var(--accent);color:var(--ink)}
.lb__close{top:20px;right:20px}
.lb__prev{left:20px;top:50%;margin-top:-26px}
.lb__next{right:20px;top:50%;margin-top:-26px}

/* ---------- pie ---------- */
.ftr{background:var(--paper);padding:clamp(48px,8vh,80px) var(--gutter) 28px}
.ftr__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.ftr__brand img{height:38px;width:auto;margin-bottom:18px;filter:brightness(0)}
.ftr__brand p{color:var(--muted);max-width:32ch;font-size:.95rem}
.ftr h2{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:14px}
.ftr li{margin-bottom:8px;font-size:.95rem}
.ftr li a:hover{color:var(--accent)}
.ftr__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:56px;padding-top:22px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.ftr__bottom nav{display:flex;gap:20px;flex-wrap:wrap}
.ftr__bottom a:hover{color:var(--ink)}

/* ---------- cursor ---------- */
.cursor{position:fixed;top:0;left:0;z-index:100;pointer-events:none;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease),background .3s,opacity .3s;opacity:0}
.cursor__label{font-size:.8rem;font-weight:600;color:var(--ink);opacity:0;transition:opacity .2s}
.cursor.is-link{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(255,74,28,.25)}
.cursor.is-view{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--accent)}
.cursor.is-view .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hub__item{grid-template-columns:4ch 1fr 1fr}
  .hub__img{display:none}
}
@media (max-width:1000px){
  .statement__grid,.intro{grid-template-columns:1fr;gap:20px}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .contact{grid-template-columns:1fr}
}
@media (max-width:900px){
  :root{--hdr:68px}
  .hdr__nav{display:none}
  .burger{display:block}
  .hero__top .eyebrow:last-child{display:none}
  .hero__row{grid-template-columns:1fr}
  .hero__cta{justify-content:flex-start}
  .hero__media{height:62vh}
  .svc,.svc:nth-child(n){position:relative;top:auto}
  .svc__inner{grid-template-columns:1fr;min-height:0}
  .svc__media{order:-1;aspect-ratio:4/3;position:relative}
  .svc__title{margin-top:28px}
  .street{grid-template-columns:1fr}
  .street__media{min-height:300px;order:-1}
  .proj:nth-child(even){margin-top:0}
  .sec-head{flex-direction:column;align-items:flex-start}
  .pmedia{height:48vh}
  .gallery__grid a[class]{grid-column:span 6;aspect-ratio:4/5}
  .gallery__grid a[class]:nth-child(3n+1){grid-column:1/-1;aspect-ratio:4/3}
  .hub__item{grid-template-columns:1fr;gap:14px}
}
@media (max-width:560px){
  .svc__list{grid-template-columns:1fr}
  .ftr__grid{grid-template-columns:1fr}
  .hero__cta .btn{width:100%;justify-content:center}
  .form{grid-template-columns:1fr}
  .others__list a{grid-template-columns:3ch 1fr auto}
}
@media (prefers-reduced-motion:reduce){
  .marquee__track,.logos__track{animation:none}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
@media print{
  .hdr,.mnav,.cursor,.marquee,.cta,.burger{display:none!important}
}
