:root {
  --red: #991d36;
  --red-bright: #c12748;
  --ink: #11151b;
  --ink-soft: #1b212a;
  --paper: #f4f5f7;
  --white: #ffffff;
  --muted: #65707d;
  --line: rgba(17, 21, 27, .14);
  --title: "IBM Plex Sans", Arial, sans-serif;
  --body: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
.wrap { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }
.section { padding: 128px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 16px; background: var(--white); color: var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.site-header { position: fixed; z-index: 50; inset: 0 0 auto; height: 92px; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(17,21,27,.1); transition: height .25s ease, box-shadow .25s ease; }
.site-header.scrolled { height: 74px; box-shadow: 0 12px 30px rgba(9,12,18,.09); }
.admin-bar .site-header { top: 32px; }
.header-inner { width: min(1320px, calc(100% - 48px)); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { width: 230px; height: 56px; overflow: hidden; display: flex; align-items: center; }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: 36px; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.header-translate { display: flex; align-items: center; flex: 0 0 auto; text-transform: none; letter-spacing: normal; }
.header-translate .gtranslate_wrapper { display: flex; align-items: center; gap: 8px; }
.header-translate a::after { content: none !important; display: none !important; }
.main-nav a { position: relative; }
.main-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--red); transition: right .2s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right: 0; }
.nav-cta { padding: 12px 20px; color: var(--white); background: var(--red); }
.nav-cta:hover { background: var(--ink); }
.menu-toggle { display: none; }

.hero { position: relative; min-height: 850px; height: 100svh; max-height: 1040px; display: flex; align-items: center; color: var(--white); background: var(--ink); overflow: hidden; }
.hero-media, .hero-shade, .hero-grid { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media { object-fit: cover; object-position: center; transform: scale(1.04); animation: heroIn 1.4s cubic-bezier(.2,.8,.2,1) forwards; }
.hero-shade { background: linear-gradient(90deg, rgba(10,14,20,.96) 0%, rgba(10,14,20,.76) 44%, rgba(10,14,20,.24) 100%), linear-gradient(0deg, rgba(10,14,20,.35), transparent 55%); }
.hero-grid { opacity: .12; background-image: linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, black, transparent 80%); }
.hero-content { position: relative; z-index: 2; padding-top: 92px; }
.eyebrow, .section-kicker { margin: 0 0 22px; color: var(--red-bright); font-family: var(--title); font-size: .76rem; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }\n.section-kicker { display: none; }
.hero h1 { max-width: 900px; margin: 0; font-family: var(--title); font-size: clamp(4.3rem, 8.2vw, 8.3rem); line-height: .83; letter-spacing: -.065em; text-transform: uppercase; }
.hero h1 span { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.72); }
.hero-copy { max-width: 660px; margin: 36px 0 0; color: rgba(255,255,255,.78); font-size: 1.12rem; }
.hero-actions { display: flex; gap: 14px; margin-top: 42px; }
.button { min-height: 54px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; border: 1px solid rgba(255,255,255,.3); font-size: .84rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; transition: .2s ease; }
.button-primary { background: var(--red); border-color: var(--red); }
.button-primary:hover { background: var(--red-bright); border-color: var(--red-bright); }
.button-ghost:hover { background: var(--white); color: var(--ink); }
.hero-index { position: absolute; right: 0; bottom: 0; width: 420px; height: 78px; display: flex; align-items: center; gap: 26px; padding: 0 40px; background: var(--white); color: var(--ink); font-family: var(--title); font-size: .77rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.hero-index span:first-child { color: var(--red); font-size: 1.8rem; }
@keyframes heroIn { from { transform: scale(1.12); opacity: .3; } to { transform: scale(1.04); opacity: 1; } }

.intro { background: var(--white); }
.intro-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 100px; align-items: start; }
.intro h2, .section-heading h2, .projects h2, .contact h2 { margin: 0; font-family: var(--title); font-size: clamp(2.7rem, 5vw, 5rem); line-height: .98; letter-spacing: -.05em; }
.intro-copy > p:first-child { margin: 36px 0 32px; font-size: 1.22rem; line-height: 1.65; }
.intro-line { width: 100%; height: 1px; background: var(--line); }
.small-copy { color: var(--muted); font-size: .95rem; }

