/* Cultura IT — visual refresh: a restrained technical frame, not an imported UI kit. */
:root { --cit-lime:#80f695; --cit-ink:#070a09; --cit-line:rgba(128,246,149,.2); }

/* Motion and contrast are shared across the home, service pages and case studies. */
.ci-button, .button, .case-header-cta, .inline-link, .method-rev-link, .work-card {
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, filter .3s ease, background-color .3s ease;
}
.ci-button:hover, .button:hover, .case-header-cta:hover, .method-rev-link:hover { transform:translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,.16); }
.work-card:hover { transform:translateY(-5px); filter:saturate(1.08); }
a:focus-visible, button:focus-visible { outline:3px solid #70f69a; outline-offset:4px; }

/* The existing brand film stays intact; this adds a quiet instrument-panel edge. */
.home-hero { isolation:isolate; }
.home-hero::after { content:""; position:absolute; z-index:1; inset:24px; pointer-events:none; border:1px solid rgba(130,255,164,.18); clip-path:polygon(0 0,22px 0,22px 1px,calc(100% - 22px) 1px,calc(100% - 22px) 0,100% 0,100% 100%,0 100%); }
.home-hero .hero-copy, .home-hero .home-header, .home-hero .motion-toggle { position:relative; z-index:2; }
.home-hero .hero-art::after { content:""; position:absolute; z-index:4; inset:-20% -60%; pointer-events:none; background:linear-gradient(110deg,transparent 42%,rgba(128,246,149,.03) 47%,rgba(128,246,149,.22) 50%,rgba(255,255,255,.1) 51%,transparent 57%); mix-blend-mode:screen; animation:cit-signal-sweep 9s ease-in-out infinite; }
@keyframes cit-signal-sweep { 0%,12% { transform:translateX(-48%); opacity:0; } 23% { opacity:.9; } 48%,100% { transform:translateX(48%); opacity:0; } }

.home-signal-strip { position:relative; z-index:2; height:76px; overflow:hidden; display:flex; align-items:center; background:#a0f3a4; color:#071309; border-block:1px solid #061108; }
.home-signal-strip::before, .home-signal-strip::after { content:""; position:absolute; z-index:2; inset:0 auto 0 0; width:5vw; pointer-events:none; background:linear-gradient(90deg,#a0f3a4,transparent); }
.home-signal-strip::after { left:auto; right:0; transform:rotate(180deg); }
.home-signal-track { display:flex; width:max-content; will-change:transform; animation:cit-signal-drift 28s linear infinite; }
.home-signal-group { display:flex; flex:0 0 auto; align-items:center; gap:38px; padding-right:38px; white-space:nowrap; font-size:clamp(21px,2.25vw,34px); font-weight:750; letter-spacing:-.035em; }
.home-signal-group b { font-size:54px; font-weight:500; line-height:1; transform:skew(-8deg); }
@keyframes cit-signal-drift { to { transform:translateX(-50%); } }

/* Small, site-native motion cues. The content remains available without JS. */
.ci-button, .button, .case-header-cta, .method-rev-link { position:relative; overflow:hidden; isolation:isolate; }
.ci-button::after, .button::after, .case-header-cta::after, .method-rev-link::after { content:""; position:absolute; z-index:-1; inset:-20% auto -20% -70%; width:54%; pointer-events:none; transform:skewX(-25deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent); transition:left .65s cubic-bezier(.2,.8,.2,1); }
.ci-button:hover::after, .button:hover::after, .case-header-cta:hover::after, .method-rev-link:hover::after { left:125%; }
.hero::before { content:""; position:absolute; z-index:0; inset:0; pointer-events:none; background:linear-gradient(112deg,transparent 32%,rgba(134,252,165,.055) 49%,transparent 65%); background-size:220% 100%; animation:cit-hero-light 12s ease-in-out infinite; }
@keyframes cit-hero-light { 0%,15% { background-position:100% 0; } 60%,100% { background-position:0 0; } }
.reading-progress { position:fixed; z-index:1000; inset:0 0 auto; height:3px; pointer-events:none; background:transparent; }
.reading-progress span { display:block; width:100%; height:100%; background:#89f69d; box-shadow:0 0 16px rgba(137,246,157,.8); transform:scaleX(0); transform-origin:left center; }
.visual-motion-ready .visual-reveal { opacity:0; transform:translateY(32px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1); }
.visual-motion-ready .visual-reveal.is-visible { opacity:1; transform:translateY(0); }

/* Home: a system diagram with review running across every stage. */
.home-method-rev { position:relative; overflow:hidden; padding:clamp(72px,8vw,132px) max(5vw,24px); background:#090d0b; color:#f5f8f4; border-top:1px solid #294335; border-bottom:1px solid #294335; }
.home-method-rev::before { content:""; position:absolute; inset:0; opacity:.4; pointer-events:none; background-image:linear-gradient(90deg,transparent calc(100% - 1px),rgba(133,239,157,.08) 100%),linear-gradient(transparent calc(100% - 1px),rgba(133,239,157,.08) 100%); background-size:96px 96px; mask-image:linear-gradient(to right,transparent 15%,#000); }
.method-rev-top, .home-evidence__top { position:relative; display:flex; justify-content:space-between; gap:24px; padding-bottom:20px; border-bottom:1px solid rgba(194,247,206,.28); color:#a3cbb0; font-size:12px; font-weight:700; letter-spacing:.14em; }
.method-rev-heading { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:32px; margin:clamp(48px,6vw,100px) 0 62px; }
.method-rev-kicker { color:var(--cit-lime)!important; text-transform:uppercase; letter-spacing:.14em; font-size:12px!important; font-weight:700; }
.method-rev-heading h2 { max-width:950px; margin:18px 0 25px; font-size:clamp(44px,6.2vw,112px); line-height:.94; letter-spacing:-.065em; font-weight:650; }
.method-rev-heading h2 em { font-style:normal; color:var(--cit-lime); }
.method-rev-heading p:not(.method-rev-kicker) { max-width:700px; margin:0; color:#cad8ce; font-size:clamp(17px,1.5vw,23px); line-height:1.5; }
.method-rev-link { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; padding:20px 24px; background:var(--cit-lime); color:#06100a; text-decoration:none; font-weight:700; white-space:nowrap; }
.method-rev-link span { font-size:22px; }
.method-rev-system { position:relative; border:1px solid #4a7556; background:rgba(8,23,13,.83); box-shadow:0 36px 100px rgba(0,0,0,.25); }
.method-rev-rail { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 25px; color:#07110b; background:var(--cit-lime); font-size:12px; letter-spacing:.12em; font-weight:750; }
.method-rev-rail strong { font-weight:650; letter-spacing:0; text-align:right; }
.method-rev-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:0; list-style:none; }
.method-rev-steps li { min-height:245px; padding:28px 25px; border-right:1px solid var(--cit-line); }
.method-rev-steps li:last-child { border-right:0; }
.method-rev-steps li>span { display:block; color:var(--cit-lime); font-size:11px; letter-spacing:.1em; font-weight:750; }
.method-rev-steps strong { display:block; margin-top:32px; font-size:clamp(26px,2.7vw,44px); letter-spacing:-.04em; font-weight:650; }
.method-rev-steps p { max-width:280px; margin:12px 0 0; color:#b9c9be; font-size:15px; line-height:1.5; }
.method-rev-note { position:relative; max-width:720px; margin:26px 0 0; color:#9fbaa7; font-size:15px; line-height:1.55; }

.home-evidence { position:relative; padding:clamp(72px,8vw,130px) max(5vw,24px); background:#ddf0df; color:#0b1b0f; }
.home-evidence__top { color:#405d45; border-bottom-color:rgba(14,62,31,.27); }
.home-evidence h2 { margin:clamp(48px,6vw,86px) 0; font-size:clamp(54px,8vw,135px); line-height:.94; letter-spacing:-.065em; font-weight:650; }
.home-evidence h2 span { color:#39aa5a; }
.home-evidence__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #799781; }
.home-evidence__grid article { min-height:230px; padding:24px 38px 24px 0; border-right:1px solid #799781; }
.home-evidence__grid article+article { padding-left:38px; }
.home-evidence__grid article:last-child { border-right:0; }
.home-evidence__grid span { display:block; color:#408756; font-size:12px; font-weight:750; letter-spacing:.13em; }
.home-evidence__grid h3 { margin:38px 0 12px; font-size:clamp(23px,2.3vw,36px); letter-spacing:-.04em; }
.home-evidence__grid p { max-width:390px; margin:0; color:#3a4d3f; font-size:16px; line-height:1.5; }

/* Service and methodology subpages retain their content hierarchy; the frames add continuity. */
.hero { position:relative; isolation:isolate; }
.hero::after { content:""; position:absolute; z-index:0; inset:18px; pointer-events:none; border:1px solid rgba(155,255,174,.18); }
.hero__inner { position:relative; z-index:1; }
.section-label { letter-spacing:.035em; }
.section--theme .delivery__step { transition:background-color .3s ease, transform .3s ease; }
.section--theme .delivery__step:hover { transform:translateY(-4px); }
.section--continuous { background:#0b1810!important; color:#f4faf4!important; }
.section--continuous .section-heading h2 { color:#f4faf4; }
.section--continuous .section-heading p { color:#c7d7c9; }
.continuous-review { margin-top:54px; border:1px solid rgba(146,242,166,.45); background:#0a120d; }
.continuous-review__rail { display:flex; justify-content:space-between; gap:24px; padding:18px 22px; background:#88f59c; color:#0b160d; font-size:12px; letter-spacing:.12em; font-weight:750; }
.continuous-review__rail strong { font-weight:650; letter-spacing:0; }
.continuous-review__steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.continuous-review__steps article { min-height:230px; padding:27px 22px; border-right:1px solid rgba(146,242,166,.22); }
.continuous-review__steps article:last-child { border-right:0; }
.continuous-review__steps article>span { color:#88f59c; font-size:11px; font-weight:750; letter-spacing:.1em; }
.continuous-review__steps h3 { margin:35px 0 12px; color:white; font-size:clamp(26px,2.6vw,40px); letter-spacing:-.04em; }
.continuous-review__steps p { margin:0; color:#b8cfbc; line-height:1.5; }
.continuous-review__notes { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:26px 0; border-bottom:1px solid rgba(146,242,166,.25); }
.continuous-review__notes p { max-width:590px; margin:0; color:#c6d9c9; font-size:16px; line-height:1.5; }
.continuous-review__notes strong { color:#a1f6ae; }

@media (max-width:900px) {
  .method-rev-heading { grid-template-columns:1fr; }
  .method-rev-link { width:max-content; }
  .method-rev-steps, .continuous-review__steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .method-rev-steps li:nth-child(2), .continuous-review__steps article:nth-child(2) { border-right:0; }
  .method-rev-steps li:nth-child(-n+2), .continuous-review__steps article:nth-child(-n+2) { border-bottom:1px solid var(--cit-line); }
}
@media (max-width:600px) {
  .home-hero::after, .hero::after { inset:10px; }
  .home-signal-strip { height:60px; }
  .home-signal-group { gap:24px; padding-right:24px; font-size:22px; }
  .home-signal-group b { font-size:42px; }
  .method-rev-top, .home-evidence__top, .method-rev-rail, .continuous-review__rail { flex-direction:column; align-items:flex-start; gap:7px; }
  .method-rev-heading { margin:48px 0 34px; }
  .method-rev-heading h2 { font-size:clamp(45px,12vw,68px); }
  .method-rev-link { width:100%; }
  .method-rev-steps, .continuous-review__steps, .home-evidence__grid, .continuous-review__notes { grid-template-columns:1fr; }
  .method-rev-steps li, .continuous-review__steps article { min-height:0; padding:22px; border-right:0; border-bottom:1px solid var(--cit-line); }
  .method-rev-steps li:last-child, .continuous-review__steps article:last-child { border-bottom:0; }
  .method-rev-steps strong, .continuous-review__steps h3 { margin-top:14px; }
  .home-evidence h2 { margin:48px 0; }
  .home-evidence__grid article, .home-evidence__grid article+article { min-height:0; padding:25px 0; border-right:0; border-bottom:1px solid #799781; }
  .home-evidence__grid article:last-child { border-bottom:0; }
  .home-evidence__grid h3 { margin-top:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .ci-button, .button, .case-header-cta, .inline-link, .method-rev-link, .work-card, .section--theme .delivery__step { transition:none!important; }
  .ci-button:hover, .button:hover, .case-header-cta:hover, .method-rev-link:hover, .work-card:hover, .section--theme .delivery__step:hover { transform:none!important; }
  .home-hero .hero-art::after, .hero::before { animation:none!important; opacity:0!important; }
  .home-signal-track { animation:none!important; }
  .visual-motion-ready .visual-reveal { opacity:1!important; transform:none!important; transition:none!important; }
  .ci-button::after, .button::after, .case-header-cta::after, .method-rev-link::after { display:none!important; }
}

.partner-genexus-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  margin-top:28px;
  padding:15px 20px;
  background:#fff;
  color:#111820;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  transition:background .2s ease,transform .2s ease;
}
.partner-genexus-link span {font-size:21px;font-weight:400;line-height:1;}
.partner-genexus-link:hover {background:#68ed94;transform:translateY(-2px);}
.partner-genexus-link:focus-visible {outline:3px solid #68ed94;outline-offset:4px;}
@media (prefers-reduced-motion:reduce) {
  .partner-genexus-link {transition:none;}
  .partner-genexus-link:hover {transform:none;}
}