.services { color: var(--white); background: var(--ink); }
.section-kicker.light { color: #e85e79; }
.section-heading { margin-bottom: 72px; }
.service-list { border-top: 1px solid rgba(255,255,255,.16); }
.service-card { display: grid; grid-template-columns: 90px 360px 1fr; gap: 34px; align-items: center; padding: 36px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.service-number { align-self: start; padding-top: 8px; color: #e85e79; font-family: var(--title); font-size: 1.2rem; font-weight: 600; }
.service-image { height: 230px; overflow: hidden; }
.service-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75) contrast(1.05); transition: transform .6s ease, filter .6s ease; }
.service-card:hover .service-image img { transform: scale(1.045); filter: saturate(1); }
.service-body { padding-left: 18px; }
.service-body h3 { margin: 0 0 12px; font-family: var(--title); font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.1; letter-spacing: -.03em; }
.service-body p { margin: 0 0 18px; color: rgba(255,255,255,.63); }
.service-body ul { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.service-body li { padding: 6px 10px; border: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.76); font-size: .77rem; }

.projects { background: var(--paper); }
.projects-head { display: grid; grid-template-columns: 1fr 370px; gap: 80px; align-items: end; margin-bottom: 60px; }
.projects-head > p { margin: 0 0 5px; color: var(--muted); }
.project-grid { display: grid; grid-template-columns: 1.2fr .8fr; grid-auto-rows: 370px; gap: 18px; }
.project-item { position: relative; margin: 0; overflow: hidden; background: #dadddf; }
.project-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .4s ease; }
.project-item:hover img { transform: scale(1.035); filter: brightness(.82); }
.project-wide { grid-column: 1 / -1; }
.project-tall { grid-row: span 2; }
.project-item figcaption { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; padding: 22px 24px; color: var(--white); background: linear-gradient(transparent, rgba(9,12,16,.75)); font-family: var(--title); font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transform: translateY(12px); transition: .3s ease; }
.project-item:hover figcaption { opacity: 1; transform: none; }

.contact { padding-bottom: 0; color: var(--white); background: var(--red); }
.contact-panel { display: grid; grid-template-columns: 1.25fr .75fr; gap: 110px; padding-bottom: 92px; }
.contact h2 { max-width: 760px; font-size: clamp(3.1rem, 5.6vw, 6rem); }
.contact-mail { display: inline-flex; align-items: center; gap: 18px; margin-top: 44px; padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.62); font-weight: 700; }
.contact-details { display: grid; gap: 26px; align-content: end; }
.contact-details > div { padding-top: 19px; border-top: 1px solid rgba(255,255,255,.35); }
.contact-details span { display: block; margin-bottom: 7px; color: rgba(255,255,255,.65); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-details a, .contact-details address { font-size: 1rem; font-style: normal; }
.map-wrap { height: 420px; padding: 0; }
.map-wrap iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(1.05); }

.site-footer { color: rgba(255,255,255,.82); background: #0c0f14; }
.footer-main { padding: 72px 0 62px; color: rgba(255,255,255,.82); background: #0c0f14; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-grid { display: grid; grid-template-columns: 1.25fr .55fr .8fr; gap: 80px; align-items: start; }
.footer-company > p { max-width: 470px; margin: 24px 0 30px; color: rgba(255,255,255,.7); font-size: .92rem; }
.footer-brand { display: block; width: min(300px, 100%); }
.footer-brand img { width: 100%; height: auto; object-fit: contain; }
.footer-kit-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.footer-kit-logos img { width: auto; max-width: 210px; height: 68px; object-fit: contain; object-position: left center; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.footer-column h2 { margin: 0 0 14px; color: var(--red); font-family: var(--title); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-column a { color: rgba(255,255,255,.86); font-size: .92rem; transition: color .2s ease; }
.footer-column a:hover, .footer-column a:focus-visible { color: var(--white); }
.footer-contact address { margin: 0 0 8px; color: rgba(255,255,255,.7); font-size: .88rem; font-style: normal; line-height: 1.75; }
.footer-bottom { color: rgba(255,255,255,.66); background: #0c0f14; }
.footer-bottom-grid { min-height: 104px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.footer-bottom p { margin: 0; font-size: .74rem; }
.footer-bottom p a { color: var(--white); font-weight: 700; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 20px; }
.footer-legal a { color: rgba(255,255,255,.78); font-size: .72rem; }
.footer-legal a:hover, .footer-legal a:focus-visible { color: var(--white); }
.page-company .inner-copy-grid { align-items: center; }
.services.page-services { color: var(--ink); background: var(--white); }
.services.page-services .section-kicker.light, .services.page-services .service-number { color: var(--red); }
.services.page-services .service-list { border-top-color: var(--line); }
.services.page-services .service-card { border-bottom-color: var(--line); }
.services.page-services .service-body p { color: var(--muted); }
.services.page-services .service-body li { color: #47515d; border-color: var(--line); }

.page-company + .inner-section.dark { padding: 80px 0; color: var(--white); background: var(--red); }
.page-company + .inner-section.dark .inner-copy-grid { align-items: center; }
.page-company + .inner-section.dark .inner-copy-grid h2 { font-size: clamp(2.45rem, 3.7vw, 3.7rem); line-height: 1.03; }
.page-company + .inner-section.dark .inner-copy-grid > div:last-child { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.page-company + .inner-section.dark .inner-copy-grid > div:last-child p { margin: 0 0 24px; }
.page-company + .inner-section.dark .section-kicker,
.page-services + .inner-section.white .section-kicker { color: var(--white); }
.page-company + .inner-section.dark .button-primary,
.page-services + .inner-section.white .button-primary { color: var(--white); background: var(--ink); border-color: var(--ink); }
.page-company + .inner-section.dark .button-primary:hover,
.page-services + .inner-section.white .button-primary:hover { color: var(--ink); background: var(--white); border-color: var(--white); }
.page-services + .inner-section.white { padding: 80px 0; color: var(--white); background: var(--red); }
.page-services + .inner-section.white .inner-copy-grid { align-items: center; }
.page-services + .inner-section.white .inner-copy-grid h2 { font-size: clamp(2.45rem, 3.7vw, 3.7rem); line-height: 1.03; }
.page-services + .inner-section.white .inner-copy-grid > div:last-child { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.page-services + .inner-section.white .inner-copy-grid > div:last-child p { margin: 0 0 24px; }

body.home .contact > .map-wrap { height: 530px; padding-bottom: 110px; }
body.home .contact .section-kicker,
.page-contact .contact-intro .section-kicker { color: var(--white); }

.page-contact .contact-form-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 90px; align-items: start; }
.page-contact .contact-intro h2 { font-size: clamp(3rem, 4.8vw, 5rem); }
.page-contact .contact-page-details { margin-top: 48px; }
.page-contact .contact-form-panel { padding: 42px; color: var(--ink); background: var(--white); }
.novatec-contact-form { display: grid; gap: 22px; }
.novatec-contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.novatec-contact-form label { display: grid; gap: 8px; color: #343b44; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.novatec-contact-form input:not([type="checkbox"]), .novatec-contact-form textarea { width: 100%; padding: 13px 0; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid rgba(17,21,27,.3); border-radius: 0; font: inherit; font-size: .95rem; font-weight: 500; text-transform: none; outline: none; }
.novatec-contact-form textarea { min-height: 130px; resize: vertical; }
.novatec-contact-form input:focus, .novatec-contact-form textarea:focus { border-color: var(--red); box-shadow: 0 1px 0 var(--red); }
.novatec-contact-form .form-consent { display: flex; grid-template-columns: none; align-items: flex-start; gap: 10px; font-size: .72rem; font-weight: 500; letter-spacing: 0; line-height: 1.5; text-transform: none; }
.novatec-contact-form .form-consent input { margin-top: 4px; accent-color: var(--red); }
.novatec-contact-form .form-consent a { color: var(--red); text-decoration: underline; text-underline-offset: 2px; }
.novatec-contact-form .button { justify-self: start; color: var(--white); border: 0; cursor: pointer; }
.form-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form-notice { margin: 0; padding: 13px 16px; font-size: .84rem; }
.form-notice.success { color: #155724; background: #d4edda; }
.form-notice.error { color: #721c24; background: #f8d7da; }
.page-contact .contact-map { padding-top: 88px; }
.page-contact .contact-map .map-wrap { width: 100%; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .section { padding: 96px 0; }
  .menu-toggle { position: relative; z-index: 3; width: 44px; height: 44px; padding: 10px; display: grid; align-content: center; gap: 5px; border: 0; background: transparent; }
  .menu-toggle > span:not(.sr-only) { width: 24px; height: 2px; background: var(--ink); transition: .25s ease; }
  .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); }
  .main-nav { position: fixed; inset: 0; padding: 120px 36px 48px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 24px; background: var(--white); font-family: var(--title); font-size: 1.7rem; transform: translateX(100%); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
  .main-nav.open { transform: none; }
  .nav-cta { margin-top: 12px; font-family: var(--body); font-size: .85rem; }
  .hero { min-height: 760px; }
  .hero-index { display: none; }
  .intro-grid { grid-template-columns: 1fr; gap: 30px; }
  .intro-copy > p:first-child { margin-top: 0; }
  .service-card { grid-template-columns: 60px 300px 1fr; gap: 22px; }
  .service-image { height: 210px; }
  .projects-head { grid-template-columns: 1fr; gap: 24px; }
  .project-grid { grid-auto-rows: 300px; }
  .contact-panel { grid-template-columns: 1fr; gap: 68px; }
  .page-contact .contact-form-layout { grid-template-columns: 1fr; gap: 56px; }
}

@media (max-width: 720px) {
  .wrap, .header-inner { width: min(100% - 32px, 1240px); }
  .site-header { height: 76px; }
  .brand { width: 185px; }
  .hero { min-height: 720px; height: 100svh; }
  .hero-content { padding-top: 76px; }
  .hero h1 { font-size: clamp(3.45rem, 17vw, 5.4rem); }
  .hero-copy { font-size: 1rem; }
  .hero-actions { flex-direction: column; align-items: stretch; width: min(100%, 330px); }
  .button { justify-content: space-between; }
  .section { padding: 76px 0; }
  .intro h2, .section-heading h2, .projects h2 { font-size: 2.8rem; }
  .service-card { grid-template-columns: 42px 1fr; padding: 28px 0 42px; }
  .service-number { grid-row: 1; grid-column: 1; }
  .service-image { grid-row: 1; grid-column: 2; height: 210px; }
  .service-body { grid-row: 2; grid-column: 2; padding: 0; }
  .service-body li { font-size: .7rem; }
  .project-grid { display: block; }
  .project-item { height: 270px; margin-bottom: 14px; }
  .project-item.project-tall { height: 410px; }
  .project-item figcaption { opacity: 1; transform: none; }
  .contact h2 { font-size: 3.2rem; }
  .contact-mail { font-size: .86rem; }
  .map-wrap { width: 100%; height: 360px; }
  .footer-main { padding: 58px 0 46px; }
  .footer-grid { grid-template-columns: 1fr; gap: 46px; }
  .footer-kit-logos { align-items: flex-start; }
  .footer-kit-logos img { max-width: min(210px, 100%); height: 62px; }
  .footer-bottom-grid { padding: 28px 0; grid-template-columns: 1fr; gap: 20px; }
  .footer-legal { justify-content: flex-start; }
  .page-company + .inner-section.dark { padding: 64px 0; }
  .page-company + .inner-section.dark .inner-copy-grid h2 { font-size: 2.5rem; }
  .page-services + .inner-section.white { padding: 64px 0; }
  .page-services + .inner-section.white .inner-copy-grid h2 { font-size: 2.5rem; }
  .page-contact .contact-form-panel { padding: 26px 20px; }
  .novatec-contact-form .form-row { grid-template-columns: 1fr; gap: 22px; }
  .page-contact .contact-map { padding-top: 64px; }
  body.home .contact > .map-wrap { height: 470px; }
}

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Revisión según documento Novatec, septiembre 2026 */
#novatec,#servicios{scroll-margin-top:95px}
.hero h1{font-size:clamp(3rem,6.5vw,6.8rem);line-height:1.02;max-width:1100px}
.hero{min-height:720px;max-height:920px}
.hero-copy{color:#e2e4e7}
.section{padding:88px 0}
.nav-services{position:relative}
.services-toggle{padding:16px 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.services-submenu{display:none;position:absolute;top:100%;left:-20px;width:300px;padding:12px;background:#fff;box-shadow:0 14px 35px #1112;border-top:3px solid var(--red)}
.services-submenu a{display:block;padding:13px 12px;font-size:.76rem;letter-spacing:.03em}
.services-submenu a:hover{background:var(--paper);color:var(--red)}
.nav-services:hover .services-submenu,.nav-services:focus-within .services-submenu,.nav-services.is-open .services-submenu{display:block}
.service-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.service-tile{background:#1b212a;min-width:0}
.tile-image{display:block;overflow:hidden;aspect-ratio:4/3}
.tile-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.service-tile:hover img{transform:scale(1.045)}
.tile-body{padding:26px}
.tile-body h3{min-height:2.5em;font-family:var(--title);font-size:1.65rem;line-height:1.2;margin:12px 0 25px}
.more-link{display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid #ffffff30;font-weight:700}
.more-link:hover{color:#ff91a6}
.section-heading{margin-bottom:38px}
.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.company-grid h2{margin-bottom:28px}
.company-grid figure{margin:0}
.company-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}
.company-grid figcaption{margin-top:12px;color:var(--muted);font-size:.8rem}
.brands-section{background:#ebedf1;padding:55px 0}
.brands-section h2,.global-contact h2{font:600 clamp(2rem,4vw,3.4rem)/1.12 var(--title);letter-spacing:-.04em;margin:0 0 34px}
.brand-strip{display:flex;align-items:center;justify-content:space-between;gap:35px;overflow-x:auto;padding:18px 0}
.brand-strip span{font:bold 1.6rem var(--title);color:#404c60;white-space:nowrap}
.global-contact{background:#fff}
.form-centered{width:min(760px,calc(100% - 48px));margin:auto}
.global-contact h2{margin-bottom:42px}
.footer-grid{grid-template-columns:1fr 1fr 1fr;gap:60px}
.footer-column h2{color:#ef7890}
.project-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;gap:28px}
.project-slide{flex:0 0 100%;display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;scroll-snap-align:start}
.project-slide img{width:100%;height:400px;object-fit:contain;background:#e3e5e9}
.project-slide h2{font:600 clamp(2rem,4vw,3.5rem)/1.08 var(--title);margin:14px 0 24px}
.carousel-controls{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:24px}
.carousel-controls button{border:1px solid var(--line);padding:12px 22px;background:#fff;color:var(--ink);cursor:pointer;font-size:1.3rem}
.carousel-controls button:disabled{opacity:.4;cursor:default}
.contact-location{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center}
.contact-location iframe{width:100%;height:380px;border:0}
.contact-location address{font-style:normal}
.contact-location h2{font:600 2.5rem/1.1 var(--title);margin:0 0 25px}
.contact-location a{overflow-wrap:anywhere}
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.service-detail img{width:100%;max-height:400px;object-fit:cover}
.service-detail h2{font:600 2.4rem/1.1 var(--title)}
.service-detail ul{padding:0;list-style:none}
.service-detail li{padding:13px 0;border-bottom:1px solid var(--line)}
.service-detail li::before{content:"✓";margin-right:12px;color:var(--red)}
.service-detail .button{color:#fff;margin-top:14px}
.inner-hero{min-height:420px!important;padding:155px 0 70px!important}
.inner-hero h1{font-size:clamp(2.5rem,5.3vw,5.2rem)!important;line-height:1.04!important}
.inner-section{padding:75px 0!important}
@media(max-width:980px){
.main-nav{overflow-y:auto;justify-content:flex-start;padding-top:110px}
.services-submenu{position:static;width:100%;box-shadow:none;padding:4px 0 0 16px}
.services-submenu a{font-size:.85rem}
.main-nav{gap:14px}
.company-grid,.service-detail{gap:32px}
.footer-grid{gap:28px}
}
@media(max-width:720px){
.hero{min-height:700px;height:auto;padding:125px 0 75px}
.hero-content{padding-top:0}
.hero h1{font-size:clamp(2.4rem,10vw,4rem);overflow-wrap:normal}
.section{padding:60px 0}
.service-tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}
.service-tile{flex:0 0 87%;scroll-snap-align:start}
.company-grid,.service-detail,.contact-location,.project-slide{grid-template-columns:1fr;gap:26px}
.project-slide{align-content:start}
.project-slide img{height:260px}
.project-slide h2{font-size:2rem}
.footer-grid{grid-template-columns:1fr}
.brand-strip{gap:32px}
.brand-strip span{font-size:1.3rem}
.contact-location iframe{height:320px}
.form-centered{width:calc(100% - 32px)}
.inner-hero{min-height:360px!important}
}

/* Ajustes solicitados: marcas, Kit Digital, formularios y proyectos */
.brand-strip{overflow:visible;gap:38px}
.brand-strip span{display:flex;flex:1 1 0;min-width:0;min-height:84px;align-items:center;justify-content:center}
.brand-strip img{display:block;width:auto;max-width:100%;height:auto;max-height:62px;object-fit:contain}
.footer-kit-logos{display:flex;flex-wrap:nowrap;align-items:center;gap:18px}
.footer-kit-logos img{width:180px;min-width:180px;max-width:180px;height:auto;max-height:none;object-fit:contain;object-position:center}
.contact-form-panel,.global-contact .novatec-contact-form{background:#fffaf0}
.contact-form-panel{padding:42px}
.global-contact .novatec-contact-form{padding:30px;border:1px solid #eee7d8}
.novatec-contact-form input:not([type=checkbox]),.novatec-contact-form textarea{background:rgba(255,255,255,.75)}
.project-slide img{object-fit:cover;background:transparent}
.project-carousel{scrollbar-width:none;-ms-overflow-style:none}
.project-carousel::-webkit-scrollbar{display:none;width:0;height:0}
@media(max-width:720px){
.brand-strip{gap:22px}
.brand-strip span{min-height:64px}
.brand-strip img{max-height:44px}
.footer-kit-logos{gap:12px;overflow:hidden}
.footer-kit-logos img{width:180px;min-width:180px;max-width:180px;height:auto}
.contact-form-panel{padding:26px 20px}
.global-contact .novatec-contact-form{padding:20px 16px}
}

/* Novatec — renovación visual, septiembre 2026 */
:root{--title:"Manrope",Arial,sans-serif;--paper:#f6f7f8}
html{scroll-padding-top:100px}
h1,h2,h3{font-family:var(--title);letter-spacing:-.045em}
.section{padding:110px 0}
.section h2{font-size:clamp(2.2rem,4.4vw,4.2rem);line-height:1.12;font-weight:600;max-width:900px}
.section-kicker{letter-spacing:.2em;font-size:.7rem;margin-bottom:24px}
.hero{min-height:760px;height:calc(100svh - 20px);max-height:1000px}
.hero-media{object-position:65% center;animation:hero-photo 1.8s ease both}
.hero-shade{background:linear-gradient(90deg,rgba(9,17,24,.89),rgba(9,17,24,.64) 44%,rgba(9,17,24,.08))}
.hero-grid{opacity:.12}
.hero h1{max-width:900px;font-size:clamp(3.2rem,6.5vw,6.3rem);text-transform:none;line-height:1.05;font-weight:600;letter-spacing:-.055em}
.hero h1 span{color:#fff;-webkit-text-stroke:0}
.hero-copy{font-size:1.08rem;line-height:1.8;max-width:540px}
.hero-content>.eyebrow{animation:scene-up .8s .1s both}
.hero h1{animation:scene-up 1s .22s both}
.hero-copy{animation:scene-up 1s .42s both}
.hero-actions{animation:scene-up 1s .62s both}
.button{border-radius:3px;font-size:.86rem}
.services{background:#101b24}
.services .section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:48px}
.services .section-heading>p{max-width:330px;color:#b8c3cb;line-height:1.8}
.service-tiles{gap:20px}
.service-tile{position:relative;isolation:isolate;min-height:530px;overflow:hidden;border:1px solid #ffffff20;background:#1c2933;border-radius:4px}
.service-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.service-tile::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(5,13,20,.32),rgba(5,13,20,.08) 25%,rgba(5,13,20,.88) 75%,rgba(5,13,20,.96))}
.service-card-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:30px;color:#fff}
.service-icon{width:32px;height:32px;flex-shrink:0}
.service-index{font-size:.75rem;letter-spacing:.15em}
.service-tile .tile-body{position:absolute;z-index:1;bottom:0;padding:30px;width:100%;background:none}
.service-tile h3{min-height:0;font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.2;margin:0 0 16px;color:white}
.tile-body p{color:#d7dee3;font-size:.88rem;line-height:1.7;min-height:3.4em;margin-bottom:24px}
.more-link{color:white;padding-top:20px;font-size:.88rem}
.more-link::after{content:"";position:absolute;inset:0}
.more-link span{transition:transform .3s}
.service-tile:hover .service-photo,.service-tile:focus-within .service-photo{transform:scale(1.045)}
.service-tile:hover .more-link span{transform:translate(3px,-3px)}
.service-tile:focus-within{outline:3px solid #c12748;outline-offset:4px}
.intro{background:#fff}
.company-grid{grid-template-columns:1.05fr 1fr;gap:80px}
.company-grid>div{grid-column:2;grid-row:1}
.company-grid>figure{grid-column:1;grid-row:1;margin:0}
.company-grid img{aspect-ratio:4/5;object-fit:cover;border-radius:3px}
.company-grid p:not(.section-kicker),.story-copy>p:not(.section-kicker){font-size:1rem;line-height:1.9;color:#52616c}
.text-muted{color:#6a7781}
.company-grid h2{font-size:clamp(2.15rem,3.5vw,3.5rem)}
.company-grid figcaption,.story-grid figcaption{font-size:.72rem;color:#65727c;margin-top:15px;line-height:1.6}
.project-story{background:#edf1f3}
.story-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}
.story-grid figure{margin:0}
.story-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px}
.story-copy h2{font-size:clamp(2.15rem,3.5vw,3.5rem)}
.story-copy .button{margin-top:20px}
.process-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin-top:90px}
.process-step{border-top:1px solid #bfcad1;padding-top:28px;display:flex;gap:24px;align-items:center}
.process-number{font-size:clamp(3rem,5vw,4.5rem);font-weight:500;letter-spacing:-.06em;color:#991d36}
.process-step>div{display:flex;gap:14px;align-items:center}
.process-step .service-icon{width:25px;height:25px;color:#647583}
.process-step h3{font-size:1rem;letter-spacing:-.02em}
.brands-section{background:#fff;padding:90px 0}
.brand-marquee{overflow:hidden;margin-top:40px;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.brand-strip{display:flex;gap:0;justify-content:initial;width:max-content;max-width:none}
.brand-strip>span{flex:0 0 240px;width:240px;min-height:100px;padding:20px 40px}
.brand-strip img{max-width:160px;max-height:55px;width:auto;height:auto;object-fit:contain}
.brand-strip.is-moving{animation:brands-drift 65s linear infinite}
.brand-marquee:hover .brand-strip,.brand-marquee:focus-within .brand-strip,.brand-strip.is-paused{animation-play-state:paused}
.marquee-toggle{display:block;margin:20px 0 0 auto;border:0;border-bottom:1px solid #c9d0d5;background:none;padding:8px 0;color:#50616d;font:inherit;font-size:.75rem;cursor:pointer}
.marquee-toggle[hidden]{display:none}
.global-contact{background:#f2f4f5}
.global-contact h2{font-size:clamp(2rem,3.6vw,3.3rem)}
.novatec-contact-form{background:#fffaf0}
.project-carousel{scrollbar-width:none;-ms-overflow-style:none}
.project-carousel::-webkit-scrollbar{display:none;width:0;height:0}
.project-slide img{object-fit:cover;background:transparent}
.footer-grid{grid-template-columns:minmax(378px,1.35fr) 1fr 1fr}
.footer-kit-logos{display:flex;flex-wrap:nowrap;gap:18px;overflow-x:auto}
.footer-kit-logos img{width:180px;min-width:180px;max-width:180px;flex:0 0 180px}
.reveal{opacity:1;transform:none}
.motion-ready{opacity:0;transform:translateY(30px);transition:opacity .85s ease,transform .95s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.company-grid>figure.motion-ready{transform:translateX(-35px)}
.story-grid>figure.motion-ready{transform:translateX(35px)}
.motion-ready.visible{opacity:1;transform:none}
@keyframes scene-up{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@keyframes hero-photo{from{transform:scale(1.04)}to{transform:scale(1)}}
@keyframes brands-drift{to{transform:translateX(-50%)}}
@media(min-width:981px){.site-header .header-inner{max-width:1440px}.nav-cta{border-radius:3px}}
@media(max-width:980px){
.section{padding:80px 0}.company-grid,.story-grid{gap:38px}
.service-tile{min-height:490px}.service-tile .tile-body,.service-card-top{padding:24px}
.services .section-heading>p{max-width:250px}
.footer-grid{grid-template-columns:1fr 1fr}.footer-company{grid-column:1/-1}
.process-strip{gap:20px}.process-step{gap:16px}.process-step>div{display:block}.process-step h3{margin-top:8px}
}
@media(max-width:720px){
.hero{min-height:680px;height:90svh}.hero h1{font-size:clamp(2.7rem,9vw,4.5rem)}.hero-copy{font-size:.98rem}
.hero-shade{background:linear-gradient(90deg,rgba(9,17,24,.86),rgba(9,17,24,.4))}
.section{padding:64px 0}.services .section-heading{display:block;margin-bottom:32px}.services .section-heading>p{max-width:100%;margin-top:24px}
.service-tiles{display:grid;grid-template-columns:1fr;overflow:visible}.service-tile{min-height:490px;width:100%}
.company-grid,.story-grid{grid-template-columns:1fr;gap:30px}.company-grid>div,.company-grid>figure{grid-column:auto;grid-row:auto}.company-grid>figure{order:-1}
.company-grid img,.story-grid img{aspect-ratio:4/3}.company-grid>figure.motion-ready,.story-grid>figure.motion-ready{transform:translateY(25px)}.company-grid>figure.visible,.story-grid>figure.visible{transform:none}
.process-strip{grid-template-columns:1fr;margin-top:50px;gap:22px}.process-step>div{display:flex}.process-step h3{margin:0}.process-number{font-size:3rem}
.brand-strip>span{flex-basis:200px;width:200px;padding:20px}.footer-grid{grid-template-columns:1fr}.footer-company{grid-column:auto}
.footer-kit-logos{overflow-x:auto;gap:12px;padding-bottom:6px;max-width:100%}
}
@media(prefers-reduced-motion:reduce){
.hero-media,.hero-content>*{animation:none!important}
.motion-ready,.company-grid>figure.motion-ready,.story-grid>figure.motion-ready{opacity:1;transform:none;transition:none}
.brand-strip.is-moving{animation:none}.brand-marquee{overflow-x:auto;mask-image:none}.brand-strip [data-brand-copy]{display:none}
.marquee-toggle{display:none}.service-photo{transition:none}
}

/* Revisión: cabeceras y bloques de especialidades */
.expertise-banner{position:relative;padding:58px 0 64px;background:#f7f8f9;border-bottom:1px solid #e4e8eb}
.expertise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.expertise-card{padding:28px 28px 30px;background:white;border:1px solid #e2e7eb;border-top:3px solid #991d36;border-radius:5px;box-shadow:0 12px 30px #16253405}
.expertise-card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:23px;border-bottom:1px solid #dce3e8}
.expertise-card h2{font-family:var(--title);font-size:clamp(1.2rem,1.65vw,1.65rem);line-height:1.25;letter-spacing:-.035em;margin:0;font-weight:600;color:#172631}
.expertise-icon{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:50%;background:#faf0f2;color:#991d36}
.expertise-icon svg{width:29px;height:29px}
.expertise-card>p{margin:23px 0 0;font-size:.9rem;line-height:1.85;color:#576873}
.detail-icon-list,.service-detail ul{list-style:none;padding:0;margin:28px 0;display:grid;gap:12px}
.detail-icon-list li,.service-detail ul li{display:flex;gap:12px;align-items:flex-start;font-size:.91rem;line-height:1.65;padding:11px 0;border-bottom:1px solid #dce3e8}
.detail-check,.service-detail ul li::before{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#f7e9ed;color:#991d36;font-size:.8rem;font-weight:700;line-height:1}
.service-detail ul li::before{content:"✓";margin-top:1px}
.service-detail img{align-self:stretch;height:100%;max-height:640px;min-height:420px;object-fit:cover}
.project-slide .detail-icon-list{margin-bottom:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-video-toggle{position:absolute;z-index:4;right:36px;bottom:25px;border:1px solid #ffffff70;border-radius:3px;background:#101b2499;color:#fff;padding:10px 15px;font:inherit;font-size:.73rem;cursor:pointer}
.hero-video-toggle[hidden]{display:none}
.hero-video-toggle:hover,.hero-video-toggle:focus-visible{background:#991d36}
[data-hero-scroll] .hero-media,[data-hero-scroll] .inner-hero-media{animation:none;transform:translate3d(0,var(--hero-shift,0px),0) scale(1.14);will-change:transform}
[data-hero-scroll] .hero-content,[data-hero-scroll] .inner-hero-content{transform:translate3d(0,var(--hero-copy-shift,0px),0);opacity:var(--hero-copy-opacity,1);will-change:transform,opacity}
@media(max-width:980px){.expertise-grid{gap:16px}.expertise-card{padding:22px 20px}.expertise-card-head{gap:10px}.expertise-icon{width:40px;height:40px;flex-basis:40px}}
@media(max-width:720px){.expertise-banner{padding:35px 0}.expertise-grid{grid-template-columns:1fr;gap:18px}.expertise-card{padding:24px}.expertise-card h2{font-size:1.4rem}.hero-video-toggle{right:16px;bottom:15px}.service-detail img{min-height:0;height:280px}.project-slide .detail-icon-list{margin-top:18px}}
@media(prefers-reduced-motion:reduce){[data-hero-scroll] .hero-media,[data-hero-scroll] .inner-hero-media,[data-hero-scroll] .hero-content,[data-hero-scroll] .inner-hero-content{transform:none!important;opacity:1!important;will-change:auto}}

/* Novatec: contadores de actividad */
.impact-section{margin-top:90px;background:#101e29;padding:48px;border-radius:8px;position:relative;overflow:hidden;color:#fff}
.impact-section::before{content:"";position:absolute;top:-170px;right:-100px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,#991d3635,transparent 70%);pointer-events:none}
.impact-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;position:relative;margin-bottom:38px}
.impact-heading .section-kicker{color:#f29aaf;margin:0 0 16px}
.impact-heading h2{font-size:clamp(2rem,3.2vw,3rem);margin:0;color:#fff}
.impact-heading>p{font-size:.85rem;line-height:1.8;color:#afbfcb;margin:0}
.impact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.impact-card{position:relative;padding:26px 24px 30px;background:#ffffff06;border:1px solid #ffffff20;border-radius:5px;transition:transform .45s ease,background .45s ease,border-color .45s ease,opacity .7s ease}
.impact-card-top{display:flex;justify-content:space-between;align-items:center;color:#ed8fa7}
.impact-card-top svg,.impact-card-top .impact-icon-image{width:31px;height:31px;object-fit:contain}.impact-card-top>span{font-size:.65rem;letter-spacing:.15em;color:#8b9daa}
.impact-value{font-family:var(--title);font-size:clamp(3rem,5vw,5rem);font-weight:600;line-height:1.1;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:33px 0 15px;color:white}
.impact-card h3{font-size:.93rem;font-weight:500;letter-spacing:0;margin:0;color:#d4dfe6}
.impact-line{display:block;width:32px;height:2px;background:#be3153;margin-top:28px;transition:width .5s ease}
.impact-card:hover{transform:translateY(-7px);background:#ffffff0c;border-color:#cf5677}
.impact-card:hover .impact-line{width:100%}
.impact-section.counter-ready .impact-card{opacity:0;transform:translateY(30px)}
.impact-section.counter-ready.counter-visible .impact-card{animation:impact-enter .8s var(--impact-delay,0ms) both}
.impact-note{font-size:.68rem;color:#a9b8c2;margin:24px 0 0}
@keyframes impact-enter{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}
.impact-section.counter-ready.counter-visible .impact-card{opacity:1;transform:none}
.impact-section.counter-visible .impact-card:hover{transform:translateY(-7px)}
@media(max-width:980px){.impact-section{padding:32px}.impact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-value{font-size:4rem}}
@media(max-width:540px){.impact-section{padding:26px 20px;margin-top:55px}.impact-heading{display:block}.impact-heading>p{margin-top:20px}.impact-grid{gap:12px}.impact-card{padding:20px 14px}.impact-value{font-size:3rem}.impact-card h3{font-size:.82rem}.impact-card-top svg,.impact-card-top .impact-icon-image{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){.impact-section .impact-card,.impact-section.counter-ready .impact-card{opacity:1!important;transform:none!important;translate:none!important;animation:none!important;transition:none}.impact-line{transition:none}}

.impact-section.wrap{position:relative;left:auto;width:calc(100% - 48px);max-width:1240px;margin-left:auto;margin-right:auto;border-radius:8px}

/* Ajustes de contraste y marcadores para Inicio y servicios. */
.project-story .story-copy a.button-primary{color:#fff!important}
.inner-section .service-detail ul{list-style:none!important;padding-left:0!important}
.inner-section .service-detail ul>li{display:flex!important;align-items:flex-start;list-style:none!important}
.inner-section .service-detail ul>li::before{content:"✓"!important;display:inline-grid!important;place-items:center;width:24px;height:24px;flex:0 0 24px;margin:1px 12px 0 0;border-radius:50%;background:#f7e9ed;color:#991d36;font:700 .85rem/1 Arial,sans-serif}

/* Solicitud del cliente: botones sin iconos de flecha. */
.button > span[aria-hidden="true"],
.more-link > span[aria-hidden="true"],
.services-toggle > span[aria-hidden="true"]{display:none}
.button{justify-content:center}
.carousel-controls button{font:600 .85rem/1.4 var(--body);min-height:44px}
